Verilog HDL编程有错,谁能帮改下,多谢了。

2024-12-20 19:16:10
推荐回答(4个)
回答1:

module sled(seg,s1,clock);
output [7:0] seg;
output [3:0] s1;
input clock;
reg [7:0] seg_reg;
reg [3:0] disp_dat;
reg [36:0] count;
reg [3:0] s1_reg;

always@(posedge clock)begin
count=count+1;
end

always begin
s1_reg=4'b0000;
end

always@(count[16])begin
disp_dat=count[27:24];
end

always@(disp_dat)begin
case(disp_dat)
4'h0:seg_reg=8'hc0;
4'h1:seg_reg=8'hf9;
4'h2:seg_reg=8'ha4;
4'h3:seg_reg=8'hb0;
4'h4:seg_reg=8'h99;
4'h5:seg_reg=8'h92;
4'h6:seg_reg=8'h82;
4'h7:seg_reg=8'hf8;
4'h8:seg_reg=8'h80;
4'h9:seg_reg=8'h90;
4'ha:seg_reg=8'h88;
4'hb:seg_reg=8'h83;
4'hc:seg_reg=8'hc6;
4'hd:seg_reg=8'ha1;
4'he:seg_reg=8'h86;
4'hf:seg_reg=8'h8e;
endcase
end
assign seg=seg_reg;
assign s1=s1_reg;
endmodule

这样改就没错了,但是不知道你这段代码想描述的是什么功能,感觉有些奇怪,所以只能按照语法来这样修改了。

回答2:

always模块嵌套了,不能嵌套的

回答3:

太多错啦,s1_reg没有声明是什么类型的变量,第二个always后面没有敏感信号,整体设计没有复位信号,还有为什么不用非阻塞赋值,clock这么关键的信号感觉在你这里面几乎都没用了......

回答4:

爱的