This commit is contained in:
2025-04-16 17:30:50 +00:00
parent 57ad2aa377
commit 526ffaa790
3 changed files with 218 additions and 1 deletions

117
project.cfg Normal file
View File

@@ -0,0 +1,117 @@
## Main settings.. ##
# Project name
# @remark The name of the project is used as default name for the top module and the ucf file
PROJECT = AsyncFIFO
# Target device
# @example xc3s1200e-4-fg320 | xc5vlx50t-1-ff1136
TARGET_PART = xc3s1200e-4-fg320
# Path to the Xilinx ISE installation
XILINX = /opt/Xilinx/14.7/ISE_DS/ISE
# Optional the name of the top module (default is the project name)
TOPLEVEL = AsyncFIFO
# Optional the path/name of the ucf file (default is the project name)
CONSTRAINTS = src/AsyncFIFO.ucf
# Optional a target to copy the bit file to (make copy)
# COPY_TARGET_DIR =
## ## ## ## ## ## ## ##
# ---------------------
## Source files settings.. ##
# The source files to be compiled
# @example `VSOURCE += src/main.v` (add a single Verilog file per line)
# @example `VHDSOURCE += src/main.vhd` (add a single VHDL file per line)
# VHDSOURCE += src/VGATimingGenerator_pb.vhd
# VHDSOURCE += src/VGATimingGenerator_test.vhd
VHDSOURCE += libs/GrayCounter.vhd
VHDSOURCE += src/AsyncFIFO.vhd
VHDSOURCE += libs/Pipeline-AXI-Handshake/src/PipelineRegister.vhd
## Test files settings.. ##
# The testbench files to be compiled
# @example `VTEST += tests/main_tb.v` (add a single Verilog testbench file per line)
# @example `VHDTEST += tests/main_tb.vhd` (add a single VHDL testbench file per line)
#VHDTEST += tests/VGATimingGenerator_tb.vhd
VHDTEST += tests/AsyncFIFO_tb.vhd
## ## ## ## ## ## ## ##
# ---------------------
## ISE executable settings.. ##
# General command line options to be passed to all ISE executables (default is `-intstyle xflow`)
# COMMON_OPTS =
# Options for the XST synthesizer
# @example -register_balancing (yes|no)
# @example -opt_mode (speed|area)
# @example -opt_level (1|2)
XST_OPTS =
# Options for the NGDBuild tool
# NGDBUILD_OPTS =
# Options for the MAP tool
# @example -mt 2 (multi-threading with 2 threads)
# @example -cm speed (speed optimization)
# @example -ol high
# @example -detail
# @example -timing
MAP_OPTS = -detail
# Options for the PAR tool
# @example -mt 2 (multi-threading with 2 threads)
# @example -ol high
PAR_OPTS =
# Options for the BitGen tool
# @example -g Compress (compress bitstream)
# @example -g StartupClk:Cclk (specify the startup clock to onboard clock)
# @example -g StartupClk:JtagClk (specify the startup clock to JTAG clock)
BITGEN_OPTS = -g StartupClk:JtagClk
# Options for the Trace tool
# TRACE_OPTS =
# Options for the Fuse tool
# FUSE_OPTS =
# Options for the ISim simulator
# @example -gui (start the simulator in GUI mode)
# ISIM_OPTS =
# Options for the ISim batch file
# @example vcd dumpfile $@.vcd \n vcd dumpvars -m /UUT \n run 1 sec \n vcd dumpflush \n quit
# ISIM_CMD = vcd dumpfile $@.vcd \n vcd dumpvars -m /UUT \n run 1 sec \n vcd dumpflush \n quit
## ## ## ## ## ## ## ##
# ---------------------
## Programmer settings.. ##
# The programmer to use
# @example impact | digilent | xc3sprog
# @remark impact is the default Xilinx programmer and you must create a impact.cmd file in the root directory..
PROGRAMMER =
## Digilent JTAG cable settings
# @remark Use the `djtgcfg enum` command to list all available devices
# DJTG_DEVICE = DOnbUsb
# The index of the JTAG device for the `prog` target
# DJTG_INDEX = 0
# The index of the flash device for the `flash` target
# DJTG_FLASH_INDEX = 1
## ## ## ## ## ## ## ##
# ---------------------

100
tests/AsyncFIFO_tb.wcfg Normal file
View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<wave_config>
<wave_state>
</wave_state>
<db_ref_list>
<db_ref path="./isim.wdb" id="1" type="auto">
<top_modules>
<top_module name="asyncfifo_tb" />
<top_module name="glbl" />
<top_module name="math_real" />
<top_module name="numeric_std" />
<top_module name="std_logic_1164" />
</top_modules>
</db_ref>
</db_ref_list>
<WVObjectSize size="17" />
<wvobject fp_name="divider71" type="divider">
<obj_property name="label">Write</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">128 128 255</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/i_write_clk" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">i_write_clk</obj_property>
<obj_property name="ObjectShortName">i_write_clk</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property>
<obj_property name="CustomSignalColor">#ff0000</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/i_write_ce" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">i_write_ce</obj_property>
<obj_property name="ObjectShortName">i_write_ce</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/i_write_data" type="array" db_ref_id="1">
<obj_property name="ElementShortName">i_write_data[31:0]</obj_property>
<obj_property name="ObjectShortName">i_write_data[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/r_write_pointer" type="array" db_ref_id="1">
<obj_property name="ElementShortName">r_write_pointer[3:0]</obj_property>
<obj_property name="ObjectShortName">r_write_pointer[3:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/r_read_pointersync" type="array" db_ref_id="1">
<obj_property name="ElementShortName">r_read_pointersync[3:0]</obj_property>
<obj_property name="ObjectShortName">r_read_pointersync[3:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/r_write_pointerlookahead" type="array" db_ref_id="1">
<obj_property name="ElementShortName">r_write_pointerlookahead[3:0]</obj_property>
<obj_property name="ObjectShortName">r_write_pointerlookahead[3:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/o_write_ready" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">o_write_ready</obj_property>
<obj_property name="ObjectShortName">o_write_ready</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/i_write_valid" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">i_write_valid</obj_property>
<obj_property name="ObjectShortName">i_write_valid</obj_property>
</wvobject>
<wvobject fp_name="divider70" type="divider">
<obj_property name="label">Read</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">128 128 255</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/i_read_clk" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">i_read_clk</obj_property>
<obj_property name="ObjectShortName">i_read_clk</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property>
<obj_property name="CustomSignalColor">#ff0000</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/i_read_ce" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">i_read_ce</obj_property>
<obj_property name="ObjectShortName">i_read_ce</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/o_read_data" type="array" db_ref_id="1">
<obj_property name="ElementShortName">o_read_data[31:0]</obj_property>
<obj_property name="ObjectShortName">o_read_data[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/r_read_pointer" type="array" db_ref_id="1">
<obj_property name="ElementShortName">r_read_pointer[3:0]</obj_property>
<obj_property name="ObjectShortName">r_read_pointer[3:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/r_write_pointersync" type="array" db_ref_id="1">
<obj_property name="ElementShortName">r_write_pointersync[3:0]</obj_property>
<obj_property name="ObjectShortName">r_write_pointersync[3:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/o_read_valid" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">o_read_valid</obj_property>
<obj_property name="ObjectShortName">o_read_valid</obj_property>
</wvobject>
<wvobject fp_name="/asyncfifo_tb/AsyncFIFO_inst/i_read_ready" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">i_read_ready</obj_property>
<obj_property name="ObjectShortName">i_read_ready</obj_property>
</wvobject>
</wave_config>