我正在尝试为我的VHDL语言设计写一个systemVerilog测试台。问题出在数据类型上。例如,在VHDL中,我有:
punti_retta : out integer range 255 downto 0;
fdata_in : in integer range 127 downto -128;对于第一个,我在systemVerilog测试平台中尝试了"integer 7:0 punti_retta“;但是,该工具忽略了范围定义,根据波形,它是错误的。
我应该在我的systemVerilog测试平台中为这些信号定义什么以及如何定义?有什么建议吗?
发布于 2020-03-11 22:13:04
SystemVerilog没有整数范围的概念,只有位宽的概念。您可以使用$clog2()近似计算范围。
bit [$clog2(255)-1:0] punti_retta;
bit signed [7:0] fdata_in;由于没有跨越标准边界的标准,您将不得不查看您的工具对映射端口类型的限制。您可能需要将这些类型放在一个公共包中。
顺便说一句,由于第一个Verilog-XL模拟器中的怪癖,integer [7:0]中的位范围被忽略或产生错误。最初,integer类型是未调整大小的,并由执行模拟的操作系统决定。他们曾计划使用这种语法来指定整数大小,但从未实现它。
https://stackoverflow.com/questions/60637072
复制相似问题