设计一个7段数码管的控制逻辑电路,用于控制数码管显示,后面他将作为一个子模块添加到我们的顶层设计中。
1, 7段数码管译码电路
Hex | Seg(binary) |
0x0 | 11000000 |
0x1 | 11111001 |
0x2 | 10100100 |
0x3 | 10110000 |
0x4 | 10011001 |
0x5 | 10010010 |
0x6 | 10000010 |
0x7 | 11111000 |
0x8 | 10000000 |
0x9 | 10010000 |
0xA | 10001000 |
0xB | 10000011 |
0xC | 11000110 |
0xD | 10100001 |
0xE | 10000110 |
0xF | 10001110 |
共阳极数码管编码表
有的同学可能看到真值表就开始画卡诺图了,呵呵,其实可以偷一点懒,看看图中这种实现。
通过使用选择器实现的这种译码电路,完成了一个真值表到电路的转换,并且实现结构清晰,可读性很好。
1, 创建7段数码管的子电路
为设计好的数码管译码电路创建硬件描述语言文件,点击File——>Create/Updata——>Create HDL Design File for Current File。
为设计好的数码管译码电路创建一个封装,点击File——>Create/Updata——>Create Symbol File for Current File,这样我们在顶层设计中就可以调用这个子电路了。
2, 把子电路应用到顶层设计中
添加刚才创建的子电路,点击Assignment——>Settings,在Settings对话框中的Libraries中添加刚才子电路的目录,现在在Symbol中可以看到刚才创建的子电路模块了,我们再添加一个计数器,以及需要的输入输出引脚,完成我们的设计吧。
3, 总结
这个例子主要是联系子电路的创建以及如何将子电路应用到顶层设计中,在复杂设计中,分层设计的方法是必须要掌握的。
至此,QuartusII中的原理图设计的基本操作方法就足够我们使用了,Logisim中所能完成的操作,在QuartusII中都能够对应起来,所以建议后面的设计中,我们来参考课件中的使用Logisim设计简单CPU的方法,对应在QuartusII中实现一个真正的CPU。
由于Logisim是一个仿真软件,使用较QuartusII方便一些,可以先行做实验,然后再用QuartusII实现设计方案。