fpga动态数码管扫描问题
本人初学,弱弱的问一句这个代码中的d也就是32位输入要显示的数据,为什么这么设置,感觉和单片机不大一样,但是看了很多代码似乎不那么写又运行不出来效果,求解。modules...
本人初学,弱弱的问一句这个代码中的d也就是32位输入要显示的数据,为什么这么设置,感觉和单片机不大一样,但是看了很多代码似乎不那么写又运行不出来效果,求解。
module scan_led(clk_1k,d,dig,seg); //模块名scan_led
input clk_1k; //输入时钟
input[31:0] d; //输入要显示的数据
output[7:0] dig; //数码管选择输出引脚
output[7:0] seg; //数码管段输出引脚
reg[7:0] seg_r; //定义数码管输出寄存器
reg[7:0] dig_r; //定义数码管选择输出寄存器
reg[3:0] disp_dat; //定义显示数据寄存器
reg[2:0]count; //定义计数寄存器
assign dig = dig_r; //输出数码管选择
assign seg = seg_r; //输出数码管译码结果
always @(posedge clk_1k) //定义上升沿触发进程
begin
count <= count + 1'd1;
end
always @(posedge clk_1k)
begin
case(count) //选择扫描显示数据
3'd0:disp_dat = d[31:28]; //第一个数码管
3'd1:disp_dat = d[27:24]; //第二个数码管
3'd2:disp_dat = d[23:20]; //第三个数码管
3'd3:disp_dat = d[19:16]; //第四个数码管
3'd4:disp_dat = d[15:12]; //第五个数码管
3'd5:disp_dat = d[11:8]; //第六个数码管
3'd6:disp_dat = d[7:4]; //第七个数码管
3'd7:disp_dat = d[3:0]; //第八个数码管 展开
module scan_led(clk_1k,d,dig,seg); //模块名scan_led
input clk_1k; //输入时钟
input[31:0] d; //输入要显示的数据
output[7:0] dig; //数码管选择输出引脚
output[7:0] seg; //数码管段输出引脚
reg[7:0] seg_r; //定义数码管输出寄存器
reg[7:0] dig_r; //定义数码管选择输出寄存器
reg[3:0] disp_dat; //定义显示数据寄存器
reg[2:0]count; //定义计数寄存器
assign dig = dig_r; //输出数码管选择
assign seg = seg_r; //输出数码管译码结果
always @(posedge clk_1k) //定义上升沿触发进程
begin
count <= count + 1'd1;
end
always @(posedge clk_1k)
begin
case(count) //选择扫描显示数据
3'd0:disp_dat = d[31:28]; //第一个数码管
3'd1:disp_dat = d[27:24]; //第二个数码管
3'd2:disp_dat = d[23:20]; //第三个数码管
3'd3:disp_dat = d[19:16]; //第四个数码管
3'd4:disp_dat = d[15:12]; //第五个数码管
3'd5:disp_dat = d[11:8]; //第六个数码管
3'd6:disp_dat = d[7:4]; //第七个数码管
3'd7:disp_dat = d[3:0]; //第八个数码管 展开
展开全部
你这代码显示不全啊,我猜下面的代码应该是把disp_dat经过译码(变成数码管显示用的0~9)赋值给dig_r或dig。然后根据count =1~7译码对应seg = 8‘b00000001到8’b10000000;整段代码的意思应该很简单前面定义端口信号,接下来定义中间变量,然后把d的不同位值分时赋值给disp_dat,然后disp_dat译码输出。count的作用应该是处理决定d的哪4位进行译码,还决定了译码后输出到哪个数码管。和单片机不用是以为fpga是并行语言(虽然这里主要还是顺序执行,分时译码输出)。不知道你是哪里没看懂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-17
展开全部
我轻轻飘过,不带走一片云彩!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询