求大神帮忙实现一个verilog的7段显示程序模块 50
板子上有8个数码管,只用最低位2个程序设定为2位4进制数字显示,输入端为4个按键;要实现的功能为:最低2位数码管开始显示--,当按下4个按键中的一个(比如3),显示3-,...
板子上有8个数码管,只用最低位2个
程序设定为2位4进制数字显示,输入端为4个按键;
要实现的功能为:最低2位数码管开始显示--,当按下4个按键中的一个(比如3),显示3-,再按下4个按键中的一个(比如2),显示32,即可
我自己编的程序为
module x7k(
input [3:0]sw,
output reg [6:0] seg,
output [7:0]an );
begin
assign an=8'b11111101;
begin
if(sw[3]==1)begin seg<=7'b0110000;end
else if(sw[2]==1)begin seg<=7'b0100100;end
else if(sw[1]==1)begin seg<=7'b1111001;end
else if(sw[0]==1)begin seg<=7'b1000000;end
else begin seg<=7'b0111111;end
end
assign an=8'b11111110;
begin
if(sw[3]==1)begin seg<=7'b0110000;end
else if(sw[2]==1)begin seg<=7'b0100100;end
else if(sw[1]==1)begin seg<=7'b1111001;end
else if(sw[0]==1)begin seg<=7'b1000000;end
else begin seg<=7'b0111111;end
end
end
endmodule
但是肯定不对有错误,求大神帮忙改下 展开
程序设定为2位4进制数字显示,输入端为4个按键;
要实现的功能为:最低2位数码管开始显示--,当按下4个按键中的一个(比如3),显示3-,再按下4个按键中的一个(比如2),显示32,即可
我自己编的程序为
module x7k(
input [3:0]sw,
output reg [6:0] seg,
output [7:0]an );
begin
assign an=8'b11111101;
begin
if(sw[3]==1)begin seg<=7'b0110000;end
else if(sw[2]==1)begin seg<=7'b0100100;end
else if(sw[1]==1)begin seg<=7'b1111001;end
else if(sw[0]==1)begin seg<=7'b1000000;end
else begin seg<=7'b0111111;end
end
assign an=8'b11111110;
begin
if(sw[3]==1)begin seg<=7'b0110000;end
else if(sw[2]==1)begin seg<=7'b0100100;end
else if(sw[1]==1)begin seg<=7'b1111001;end
else if(sw[0]==1)begin seg<=7'b1000000;end
else begin seg<=7'b0111111;end
end
end
endmodule
但是肯定不对有错误,求大神帮忙改下 展开
1个回答
2016-05-27
展开全部
把这个模块写成当度一个module,然后采用例化调用的方式调用就OK拉。串行的更好,其实只用一个module单元就可以实现,重复利用这个单元,不过要另外写好,输入输出以及使能控制信号,并行的就必须要罗列多个module例化单元了,这样只能节约你手动写程序的开销,不能节约硬件开销。
追问
谢谢你的回答,但是我对这个并不是很专业,不明白如何例化调用,如果调用的话要怎么修改这个程序呀,谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询