美文网首页
assign语句延迟

assign语句延迟

作者: 浙南旧事 | 来源:发表于2021-05-31 11:02 被阅读0次

之前一直对assign语句的延迟作用有一些疑问,特别是在指定的延迟时间内,输入有多次变化时。虽然都说在延迟时间内,输入如果有变化,就取最新的值,但看实际波形时,老感觉对不上。

后来搜到 https://blog.csdn.net/qq_20222919/article/details/107576195 这篇文章,感觉比较靠谱,说是输入停止变化后,延迟指定时间,再取最新的输入值做运算输出。

这里再做进一步分析。
"输入停止变化",应该是说变化后,至少要维持指定的延迟时间这么长。

第一个用例,延迟5个时间单位。
源码:

module D(out, a);
output out;
input a;

assign #5 out = a;
endmodule

测试代码:

module stimulus;

reg a;
wire out;

D d1(out, a);

initial
begin
    a = 1'b0;
    #10;
    
    #1;
    a = 1'b1;
    
    #2;
    a = 1'b0;

    #3;
    a = 1'b1;
    
    #4;
    a = 1'b0;

    #5;
    a = 1'b1;
    
    #6;
    a = 1'b0;
    
    #20;
    $finish;
end

endmodule

波形图如下:


5ns.jpg

第二个用例,其他都一模一样,就是延迟改成6个时间单位。
波形图如下:


6ns.jpg

第三个用例,延迟改成10个时间单位。
波形图如下:


10ns.jpg

相关文章

  • assign语句延迟

    之前一直对assign语句的延迟作用有一些疑问,特别是在指定的延迟时间内,输入有多次变化时。虽然都说在延迟时间内,...

  • Golang(十五)defer语句

    defer` 1.1 延迟是什么? 即延迟(defer)语句,延迟语句被用于执行一个函数调用,在这个函数之前,延迟...

  • 第15章-defer语句

    defer 1.1 延迟是什么? 即延迟(defer)语句,延迟语句被用于执行一个函数调用,在这个函数之前,延迟语...

  • Golang中defer用法

    Go语言中的defer语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按d...

  • 延迟语句--defer

    一、初识defer func main(){defer fmt.println("world")fmt.print...

  • Hibernate 抓取策略(查询)

    检索方式 立即检索:立即查询,在执行查询语句时,立即查询所有的数据。 延迟检索:延迟查询,在执行查询语句之后,在需...

  • 专题:assign

    assign,连续赋值语句,有些书称为数据流描述方式。assign,顾名思义,分配、布置。它是将一个表达式的值、数...

  • defer go

    Go语言的 defer 语句会将其后面跟随的语句进行延迟处理,在 defer 归属的函数即将返回时,将延迟处理的语...

  • golang延迟调用函数defer

    defer语句被⽤于预定对⼀个函数的调⽤。可以把这类被defer语句调⽤的函数称为延迟函数。 延迟的函数是按照后进...

  • 15. defer语句延迟函数的执行

    当函数中有defer语句,会延迟此语句的执行,直到函数返回后才执行。 defer后面的是参数延迟调用的参数是立刻生...

网友评论

      本文标题:assign语句延迟

      本文链接:https://www.haomeiwen.com/subject/hiymsltx.html