更改为自动时钟会导致输出变为空白

卢克·福克斯

尝试自动在测试台中为Delay Flip Flop设置时钟,因为我不希望总是这样手动进行操作:

clock = 0
#5 clock = 1
#10 clock = 0

但是突然之间,我的代码(下面)不起作用。

module d_flip_flop
(
    input [bit:0] a,
    input clock,
    output reg [bit:0] out
);
    parameter bit = 4 - 1;
    always @(posedge clock)
        begin
            out = a;
        end
endmodule

试验台

module d_flip_flop_tb;
    reg [bit:0] a;
    reg clock;
    wire [bit:0] out;
    
    parameter bit = 4 - 1;

    d_flip_flop FLIP1
    (
        a,
        clock,
        out
    );

    initial
        begin
            clock = 0;
            forever
                begin
                    #5 clock = ~clock;
                end
            #1 assign a = 4'b0000;
            $display("INPUT  | %b", a);
            $monitor("OUTPUT | %b", out);
            #15 assign a = 4'b1111;
        end
endmodule

输出似乎是空白的,所以我不知道要更改什么而不输出任何错误(使用Icarus v10)。另外,当我手动滴答时钟时,它工作正常。

环面

主要问题是forever循环会阻止$display$monitor代码执行。您应该将时钟分成单独的initial块。我还添加了一条$finish语句以明确终止模拟。

我不得不将您的parameter声明移到它们的用法之上,因为在不同的模拟器上您的代码出现编译错误。

module d_flip_flop
#(    parameter bit = 4 - 1)
(
    input [bit:0] a,
    input clock,
    output reg [bit:0] out
);
    always @(posedge clock)
        begin
            out = a;
        end
endmodule

module d_flip_flop_tb;
    parameter bit = 4 - 1;
    reg [bit:0] a;
    reg clock;
    wire [bit:0] out;
    

    d_flip_flop FLIP1
    (
        a,
        clock,
        out
    );

    initial begin
            clock = 0;
            forever
                begin
                    #5 clock = ~clock;
                end
    end

    initial begin
            #1 a = 4'b0000;
            $display("INPUT  | %b", a);
            $monitor("OUTPUT | %b", out);
            #15 a = 4'b1111;
            #100 $finish;
    end
endmodule

现在,我看到输出更改:

INPUT  | 0000
OUTPUT | xxxx
OUTPUT | 0000
OUTPUT | 1111

其他说明:

您不应该assigninitial内使用

bit是SystemVerilog的保留关键字。一旦iverilog支持该语法,您可能会遇到编译错误。您可以更改bit为类似的常规内容WIDTH

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

空数组字段会导致json_encode的输出类型从JSONArray更改为JSONObject

来自分类Dev

空数组字段会导致json_encode的输出类型从JSONArray更改为JSONObject

来自分类Dev

Python从单个输入更改为列表会导致错误

来自分类Dev

为什么.htaccess会自动更改为.htaccess.txt

来自分类Dev

在Excel中键入“ PartOf”会自动更改为

来自分类Dev

为什么 gsub 会自动将 Factor 更改为 Character

来自分类Dev

更改图像源会导致图像空白

来自分类Dev

更改字符指针中的值会导致空白或问号

来自分类Dev

空格更改为空白

来自分类Dev

我的系统时钟会自动同步到硬件时钟吗?

来自分类Dev

将活动更改为透明活动时,进度对话框主题会自动更改

来自分类Dev

将Git核心编辑器更改为Notepad ++会导致问题

来自分类Dev

将符号链接“ python”更改为“ python3”会导致问题

来自分类Dev

C-Style for循环工作正常,但更改为Swift for-in会导致超出范围的错误

来自分类Dev

将有效范围更改为新生成的图纸会导致错误

来自分类Dev

将已经安装的硬盘更改为其他系统会导致麻烦吗?

来自分类Dev

将符号链接“ python”更改为“ python3”会导致问题

来自分类Dev

从非虚拟方法更改为虚拟方法可能会导致意外行为

来自分类Dev

将 >= 更改为 <= 会导致查询超出执行时间限制

来自分类Dev

将AWS API输出另存为CSV,将TypeError更改为NoneType或空白

来自分类Dev

cfspreadsheet可以在不将其更改为空白的情况下从查询中输出空值吗?

来自分类Dev

从GAC VS添加引用时,会自动将其更改为本地dll

来自分类Dev

为什么设置会自动更改为“隐藏受保护的操作系统文件”

来自分类Dev

Firefox默认语言会自动更改为阿拉伯语

来自分类Dev

重新启动CentOS 7后,时区会自动更改为“芝加哥”

来自分类Dev

为什么 Django 模型会自动将列更改为 INT

来自分类Dev

行尾字符 LF 会自动更改为 HTML 文本区域中的 CRLF

来自分类Dev

为什么更改为子目录会影响git status的输出?

来自分类Dev

Ubuntu自动将\更改为<

Related 相关文章

  1. 1

    空数组字段会导致json_encode的输出类型从JSONArray更改为JSONObject

  2. 2

    空数组字段会导致json_encode的输出类型从JSONArray更改为JSONObject

  3. 3

    Python从单个输入更改为列表会导致错误

  4. 4

    为什么.htaccess会自动更改为.htaccess.txt

  5. 5

    在Excel中键入“ PartOf”会自动更改为

  6. 6

    为什么 gsub 会自动将 Factor 更改为 Character

  7. 7

    更改图像源会导致图像空白

  8. 8

    更改字符指针中的值会导致空白或问号

  9. 9

    空格更改为空白

  10. 10

    我的系统时钟会自动同步到硬件时钟吗?

  11. 11

    将活动更改为透明活动时,进度对话框主题会自动更改

  12. 12

    将Git核心编辑器更改为Notepad ++会导致问题

  13. 13

    将符号链接“ python”更改为“ python3”会导致问题

  14. 14

    C-Style for循环工作正常,但更改为Swift for-in会导致超出范围的错误

  15. 15

    将有效范围更改为新生成的图纸会导致错误

  16. 16

    将已经安装的硬盘更改为其他系统会导致麻烦吗?

  17. 17

    将符号链接“ python”更改为“ python3”会导致问题

  18. 18

    从非虚拟方法更改为虚拟方法可能会导致意外行为

  19. 19

    将 >= 更改为 <= 会导致查询超出执行时间限制

  20. 20

    将AWS API输出另存为CSV,将TypeError更改为NoneType或空白

  21. 21

    cfspreadsheet可以在不将其更改为空白的情况下从查询中输出空值吗?

  22. 22

    从GAC VS添加引用时,会自动将其更改为本地dll

  23. 23

    为什么设置会自动更改为“隐藏受保护的操作系统文件”

  24. 24

    Firefox默认语言会自动更改为阿拉伯语

  25. 25

    重新启动CentOS 7后,时区会自动更改为“芝加哥”

  26. 26

    为什么 Django 模型会自动将列更改为 INT

  27. 27

    行尾字符 LF 会自动更改为 HTML 文本区域中的 CRLF

  28. 28

    为什么更改为子目录会影响git status的输出?

  29. 29

    Ubuntu自动将\更改为<

热门标签

归档