先讲讲八位数码管怎么亮的吧,其实就是7条杠加个小数点总共8位,正反两种逻辑对应共阴或者共阳极1或者0就亮,组成从0到F的显示。段码就是a-dp01二进制排列然后换算成十六进制。本次实验想达成的目标是每隔0.5s集体跳变一次,从6个0一直跳变到6个F然后不停循环。
下面是系统框图,主要分为两个小模块
第一个seg_static主要生成sel6位选通信号(1亮0灭)和seg那每个数字的8码。
第二个小模块,输入就是sel,seg这些,输出ds是排列好的14(8+6)位数据,shcp是移位在ds中间部分开始采样,stcp是14位采集完就高电平一次,oe是使能信号,0就并行输出,1就不输出。
下面是顶层模块seg_595_static,直接例化两个小模块
module seg_595_static
(
input wire sys_clk ,
input wire sys_rst_n ,
output wire ds ,
output wire shcp ,
output wire stcp ,
output wire oe
);
wire [5:0] s