# Demo design for the Nexys 4 board
|
# Demo design for the Nexys 4 board
|
|
|
This folder contains a design for a simple demo design using the Potato
|
This folder contains a design for a simple demo design using the Potato
|
processor. It has been tested using Vivado 2014.4.
|
processor. It has been tested using Vivado 2014.4.
|
|
|
## Quick Start
|
## Quick Start
|
|
|
In order to use the design, first import all source files from the folders
|
In order to use the design, first import all source files from the folders
|
`src/`, `soc/` and `example/` into your project. Make sure the testbench files
|
`src/`, `soc/` and `example/` into your project. Make sure the testbench files
|
(the files starting with "tb_") is added as simulation-only files.
|
(the files starting with "tb_") is added as simulation-only files.
|
|
|
### Clocking
|
### Clocking
|
|
|
Add a clock generator using the Clocking Wizard. To seamlessly integrate
|
Add a clock generator using the Clocking Wizard. To seamlessly integrate
|
it into the design, name it "clock_generator". Choose the following options:
|
it into the design, name it "clock_generator". Choose the following options:
|
|
|
* Frequency Synthesis
|
* Frequency Synthesis
|
* Safe Clock Startup
|
* Safe Clock Startup
|
|
|
Set up two output clocks, `clk_out1` with frequency 60 MHz, and `clk_out2` with
|
Set up two output clocks, `clk_out1` with frequency 60 MHz, and `clk_out2` with
|
a frequency of 10 MHz. Rename the corresponding ports to `system_clk` and
|
a frequency of 10 MHz. Rename the corresponding ports to `system_clk` and
|
`timer_clk` respectively. Name the input clock `clk`.
|
`timer_clk` respectively. Name the input clock `clk`.
|
|
|
### Instruction memory
|
### Instruction memory
|
|
|
Add a block RAM to use as instruction ROM using the Block Memory Generator.
|
Add a block RAM to use as instruction ROM using the Block Memory Generator.
|
Choose "Single Port ROM" as memory type, name it "instruction_rom" and set
|
Choose "Single Port ROM" as memory type, name it "instruction_rom" and set
|
port A width to 32 bits and port A depth to 2048. Initialize it with your
|
port A width to 32 bits and port A depth to 2048. Initialize it with your
|
application binary and, optionally, fill the remaining memory locations with
|
application binary and, optionally, fill the remaining memory locations with
|
0x00000013 (no-operation opcode).
|
0x00000013 (no-operation opcode).
|
|
|
### Test it!
|
### Test it!
|
|
|
Now you can test it and hopefully it works :-)
|
Now you can test it and hopefully it works :-)
|
|
|
|
|