Using the VGA controller with block ram generator and clock wizard
If you want to use the vga controller remember to
- copy-paste the vga.txt file and save it as vga.vhd
- copy-paste the Nexys4_Master.txt file and save it as Nexys4_Master.xdc
The vga controller is using a BRAM block to store pixel values. Each pixel has 12-bits and number of pixels projected to the screen is 480x640=307200
- sw_i(15) -- active high, write enable
- sw_i(11 downto 0) -- 12-bits for colour changing the screen
CREATING NEW PROJECT
Press create new project
Press next on the first window that pops up, then you can choose were you want to store your project, click next.
Choose RTL project and click next
Add your VHDL file if you have one, if you don’t you can add the VGA-controller file just to make sure that everything works properly. Click next
Add the Nexys4_Master.xdc , this will connect all your I/O, LED, SW etc.
Choose the xca100tcsg324-1 and click next and then finish.
Vivado will open, now you can make your own VHDL code or you can follow instruction further if you want to use the VGA controller. If you want to make your own code you can skip the IP part and go to generate bitstream to see how you should implement your code on the FPGA.
Adding IP’s, clk generator 25.2MHz and BRAM. Click IP Catalog and then
Search for Clocking Wizard and enter and this will pop up, clocking option should look like this, remember to change the Component name!
Change the output clock to 25.2MHz
Port renaming: use names that explains your component, and click OK
This should pop up, click generate
Adding BRAM, search for bram and enter the Block Memory Generator and this should pop up. Remember component name
Port A Options, write width = 12bits, write depth = 307200=(480*640 pixels projected on screen), then click OK and then generate as before and wait until the synthesis is done.
GENERATE BITSTREAM: click generate bitstream
If this pops up click yes
If this message shows, just click ok, it only means that you have pins activated in your Nexys4_Master.xdc that are not in use.
If later on want to change witch pins are active on your board you can configure this by entering the Nexys4_Master.xdc
When completed, choose “Open Hardware Manager” and click ok
At this point connect your NEXY4 board . In the left menu under “program and debug”, click open target => open new target
Open new Hardware target will pop up, click next two times and this will show. Choose JTAG clock freq. 30 000 000, click next and then finish
Now you can program your device, click program device and choose your FPGA
Click program and your device is ready to go.