ASIC/FPGA Design and Verification Out Source Services
This page shows a simple example of mirroring some verilog signals into a vhdl test-bench, using ncsim simulator.
-
When I worked on a large sub-system project, I needed to inspect some verilog signals. Since this project is a mixed language one, where most of the code, including the test-bench, is written in VHDL, I had two options to let specman read the DUT internal signals.
-
I could constraint, in the specman code, the agent attribute of this new module to Verilog and access the signals via specman ports. Multiple agent environment, however, requires creating and adding another stub, for verilog signals. This means a relative large effort to understand the environment existing compilation scripts and therefor I did not like this option.
-
Mirroring the signals from a verilog module, deep in the DUT path into the test-bench, looks promising. All that it requires, is the usage of a special VHDL library from the vendor.
--Pini to mirror verilog signals
library NCUTILS;
use NCUTILS.ncutilities.all;
...
ARCHITECTURE top OF enet_tb IS
--------------------------------------------------------------
-- Component declaration
--------------------------------------------------------------
-- Specman stubs file
COMPONENT specman_reference
END COMPONENT;
--Pini to mirror verilog signals
--conv 32 to 10
signal cov_step_cnt : std_logic_vector(1 DOWNTO 0);
signal cov_xoff_in : std_logic;
signal cov_empty : std_logic;
...
BEGIN
--Pini to mirror verilog signals
nc_mirror(
source => ":DUT:uart_gen(0):uart_inst:_dftw_inst:core_inst:const:inst_drv:step_cnt",
destination => "cov_step_cnt",
verbose => ""
);
nc_mirror(
source => ":DUT:uart_gen(0):uart_inst:_dftw_inst:core_inst:const:inst_drv:xoff_in",
destination => "cov_xoff_in",
verbose => ""
);
nc_mirror(
source => ":DUT:uart_gen(0):uart_inst:_dftw_inst:core_inst:const:inst_drv:empty",
destination => "cov_empty",
verbose => ""
--verbose => "verbose"
);
-
Note: You want to leave the verbose empty, otherwise, in verbose mode, you get a lot of messages in the log file.
Contact me now at: |