1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
* * * DELETE ME * * * * * * * DELETE ME * * * * * * * DELETE ME * * * * * * * *
This folder contains a template Verilog/VHDL HDL project with a basic build
system for using the Xilinx ISE toolchain to target FPGAs.
When using this as a project template, edit this file and then delete this
section. See ./contrib/QUICK_START.txt for help setting up a new project. At a
minimum you will need to copy ./contrib/Makefile.example to ./Makefile.
Hint: search this file for "<board>"
^ ^ ^ DELETE ME ^ ^ ^ ^ ^ ^ ^ DELETE ME ^ ^ ^ ^ ^ ^ ^ DELETE ME ^ ^ ^ ^ ^ ^ ^ ^
== About =====================================================================
<<<<fill this part in>>>>
See COPYING for copyright and licensing information.
This folder contains Verilog/VHDL source code and a build system based on the
no-cost Xilinx ISE WebPack toolchain for simulating and synthesizing targeting
FPGAs.
== Repository Contents =======================================================
hdl/
Synthesizable Verilog and VHDL source code
tb/
Testbench simulation source code, unit tests, related data and scripts
docs/
Documentation might live here
contrib/
Project-independent build scripts are set here
backup/
A handful of old "known-good" bitfiles might get archived here.
Makefile
Project-specific build variables are set here
== Synthesis =================================================================
The Xilinx ISE development must be installed and licensed on the local machine.
A set of command-line build scripts are usually used to build the project
instead of the ISE IDE, but the later could be configured and used as well.
Python and GNU make must be on the $PATH.
Synthesize a bitfile with:
make
To upload the bitfile over JTAG using the Xilinx Impact utility, run the
command below. There may be other upload board-specific upload mechanisms; look
elsewhere in this file or for a README in ./contrib/<board>.
The toplevel ucf (constraints mapping netlist objects from the verilog
compilation to hardware resources, and place and routing and timing
constraints) will either be a .ucf file in this top directory, or, if a board
template was used, might live in ./contrib/<board>/<board>.ucf.
The toplevel verilog module, which probably does nothing (just sets some pins
to zero) lives in:
./hdl/main_<board>.v
To load a synthesized bitfile,
== Simulation ================================================================
To simulate the testbench in ./tb/<testbench>_tb with the isim GUI:
make isim/<testbench>_tb
A "tb/<testbench>_tb.wcfg" may be missing for new testbenches, which isim will
complain about. After you set up your waveform configuration in isim for the
first time, be sure to save and rename the configuration appropriately.
After editing any HDL files (either the testbench itself or files in ./hdl/),
instead of restarting isim you can simply run the following command and then
hit the "Reload" button in the isim GUI:
make resim/<testbench>_tb
Some testbenches may be written in a particular style and can be run as
automated tests. To run a particular test, or to run all unit tests:
make test/<testname>_tb
make tests
== Development ===============================================================
This project uses a template HDL build system. You can read more about
developing with this system in the HOWTO and README files in the ./contrib/
directory. In particular, there are directions on:
- using Xilinx Coregen to instantiate HDL cores
- creating unittest-style testbenches
|