01:00 | aSobhy | yes
| |
01:01 | aSobhy | I'm finishing the jtagf and generate the bitstream files
| |
01:01 | aSobhy | apurvanandan[m] is the beta_e free ?
| |
01:01 | apurvanandan[m] | Wait aSobhy Bertl is busy with it
| |
05:18 | Bertl | off to bed now ... have a good one everyone!
| |
05:18 | Bertl | changed nick to: Bertl_zZ
| |
05:33 | BAndiT1983|away | changed nick to: BAndiT1983
| |
05:44 | futarisIRCcloud | joined the channel | |
06:55 | BAndiT1983 | changed nick to: BAndiT1983|away
| |
08:55 | danieel | left the channel | |
08:56 | danieel | joined the channel | |
12:51 | Bertl_zZ | changed nick to: Bertl
| |
12:51 | Bertl | morning folks!
| |
15:08 | Fares | joined the channel | |
15:11 | Fares | Hi, can someone please explain clks generated and used in axiom beta? I found several PLL output 250MHZ and 148.5MHZ and in scripts there is four other clks 100,10,1,125MHZ
| |
15:11 | Fares | are they all generated and used? and can I generate another clk frequency?
| |
15:13 | Fares | there are four*
| |
15:18 | Bertl | the MicroZed doesn't feature a crystal or oscillator on the PL side
| |
15:18 | Bertl | the AXIOM Beta doesn't add one there either, because of the limited IO pins
| |
15:19 | Bertl | thus all frequencies are derived from the PS clock (33.33MHz oscillator) in one or the other way
| |
15:19 | Bertl | the main source for clocking on the PL are the FCLKs which are special PS derived and configured clocks routed into the fabric
| |
15:20 | Bertl | there are four of them and they are used for different purposes throughout the Beta
| |
15:20 | Bertl | typically those clocks are fed into a PLL or MMCM which then generates the required clocks for the fabric
| |
15:22 | Bertl | just yesterday we went through the future clocking setup and kind of decided to set fclk0 to 50MHz (main clock for fabric) and fclk1/2 to 10MHz (shared clock for routing fabrics)
| |
15:23 | Bertl | fclk3 is currently unused and left at 124.999 MHz
| |
15:24 | Fares | okay so the FCLKs are constants and they are partially used in the PL, and the PLL/MMCM are the ones that we used when needing specific frequency?
| |
15:24 | Fares | and FCLKs are four, how many PLL/MMCM available in ZYNQ?
| |
15:25 | Bertl | the fclks can be configured on the PS, but we consider them constant for the PL unless there is a good reason to change that
| |
15:25 | Bertl | currently there are two PLL/MMCMs active in cmv_hdmi code
| |
15:26 | Bertl | one which generates all the clocks related to the CMV12k
| |
15:26 | Bertl | and the other one which generates all the HDMI related clocks
| |
15:26 | Fares | and one for lvds?
| |
15:26 | Bertl | yeah, that is basically part of the CMV PLL construct
| |
15:27 | Bertl | i.e. cmv_pll generates the input for CMV12k
| |
15:27 | Bertl | and lvds_pll derives the clocks from the output of the CMV12k
| |
15:29 | Fares | ok great, also is PLL is more configurable than FCLKs? since FCLKs can take only specific values because of 33.33MHZ - when I tried to change them in vivado -
| |
15:31 | Fares | I know it is only used in vivado for synthesizing and implementation, but when I try to set the FCLKs from ps side, it only change to specific values, I couldn't tune it
| |
15:33 | Bertl | well, you cannot change the FCLKs from the PL side
| |
15:33 | Bertl | so you need to run some PS code to modify them and yes, they do not allow many different settings
| |
15:35 | Fares | so is PLL will allow more settings or the same?
| |
15:35 | Bertl | e.g. 50MHz is fine, but 60MHz yields 59.52381MHz
| |
15:35 | Bertl | the PLL/MMCM is part of the fabric, and can be extensively configured
| |
15:35 | Bertl | see 7 series PLL documentation for details
| |
15:36 | Bertl | UG472
| |
15:37 | Fares | ok I will, so I want to generate 200MHZ to 215MHZ clk, is it better to use FCLK or PLL?
| |
15:38 | Bertl | probably PLL
| |
15:40 | Fares | ok I will read more about it
| |
15:44 | Bertl | let me know if you have specific questions ...
| |
15:45 | Fares_ | joined the channel | |
15:45 | Fares__ | joined the channel | |
15:46 | Fares | left the channel | |
15:49 | danieel | Bertl: the 50M fabric clock is really what the logic runs at? is that for power consumption, or too many levels of logic? (or that fabric is nothing related to cmv or hdmi portions?)
| |
15:49 | Fares_ | left the channel | |
15:49 | Bertl | it is just a clock the PS can generate well, it isn't used 'by the fabric'
| |
15:50 | danieel | so its geared up by a pll for actual use
| |
15:50 | Bertl | PLL/MMCM, yes
| |
15:51 | Fares__ | I will read about it and get back if I have any more questions thank you, actually I was wondering how my output will be connecting to the lvds? Now i output 16bits per cycle, how will it transfer to the usb module?
| |
15:51 | Bertl | that's something apurvanandan[m] is working on
| |
15:52 | Bertl | but basically there will be a transfer over 6 LVDS pairs from Zynq to MachXO2 on the USB plugin
| |
15:55 | Fares__ | The gearing work, ok I will have a chat with apurvanandan[m] to see exactly how it will integrate with his work
| |
15:55 | Bertl | excellent!
| |
15:55 | apurvanandan[m] | And I am most of time available for chat here
| |
15:58 | Fares__ | Ok great you are here, I will do something and talk to you after 15 mins ok?
| |
15:58 | apurvanandan[m] | No problem
| |
16:02 | Fares__ | left the channel | |
16:06 | se6ast1an | hi apurvanandan[m], please take a look at the wiki page you created
| |
16:06 | se6ast1an | I think there is some room for improvement
| |
16:06 | se6ast1an | take https://wiki.apertus.org/index.php/JPEG_1992_lossless_encoder_core as reference
| |
16:10 | Bertl | also note that it would be really great to have some information on the project page which explains what it is actually about, best with some diagrams
| |
16:14 | apurvanandan[m] | Hi se6ast1an , Actually I haven't started working on it till now. You won't have any complaints once I finish that.
| |
16:16 | Fares | joined the channel | |
16:16 | se6ast1an | Great!
| |
16:17 | Fares | Hi apurvanandan[m]
| |
16:18 | apurvanandan[m] | Hi
| |
16:20 | Fares_ | joined the channel | |
16:20 | Fares | left the channel | |
16:21 | Fares_ | Can you explain to me please how data is transferred between ZYNQ and MachXO2?
| |
16:22 | RexOrMatrix[m] | Fares: Nice wiki page lad.
| |
16:25 | apurvanandan[m] | So Fares it is a source synchronous setup between them
| |
16:25 | Fares_ | Thank you, I am still working on it
| |
16:25 | apurvanandan[m] | There are 6 DC coupled LVDS lanes between them for data transfer
| |
16:26 | apurvanandan[m] | I use 1 lane for clock and other 5 for data transfer
| |
16:27 | apurvanandan[m] | The aim is to send the 48 bit pixel data read directly from RAM to the FTDI chip on USB module which in turn sends it to the connected PC
| |
16:28 | apurvanandan[m] | Current status is I am somewhat able to transfer data using 2 LVDS lanes at 300MHz DDR
| |
16:28 | apurvanandan[m] | ie 600 Mbps
| |
16:28 | Fares_ | 600Mbps per lane correct?
| |
16:28 | apurvanandan[m] | Once everything is complete I should achieve a bandwidth of 3.2Gbps
| |
16:29 | apurvanandan[m] | I am still working with 1 lane only, other is for clock
| |
16:29 | apurvanandan[m] | Extending to all lanes is left to do atm
| |
16:29 | Fares_ | Ok great I understand now, so how 16 or 32 or 48 bits serialization happens?
| |
16:30 | apurvanandan[m] | I haven't decided that yet, but atm I am sending 8 bits words with 8b/10b encoding over 10:1 Serdes
| |
16:31 | apurvanandan[m] | in one lane
| |
16:31 | apurvanandan[m] | I need to figure out how to gear with 48 bit words
| |
16:32 | Fares_ | 48 for rggb correct? But for lj92 it would be 16.
| |
16:32 | apurvanandan[m] | When I use all lanes ie 5 lanes for data, I will need to send 40 bit words
| |
16:32 | apurvanandan[m] | Yes for rggb its 48
| |
16:32 | Fares_ | 48 can be split into 3x16 or lj92 3x16 can be concatenated into 48
| |
16:32 | apurvanandan[m] | So I need to gear the 48 bits into 40 bits
| |
16:33 | apurvanandan[m] | Yup, can be sent easily,
| |
16:34 | apurvanandan[m] | On software end ie on the PC we can receive only 32 bit words for max bandwidth, so some gearing on PC also for converting back to 48
| |
16:35 | Bertl | Fares_: why 3x16?
| |
16:35 | Fares_ | I assume gearing in the pc is quite easy, specially if SIMD instructions are used. But gearing from 48 to 40bits will happen in the zynq correct?
| |
16:36 | apurvanandan[m] | Yes Fares
| |
16:38 | Fares_ | Bertl: it is only example of how we can split or concatenate the data from ram or lj92
| |
16:38 | Bertl | okay, let me rephrase, why 48 for RGGB?
| |
16:39 | Fares_ | Data is stored in memory in 64bits chunks, every chunk has RGGB data in 48bits in the high order bits, correct?
| |
16:40 | Fares_ | Frame data I mean
| |
16:40 | Bertl | correct
| |
16:40 | Bertl | but we are talking lj92 output, no?
| |
16:41 | Fares_ | Correct, but apurvanandan[m] calculations were based on raw data, but ideally lj92 should output 40bits per cycle, correct apurvanandan[m] ?
| |
16:42 | Fares_ | Or per several cycles* but 40bits is the amount of data for 5 lanes, correct?
| |
16:42 | apurvanandan[m] | Yes you are right
| |
16:43 | Bertl | at the moment, yes
| |
16:43 | Fares_ | In what clk frequency? Or clk frequency is irrelevant for those 40bits?
| |
16:44 | Bertl | I wouldn't try to match the USB transfer speed yet
| |
16:44 | apurvanandan[m] | 40 bits at 300Mhz to 358 MHz
| |
16:45 | Bertl | basically we aim at 100MBaud with 32bit output via the FTDI
| |
16:45 | Bertl | (which is the limit of the FTDI parallel input)
| |
16:46 | Bertl | the connection between Zynq and MachXO2 needs to provide at least this bandwidth
| |
16:50 | Fares_ | Aha I understand, so around ((3.2/5lanes)/2ddr)MHz for the lvds — and for the lj92 40bits, less than 82MHz clk?
| |
16:51 | Bertl | something like this, yes
| |
16:53 | Fares_ | May I ask why 40bits at around 82MHz? - from the zynq side
| |
16:54 | Bertl | I thought that was your estimation :)
| |
16:55 | aSobhy | Bertl I have added i2c from the link you gave before and added the signal in ps7, is that fine ?
| |
16:55 | Bertl | Fares_: but anyway, for now, we aim at 1 USB3 module which transfers the data, there is no point in producing more data than we can get out
| |
16:55 | Bertl | Fares_: the next step will be to use two USB3 modules and double the bandwidth
| |
16:56 | Bertl | aSobhy: which link?
| |
16:56 | aSobhy | icsp._test http://vserver.13thfloor.at/Stuff/AXIOM/BETA/icsp_test/
| |
16:56 | aSobhy | can you have a look to confirm :)
| |
16:57 | Bertl | you mean: http://vserver.13thfloor.at/Stuff/AXIOM/BETA/i2c_minimal/ ?
| |
16:57 | Fares_ | Yes that is correct :) I estimated 82MHz from the 40bits, but I mean why not 20bits at 164 for example :))
| |
16:57 | Bertl | Fares_: ah, that's fine as well
| |
16:58 | Bertl | at some point it will have to go over 5 or 6 LVDS pairs at 600+ MHz, that's all
| |
16:59 | Bertl | as I said, do not bother too much with the actual word with or data rate just keep the total amount of output bandwidth in mind
| |
17:00 | aSobhy | no in order to enable ZYNQ to make the work its doing before I run my code on it
| |
17:00 | aSobhy | to check the gpio pins etc
| |
17:01 | Bertl | the i2c_minimal is what you want to incorporate in your Zynq design so that everything (basically I2C and clocks) work as required to program and control the MachXO2s
| |
17:03 | aSobhy | ok I have to remove 1 of them :) its easy
| |
17:04 | Fares_ | Bertl: that assuming something faster than usb3.0, but for now I am writing efficient module to split 64 bits from axihp_reader to two 24bits data, should I write something more for the lj92 output as well? Lj92 will output 16bits in most cycles.
| |
17:04 | Fares_ | The total bandwidth is within the limits
| |
17:06 | Bertl | if you want to help apurvanandan[m] with the output gearing that's fine (but I'd say 16bit is fine, probably needs a fifo anyway before it goes over LVDS)
| |
17:06 | Bertl | just make sure that your code integration as well as documentation doesn't suffer :)
| |
17:10 | Fares_ | Ok great! I will complete few things including PLL and more documentations, then I will talk with apurvanandan[m] to check if help is needed in the output gearing
| |
17:11 | Fares_ | Thank you very much apurvanandan[m] and Bertl for your time
| |
17:11 | Bertl | you're welcome!
| |
17:14 | BAndiT1983|away | changed nick to: BAndiT1983
| |
17:16 | apurvanandan[m] | I will be thankful for any help Fares
| |
17:22 | Fares_ | It would be my pleasure, I will finish few things and will contact you apurvanandan[m]
| |
17:22 | apurvanandan[m] | execellent!
| |
17:23 | aSobhy | apurvanandan[m]: where are the commands :P
| |
17:23 | apurvanandan[m] | remote beta programming?
| |
17:24 | aSobhy | yes last night session
| |
17:24 | apurvanandan[m] | Scroll up on beta irc channel
| |
17:25 | apurvanandan[m] | There are tons of screenshot
| |
17:27 | apurvanandan[m] | Bertl, you suggested me to make 1024 word deep fifo
| |
17:28 | Bertl | yup?
| |
17:28 | apurvanandan[m] | The calc behind it was 8 Kb /32 =256 x 4 =1024 right?
| |
17:29 | apurvanandan[m] | just to confirm once
| |
17:29 | Bertl | nope
| |
17:29 | apurvanandan[m] | 8KB buffer size
| |
17:29 | Bertl | the FT60x manual talks about 1024 byte packets
| |
17:29 | Fares_ | left the channel | |
17:29 | Bertl | we submit 32bit words to the FT60x
| |
17:30 | Bertl | so I assume that they get sent in one packet which means 256 words (of 32 bit) per packet
| |
17:30 | apurvanandan[m] | note: It was for 4KB buffer size
| |
17:30 | apurvanandan[m] | And in 1 IN channel we have 8KB buffer
| |
17:30 | Bertl | note: we still need to check that via wireshark
| |
17:31 | Bertl | (which you might do as a first step on 100% transfers)
| |
17:31 | apurvanandan[m] | ahh, wireshark will be good for debugging
| |
17:31 | Bertl | then from 256 word packets and the requirement to keep two of them, we concluded that a 1024 word FIFO should be more than enough
| |
17:32 | Bertl | and using almost empty/full at 256/768 words respectively should give good debug information
| |
17:32 | apurvanandan[m] | That was for fifo size 4KB
| |
17:33 | Bertl | yeah, I don't think the packet size changes when you change the FT FIFO depth
| |
17:33 | apurvanandan[m] | But we have fifo size of 8KB in 1 IN channel only
| |
17:33 | apurvanandan[m] | ahh, Got it
| |
17:35 | apurvanandan[m] | Then also it takes 1 KB now from 8KB buffer right?
| |
17:36 | Bertl | we don't know what the FTDI will do with its buffer
| |
17:36 | Bertl | but that's fine, we do not care that much
| |
17:37 | apurvanandan[m] | Okay fine
| |
18:24 | apurvanandan[m] | https://ibb.co/r5DD2Zf
| |
18:24 | apurvanandan[m] | Just a little confusion
| |
18:24 | apurvanandan[m] | In this figure we see all signals change state at falling edges
| |
18:24 | apurvanandan[m] | So Bertl, do we need to use falling edge FFs
| |
18:27 | Bertl | hmm?
| |
18:27 | Bertl | do you plan to sample the signal while it is changing to add some randomness to the design? :)
| |
18:30 | apurvanandan[m] | I am a fool , sorry
| |
19:46 | BAndiT1983 | changed nick to: BAndiT1983|away
| |
20:03 | Nira|away | changed nick to: Nira
| |
21:31 | Fares | joined the channel | |
21:35 | Fares | left the channel | |
22:31 | se6ast1an | apurvanandan[m]: I will be at the office tomorrow and Bertl prepared me to run some temperature measurements with the usb3 module and you then
| |
22:31 | se6ast1an | I will let you know when I am there
| |
22:31 | se6ast1an | off to bed now
| |
22:31 | se6ast1an | good night
| |
22:32 | Bertl | apurvanandan[m]: you might want to prepare some MachXO2/FTDI designs which produce a lot of heat :)
| |
23:55 | apurvanandan[m] | Okay cool
| |
23:55 | Bertl | hot! not cool! :)
| |
23:57 | apurvanandan[m] | XD lol
| |
00:57 | Fares | joined the channel |