EDIT: I have rethought the power situation. Instead of 5V being supplied as the main voltage, 3.3V will be needed for the main, 5V for the video. This gets rid of 1 VREG and potential stress on that part, and should help out with the SSO issue. I will add a pic of the power plane today as well.
Concept & Design of 3.3V Parallel 16-bit VGA Boards
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept of I/O Communications
Arlet wrote:
I think a 8 bit parallel bus is more flexible than 8 x 16 bit shift registers. In the latter case, you always need 8 clocks to send a chunk of data, and that chunk is always the same size. With an 8 bit parallel bus, you can decide how many bytes to send per command.
EDIT: I have rethought the power situation. Instead of 5V being supplied as the main voltage, 3.3V will be needed for the main, 5V for the video. This gets rid of 1 VREG and potential stress on that part, and should help out with the SSO issue. I will add a pic of the power plane today as well.
Re: Concept of I/O Communications
GARTHWILSON wrote:
SPI commands and parameters have variable lengths. They go eight bits at a time, but as for the data bits, just like on an 8-bit port of a 6522, you can assign the functions of those bits in the application, three for this, one for that, two for the other, etc.. Serial ports, interfacing to off-the-shelf serial ICs, make a project manageable whereas you might not live long enough to complete it otherwise. As for speed, SPI goes in serial, fast enough to record video on an SD card in a camera, and of course DVDs are serial too. Serial ATA is even a lot faster.
I'm also wondering if there won't be any problems synchronizing the data on a different clock. At 100+ MHz speeds, the data and clock will be out of phase by a significant amount. This can be compensated, but it would be easier to send the clock along with the data.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept & Design of Parallel 16-bit VGA Boards
I was hoping to have a pixel clock below 100MHz. This way the CPU and pixel clocks could be one in the same. This clock would have to originate from the controller board, so the onboard oscillator would have to be jumper disabled. This oscillator is there mainly for testing purposes during standalone operation. I probably will want to bring it back down to 100MHz.
Having the shift registers (if one decides to go this route) probably could only run at a multiple of 2. The controller board would have to multiply the cpu/pixel clock frequency internally by 2 and the video board itself would also have to multiply this common cpu/pixel frequency internally by 2 for the common shift-in/shift-out frequencies. Maybe a block diagram would help...
This shift register idea is just an idea. It may turn out parallel would be best after all. Nonetheless, the signals are there for both ideas to be tested through HDL implementations.
Having the shift registers (if one decides to go this route) probably could only run at a multiple of 2. The controller board would have to multiply the cpu/pixel clock frequency internally by 2 and the video board itself would also have to multiply this common cpu/pixel frequency internally by 2 for the common shift-in/shift-out frequencies. Maybe a block diagram would help...
This shift register idea is just an idea. It may turn out parallel would be best after all. Nonetheless, the signals are there for both ideas to be tested through HDL implementations.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept & Design of Parallel 16-bit VGA Boards
I was getting tunnel vision... The signals are there, we can do what we want with the I/O.
What I realized today if I want this board made soon, is that I have to concentrate on the mainboard layout. The way the interconnections are made will actually dictate which pins are which on the main connector. Right now I see spaghetti! I have much work to do.
EDIT: I have started on this endeavour on a new thread.
What I realized today if I want this board made soon, is that I have to concentrate on the mainboard layout. The way the interconnections are made will actually dictate which pins are which on the main connector. Right now I see spaghetti! I have much work to do.
EDIT: I have started on this endeavour on a new thread.
Last edited by ElEctric_EyE on Wed Aug 15, 2012 5:14 pm, edited 1 time in total.
Re: Concept & Design of Parallel 16-bit VGA Boards
To get some more flexibility with the clock, it's probably a good idea to route one of the pins to a global clock input pin on the FPGA.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept & Design of Parallel 16-bit VGA Boards
I would have to sacrifice 1 GCLK signal from the RAM. There are 2 possibilities looking at the truth table on Pg12 of the Cy7C1463 data sheet. Currently, I have /CEN and ADV/LD each going to GCLKs. I imagine CEN would be best to sacrifice and tie this line low.
Re: Concept & Design of Parallel 16-bit VGA Boards
I think you can also remove one of the MAINCLK1/MAINCLK2 inputs. Each of those can be attached to a global clock net, so there's no need to have two identical inputs.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept & Design of Parallel 16-bit VGA Boards
I've included 2 MainClk inputs, because if one were to use 1 input for a PLL for instance, then that input is used. You cannot branch off of that input.
Re: Concept & Design of Parallel 16-bit VGA Boards
ElEctric_EyE wrote:
I've included 2 MainClk inputs, because if one were to use 1 input for a PLL for instance, then that input is used. You cannot branch off of that input.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept & Design of Parallel 16-bit VGA Boards
Interesting. I had generated the 12MHz for MCP2200 USBtoUART and 27MHz for CS4954 video using a PLL from 1 100MHz GCLK. When I tried to tap that same GCLK, using schematic entry, to create a 40MHz CPU clock, it gave me an error. So I used a second 100MHz tap. Must be a limitation of schematic entry.
Re: Concept & Design of Parallel 16-bit VGA Boards
This PDF describes the Spartan 6 clock distribution resources:
http://www.xilinx.com/support/documenta ... /ug382.pdf
http://www.xilinx.com/support/documenta ... /ug382.pdf
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept & Design of Parallel 16-bit VGA Boards
That is a 118-pg User's Guide. I am familiar with it. I'll get more familiar with it regarding GCLKs, unless you have something specific to point out, in order to save me time?
Regarding S6, I have:
ds160
ds162
ug380
ug381
ug382
ug383
ug384
ug385
ug386
ug388
ug389
ug393
wp360
wp368
wp370
xapp879
Regarding S6, I have:
ds160
ds162
ug380
ug381
ug382
ug383
ug384
ug385
ug386
ug388
ug389
ug393
wp360
wp368
wp370
xapp879
Last edited by ElEctric_EyE on Tue Aug 14, 2012 11:12 pm, edited 1 time in total.
Re: Concept & Design of Parallel 16-bit VGA Boards
Chapter 1, pages 11-26 look like they provide a decent overview of all the clock connections. It looks like there's plenty of flexibility. It could be that the schematic entry requires explicit use of some of the clock buffers to get the necessary routes assigned.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept & Design of Parallel 16-bit VGA Boards
Excellent, thanks! Re-EDIT: I will look into this further as I notice the terms ISERDES/OSERDES. I noticed them before when skimming, but now I pay particular attention as they refer to serial-to-parallel and parallel-to-serial clocking on a higher order than even a GCLK.
I think we can keep the 2 MainClk inputs, unless you think it's a good idea to keep the SyncRAM's /CEN. The datasheet mentioned /CEN can be used to stretch access which is the only reason I kept it connected to a GCLK. If this were an asynchronous RAM, I would've grounded it from the start.
EDIT: But then there wouldn't be a ClkEn on an AsyncRAM...
I think we can keep the 2 MainClk inputs, unless you think it's a good idea to keep the SyncRAM's /CEN. The datasheet mentioned /CEN can be used to stretch access which is the only reason I kept it connected to a GCLK. If this were an asynchronous RAM, I would've grounded it from the start.
EDIT: But then there wouldn't be a ClkEn on an AsyncRAM...
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
Re: Concept & Design of Parallel 16-bit VGA Boards
Putting ISERDES/OSERDES aside for now...
I am busy reorganizing the signals on the main connector according to the mainboard layout which I've got some info about in this thread. The data I have in the header of this thread will change very soon to reflect the update. Simply put, pins 1-32 will be inputs. Pins 65-96 will be outputs. Pins 33-64 will be slower control signals. I'm posting now because I can say I am able to successfully reorganize the RGB I/O signals as I need to, in order to complete this PVB design very soon.
EDIT: New layout is complete. Constraints file and Main Connector pinouts are updated. Now back to Mainboard layout...
EDIT: Now all Main Connector Pins have been assigned, all former NC (no connects) are now GNDs. Main connector pinout and Layout updated.
EDIT: A few more optimizations have been made to the layout/main connector pinout/constraint file and posted to the header. Today, I'm completing a parts list while double checking pin to pin connections. If I find no errors, I am tempted to order the first 3 boards tomorrow, along with a few more parts in order to complete 2 boards. Will post a parts list soon to the header. 8/21/12
I am busy reorganizing the signals on the main connector according to the mainboard layout which I've got some info about in this thread. The data I have in the header of this thread will change very soon to reflect the update. Simply put, pins 1-32 will be inputs. Pins 65-96 will be outputs. Pins 33-64 will be slower control signals. I'm posting now because I can say I am able to successfully reorganize the RGB I/O signals as I need to, in order to complete this PVB design very soon.
EDIT: New layout is complete. Constraints file and Main Connector pinouts are updated. Now back to Mainboard layout...
EDIT: Now all Main Connector Pins have been assigned, all former NC (no connects) are now GNDs. Main connector pinout and Layout updated.
EDIT: A few more optimizations have been made to the layout/main connector pinout/constraint file and posted to the header. Today, I'm completing a parts list while double checking pin to pin connections. If I find no errors, I am tempted to order the first 3 boards tomorrow, along with a few more parts in order to complete 2 boards. Will post a parts list soon to the header. 8/21/12