Verilog设计中#,$display,initial为啥不可综合?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Verilog设计中#,$display,initial为啥不可综合?相关的知识,希望对你有一定的参考价值。
参考技术A 所有的电路都是上电以后才开始工作的。而带电以后一般用reset做为电路的初始状态。#是延迟。这个是用来模拟器件的延迟作用而引入的。
$display是用于调试打印log
file而引入的。
initial是用于测试时对外部输入信号进行初始化而引入的。
综合指的是生成实际的电路,这些东西都是为了仿真而引入存在的,所以他们不可综合。
一般遇到不可综合的语句,以及测试用的语句出现在设计中时需要用
//
synopsys
translate
on
//
synopsys
translate
off
括起来。这样DC在综合的时候才会忽略这些语句
建议你参考一下Verilog标准以及可综合部分的扩展标准
verilog HDL 的$display显示的信息在哪里?
我用的是quartusII9.0 ,代码如下:
module adder(count,sum,a,b,cin);
input[2:0] a,b;
input cin;
output count;
output[2:0] sum;
assign count,sum=a+b+cin;
initial
begin
$display($time,);
end
endmodule
$display($time,);这行代码显示当前仿真时间。
在modelsim完成comply和stimulate之后会弹出Transcrip窗口
接着点add wave,观测电平变化 参考技术B 在仿真工具的控制端口。追问
请问具体是哪个窗口呢? 是Tcl console?这个窗口?
追答用的modelsim?那就是那了。
不过一般用命令行的话,就可以在终端显示了。不过都会重定向到log的,然后看log文件。modelsim是有个transcript文件的。
=> $display("%tps",$time); 参考技术D 楼上正解
以上是关于Verilog设计中#,$display,initial为啥不可综合?的主要内容,如果未能解决你的问题,请参考以下文章
Verilog $display用来在哪里输出信息?过程与步骤