打印
[FPGA]

代码编译正确,但是不能按照设计显示,求大神指教

[复制链接]
630|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linggongji|  楼主 | 2015-12-4 19:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
module led_dt ( rst_n,clkin,
                dataout,en
                );

input rst_n,clkin;


output[7:0] dataout;
output[3:0] en;

//------------------------------------扫描频率
reg[14:0] cnt_scan;


always @ (posedge clkin or negedge rst_n)
if(!rst_n)cnt_scan<=15'b0;
else cnt_scan<=cnt_scan+1'b1;


reg[3:0] en;
always @ (cnt_scan)
begin
  case(cnt_scan[14:13])
     2'b00: en<=4'b1000;        //显示第一个数码管
          2'b01: en<=4'b0100;        //显示第二个数码管
          2'b10: en<=4'b0010;        //显示第三个数码管
          2'b11: en<=4'b0001;        //显示第四个数码管
          default:en<=4'b1000;   //显示第一个数码管
          endcase
end

//------------------------------------输出显示的数值设置       
reg[3:0] databuff;            //显示输入值
reg[7:0] dataout_r;

         
always @ (databuff)
begin
case(databuff)
4'b0000:                        //显示0
     dataout_r<=8'b0000_0011;
4'b0001:                        //显示1
     dataout_r<=8'b1001_1111;
4'b0010:                        //显示2
     dataout_r<=8'b010_01011;
4'b0011:                        //显示3
     dataout_r<=8'b0000_1101;
4'b0100:                        //显示4
     dataout_r<=8'b1001_1001;
4'b0101:                        //显示5
     dataout_r<=8'b0100_1001;
4'b0110:                        //显示6
     dataout_r<=8'b0100_0001;
4'b0111:                        //显示7
     dataout_r<=8'b0001_1111;
4'b1000:                        //显示8
     dataout_r<=8'b0000_0001;
4'b1001:                        //显示9
     dataout_r<=8'b0000_1001;
4'b1010:                        //显示A
     dataout_r<=8'b0001_0000;
4'b1011:                        //显示B
     dataout_r<=8'b0000_0000;
4'b1100:                        //显示C
     dataout_r<=8'b0111_0000;
4'b1101:                        //显示D
     dataout_r<=8'b0000_0010;
4'b1110:                        //显示E
     dataout_r<=8'b0110_0000;
4'b1111:                        //显示F
     dataout_r<=8'b0111_0000;
default:dataout_r<=8'b0111_0000;

endcase
end


//输入需要显示的数值
always @ (en)
begin
case(en)
4'b1000:
        databuff<=3;
4'b0100:
        databuff<=3;
4'b0010:
        databuff<=3;
4'b0001:
        databuff<=3;
default:databuff<=5;
endcase
end

wire[7:0] dataout;
assign  dataout=dataout_r;
endmodule

相关帖子

沙发
z894811350| | 2015-12-7 09:48 | 只看该作者
always @ (databuff)
这个databuff没有变啊,你应该用always@(*)或者always@(posedge clkin)
你的代码都用一些计数器来控制块,我真没这么用过,感觉对于同步方面应该不会太好。
你的扫面时间可以长一点,用ms来扫描。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

24

帖子

1

粉丝