首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Verilog问题

Verilog问题
EN

Stack Overflow用户
提问于 2016-03-29 08:41:42
回答 1查看 82关注 0票数 0

我不知道我的代码出了什么问题,可能有很多问题。现在,我不知道如何将寄存器值赋给En输出。我现在需要使用Verilog代码来学习一门数字电路课程。我对此有点厌倦了。

代码语言:javascript
复制
`timescale 1ns / 1ps
/////////////////////////////////////////////////////////////////////////////////    /
// Company: 
// Engineer: 
// 
// Create Date:    13:57:18 03/15/2016 
// Design Name: 
// Module Name:    Moving7Seg 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module Moving7Seg( B, C, Rst, ClkIn, D6, D5, D4, D3, D2, D1, D0, En3, En2, En1, En0 );

input B, C, Rst, ClkIn;
output D6, D5, D4, D3, D2, D1, D0, En3, En2, En1, En0;

//wire D6, D5, D4, D3, D2, D1, D0, En3, En2, En1, En0;

reg ClkOut = 0;
reg bLast = 0;
reg cLast = 0;
//reg rstLast = 0;

reg [3:0]count = 0;
reg [3:0]enable = 4'b0001;


clockdivider getClk(ClkIn, ClkOut);
seg7 convert(count[3], count[2], count[1], count[0], D6, D5, D4, D3, D2, D1, D0);



always @(posedge ClkOut) begin
    if(Rst == 1) begin
        count = 0;
        enable = 4'b0001;
    end

    if(B != bLast && B == 0) begin
        case(enable)
        4'b0001: enable = 4'b0010;
        4'b0010: enable = 4'b0100;
        4'b0100: enable = 4'b1000;
        default: enable = 4'b0001;
        endcase
    end

    if(C != cLast && C == 0) begin
        count = count + 1;
    end

bLast = B;
cLast = C;
//rstLast = Rst;


end

En3 <= enable[3];
En2 <= enable[2];
En1 <= enable[1];
En0 <= enable[0];
convert;

endmodule
EN

回答 1

Stack Overflow用户

发布于 2016-03-30 03:26:45

1)如果那些"En“输出应该反映enable信号的当前状态,那么您可能需要像这样”赋值“(并将它们保留在always块之外):

代码语言:javascript
复制
    assign En3 = enable[3];
    assign En2 = enable[2];
    assign En1 = enable[1];
    assign En0 = enable[0];

2)如注释中所述,删除多余的“转换”行。

3) always块中的所有赋值都应该是真正的非阻塞的。也就是说,使用<=赋值操作符,而不是=操作符。

4)您可能需要一个用于检查Rstelse盒。也就是说,enable、count等的所有更新都应该在Rst != 0的情况下发生。

5)您可能还想重置bLastcLast

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36273542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档