This small PR includes a few updates to support a non-emulation use case running at a relatively high frequency.
New TCLFile type allowing users to add custom TCL code to the Vivado build process. I'm using this to instantiate new IPs using TCL rather XCI, which can be a bit more portable & flexible.
New option for prj.yaml: no_time_manager. Causes the Verilog generation to not include the time manager and its associated collateral. The main purpose for this is to avoid limiting the maximum operating frequency of the project.
As part of this bypass, emu_clk_2x ends up simply being wiring directly to emu_clk, so the user should note that emu_clk will be twice as fast as specified in prj.yaml when this option is used.
wait_on_and_dump_trace has a new argument emu_time_scaled which is passed straight through to the ConvertWaveform object, which already has that argument.
Implemented emu_time_scaled argument for CSV -> VCD conversion in ConvertWaveform. This is useful when no_time_manager is used.
Fixed two small bugs in module_clk_manager.py
UPDATE 12/4/2020:
I have also used this as an opportunity to add Windows to the platforms tested with GitHub actions, and to add preliminary support of the ZCU102 board. This addresses issues #10 and #41.
This small PR includes a few updates to support a non-emulation use case running at a relatively high frequency.
TCLFile
type allowing users to add custom TCL code to the Vivado build process. I'm using this to instantiate new IPs using TCL rather XCI, which can be a bit more portable & flexible.prj.yaml
:no_time_manager
. Causes the Verilog generation to not include the time manager and its associated collateral. The main purpose for this is to avoid limiting the maximum operating frequency of the project. As part of this bypass,emu_clk_2x
ends up simply being wiring directly toemu_clk
, so the user should note thatemu_clk
will be twice as fast as specified inprj.yaml
when this option is used.wait_on_and_dump_trace
has a new argumentemu_time_scaled
which is passed straight through to theConvertWaveform
object, which already has that argument.emu_time_scaled
argument for CSV -> VCD conversion inConvertWaveform
. This is useful whenno_time_manager
is used.module_clk_manager.py
UPDATE 12/4/2020: I have also used this as an opportunity to add Windows to the platforms tested with GitHub actions, and to add preliminary support of the ZCU102 board. This addresses issues #10 and #41.