EPM240 入门程序求助~~
程序如下:控制一个数码管每隔一秒显示加一,可以显示0~9,输入时钟为50MHZ
module Verilog_7seg(clk,rest_n,led1,ss);
input clk;
input rest_n;
output led1;
output ss;
reg ss = 8'b11111111 ;
reg cnt;
reg num;
always @(posedge clk or negedge rest_n)
begin
if(!rest_n) cnt <= 28'd0;
else if(cnt===28'd50000000)
begin
cnt <= 28'd0;
num <= num + 8'd1;
if(num===8'd10) num <= 8'd0;
case(num)
//DP G F E | D C B A//
0: ss = 8'b11000000;
1: ss = 8'b11111001;
2: ss = 8'b10100100;
3: ss = 8'b10110000;
4: ss = 8'b10011001;
5: ss = 8'b10010010;
6: ss = 8'b10000010;
7: ss = 8'b11111000;
8: ss = 8'b10000000;
9: ss = 8'b10010000;
default: ss = 8'b01111111;
endcase
end
else cnt <= cnt +28'd1;
end
assign led1 = 1'b0;
endmodule
问题:此程序烧到CPLD中后,发现程序执行了case中的default语句,不明白为什么,begin...end 内的语句不是顺序执行的嘛 是顺序执行的 可是为什么会执行default:这句呢~~~~有点不明白 你是怎么知道执行了default:这句呢 因为正常情况下只会显示0~9,但我烧进CPLD,运行,结果确实是显示了default的内存啦 建议楼主入门时不要先用代码做实验,毕竟数字系统设计不同于软件设计,
设计一个数字系统前要先在大脑里有一个这个系统的电路图,将它模块化,分别用HDL代码描述每一个模块,最后再连接起来。 reg num;
你先付个初值看看8bit的寄存器可能的值0-255
reg num=0;
页:
[1]