如何在verilog中从ns到s计时?

如何在verilog中从ns到s计时?,verilog,Verilog,如何在verilog中更改数字显示器上每秒的数字? 在标题出现“时间刻度1ns/1ps”之前。 所以当我写“#1…”时,这是1ns。 如果不写“#100000000”,我怎么能写出来显示每秒的数字 诸如#10和#1U之类的延迟是不可合成的。这些延迟用于测试台和不可合成的行为模型(也称为参考模型),如时钟发生器 在可合成设计中,时间是以时钟周期数来测量的。为了让您的设计等待特定的时间,一个计数器可以存储期望时间值除以时钟周期。例如,100纳秒时钟上的1秒需要一个可以存储10000000值的计数器。

如何在verilog中更改数字显示器上每秒的数字? 在标题出现“时间刻度1ns/1ps”之前。 所以当我写“#1…”时,这是1ns。 如果不写“#100000000”,我怎么能写出来显示每秒的数字

诸如
#10
#1U
之类的延迟是不可合成的。这些延迟用于测试台和不可合成的行为模型(也称为参考模型),如时钟发生器


在可合成设计中,时间是以时钟周期数来测量的。为了让您的设计等待特定的时间,一个计数器可以存储期望时间值除以时钟周期。例如,100纳秒时钟上的1秒需要一个可以存储10000000值的计数器。

这是合成还是仅仅模拟?这是合成。这样的延迟是不可合成的。合成已检查。我想在显示器上显示:1(暂停1秒)2(暂停1秒)3(暂停1秒)。。。我想知道如何改变时间。如果你不能进入实验室,那么试试免费的模拟器或类似的在线模拟器。
#1s
是SystemVerilog,大多数模拟器支持try
-sv
命令行标志或将文件扩展名更改为
.sv
以启用支持。我尝试了另一种方法。我在黑板上有一个50兆赫的时钟。现在我试着做像/*总是@(posedge时钟)开始如果(二进制输入==0)永远开始seg=8'b10011111/*1*/seg=8'b00001001/*9*/seg=8'b00001101/*3*/seg=8'b00000011/*0*/;end end*/但现在我不知道如何将时钟从50MHz转换为1hz以每秒计数。
永远
也不可合成。同步计数器在哪里?
code
模块显示(输入时钟、输出寄存器复位、寄存器[25:0]计数、输出寄存器[7:0]seg、输出寄存器[3:0]cnp);如果(计数==50000000)开始计数,则始终@(posedge时钟)开始
always @(*)
    begin
    if(binary_input==0)
    begin
    seg=8'b10011111; /*1*/
    #100 seg=8'b00001001; /*9*/
    #100 seg=8'b00001101;