Verilog:为什么“ maxcount”不能保持最大值,而是随“ count”变化?

ky

任何帮助将不胜感激!

我编写此模块是为了跟踪用Verilog编写并在LED阵列上运行的游戏的得分(<= 99)。我希望它能够保持最高分。当电流count大于时maxcountmaxcount将等于电流count,否则将保持其值。

问题是,我不知道为什么maxcount每次count更改都会更改其值(当count减少时,它不能保持其值,而是随着而变小count

有逻辑错误吗?还是我错过了任何Verilog错误?

非常感谢你!

module score_keep(Clock, Reset, pt_0, pt_1, pt_2, pt_3, hex1, hex0, hex3, hex2);
    input Clock, Reset;
    input signed [3:0] pt_0, pt_1, pt_2, pt_3;
    output [6:0] hex1, hex0, hex3, hex2;

    wire signed [6:0] count;
    wire signed [6:0] maxcount;
    score_counter sc (Clock, Reset, pt_0, pt_1, pt_2, pt_3, count, maxcount);

    display(count, maxcount, hex1, hex0, hex3, hex2);

endmodule 

module display (count, maxcount, hex1, hex0, hex3, hex2);
    input [6:0] count, maxcount;
    output [6:0] hex1, hex0, hex3, hex2;

    wire [4:0] unit, unit_m;
    wire [4:0] tens, tens_m;

    assign unit = count % 10;
    assign tens = count / 10;

    assign unit_m = count % 10;
    assign tens_m = count / 10;

    seg7 ud (unit, hex0);
    seg7 td (tens, hex1);
    seg7 umd (unit_m, hex2);
    seg7 tmd (tens_m, hex3);


endmodule 

module score_counter(Clock, Reset, pt_0, pt_1, pt_2, pt_3, count, maxcount);
    input Clock, Reset;
    //input signed [3:0] sum;
    input [3:0] pt_0, pt_1, pt_2, pt_3;
    parameter signed [3:0] no_point = 4'b0000, plus_one = 4'b0001, plus_two = 4'b0010, neg_two = 4'b1110;
    //input zero, negative, carry, overflow;

    output signed [6:0] count, maxcount;
    reg signed [6:0] count, maxcount;

    ////wire PS;
    //reg NS;

    always @(posedge Clock)
        if (Reset) begin
            count <= 7'b0;
            maxcount <= 7'b0;
        end else begin
            if (count > maxcount) begin
                maxcount <= count;
            end 
            if (pt_0 == neg_two) begin
                if (count < 2) begin
                    count <= 7'b0;
                end else begin
                    count <= count - 2;
                end
            end else begin
                count <= count + pt_0;
                if (count > 7'b100010) begin
                    count <= 7'b0;
                end
            end

            if (pt_1 == neg_two) begin
                if (count < 2) begin
                    count <= 7'b0;
                end else begin
                    count <= count - 2;
                end
            end else begin
                count <= count + pt_1;
                if (count > 7'b100010) begin
                    count <= 7'b0;
                end
            end

            if (pt_2 == neg_two) begin
                if (count < 2) begin
                    count <= 7'b0;
                end else begin
                    count <= count - 2;
                end
            end else begin
                count <= count + pt_2;
                if (count > 7'b100010) begin
                    count <= 7'b0;
                end
            end

            if (pt_3 == neg_two) begin
                if (count < 2) begin
                    count <= 7'b0;
                end else begin
                    count <= count - 2;
                end
            end else begin
                count <= count + pt_3;
                if (count > 7'b100010) begin
                    count <= 7'b0;
                end
            end
        end
endmodule
格雷格

您显示count的所有hex?职位。

assign unit_m = count % 10;
assign tens_m = count / 10;

应该:

assign unit_m = maxcount % 10;
assign tens_m = maxcount / 10;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Verilog:为什么“ maxcount”不能保持最大值,但会随着“ count”而变化?

来自分类Dev

Verilog:为什么不能反转导线?

来自分类Dev

为什么Python指向随此函数的微小变化而变化?

来自分类Dev

张量的值为什么会变化?

来自分类Dev

为什么我的 verilog 测试平台不能显示中间变量?

来自分类Dev

CSS:为什么div块的高度会随内容而变化?

来自分类Dev

为什么我的tkinter对象保持形状变化?

来自分类Dev

为什么最大堆栈深度会不断变化?

来自分类Dev

为什么数组元素中的值发生变化?

来自分类Dev

为什么动态输入值未显示Angularjs的变化?

来自分类Dev

为什么Java中的值没有变化

来自分类Dev

为什么应用于字典的 max 函数不给出最大值而是用最大值重新调整键?

来自分类Dev

为什么 count 的值不会改变

来自分类Dev

为什么reduce {}不能按预期返回最大值?

来自分类Dev

寻找变化数的最大值

来自分类Dev

d3.js。流图随不同的数据集而变化。为什么?

来自分类Dev

为什么不能在文本上使用COUNT()方法?

来自分类Dev

为什么在石墨中创建度量时,statsd经常不能产生所有变化

来自分类Dev

为什么此svg曲线动画不能适应浏览器宽度的变化?

来自分类Dev

为什么在verilog任务中的输出在第一个周期变为x(未知值)?

来自分类Dev

为什么在发送服务时列表值发生变化

来自分类Dev

为什么第二个对象的值没有变化?

来自分类Dev

为什么每秒读取两次不断变化的文件会得到相同的值?

来自分类Dev

有人可以解释为什么我的输入字段值没有变化

来自分类Dev

为什么Java允许以火属性变化时,新旧值都为空

来自分类Dev

为什么tkinter的grid,columnconfigure和rowconfigure值没有动态变化?

来自分类Dev

为什么即使我通过引用传递,变量的值也没有变化

来自分类Dev

为什么$ 1的值在`{$ total = $ total + $ 1}中发生了变化?

来自分类Dev

为什么浮点数中的精度问题会根据值而变化?

Related 相关文章

  1. 1

    Verilog:为什么“ maxcount”不能保持最大值,但会随着“ count”而变化?

  2. 2

    Verilog:为什么不能反转导线?

  3. 3

    为什么Python指向随此函数的微小变化而变化?

  4. 4

    张量的值为什么会变化?

  5. 5

    为什么我的 verilog 测试平台不能显示中间变量?

  6. 6

    CSS:为什么div块的高度会随内容而变化?

  7. 7

    为什么我的tkinter对象保持形状变化?

  8. 8

    为什么最大堆栈深度会不断变化?

  9. 9

    为什么数组元素中的值发生变化?

  10. 10

    为什么动态输入值未显示Angularjs的变化?

  11. 11

    为什么Java中的值没有变化

  12. 12

    为什么应用于字典的 max 函数不给出最大值而是用最大值重新调整键?

  13. 13

    为什么 count 的值不会改变

  14. 14

    为什么reduce {}不能按预期返回最大值?

  15. 15

    寻找变化数的最大值

  16. 16

    d3.js。流图随不同的数据集而变化。为什么?

  17. 17

    为什么不能在文本上使用COUNT()方法?

  18. 18

    为什么在石墨中创建度量时,statsd经常不能产生所有变化

  19. 19

    为什么此svg曲线动画不能适应浏览器宽度的变化?

  20. 20

    为什么在verilog任务中的输出在第一个周期变为x(未知值)?

  21. 21

    为什么在发送服务时列表值发生变化

  22. 22

    为什么第二个对象的值没有变化?

  23. 23

    为什么每秒读取两次不断变化的文件会得到相同的值?

  24. 24

    有人可以解释为什么我的输入字段值没有变化

  25. 25

    为什么Java允许以火属性变化时,新旧值都为空

  26. 26

    为什么tkinter的grid,columnconfigure和rowconfigure值没有动态变化?

  27. 27

    为什么即使我通过引用传递,变量的值也没有变化

  28. 28

    为什么$ 1的值在`{$ total = $ total + $ 1}中发生了变化?

  29. 29

    为什么浮点数中的精度问题会根据值而变化?

热门标签

归档