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