用逻辑门设计实现一个数码管显示译码器

img


设计一个带数码管显示的8421BCD码十进制计数器,用CPLD实验板下载验证其功能,要求:
1、用逻辑门设计实现一个数码管显示译码器(真值表如表1所示,注意:该表是直接适用于共阴极数码管的正逻辑的,但掌中宝实验板上的数码管是共阳极的,需要进行修改),译码器的输入信号由4个拨码开关SW3、SW2、SW1和SW0设置,译码器的输出驱动数码管,设计描述采用图形法,仿真和测试验证功能正确后打包成为显示译码器模块;
2、用JK触发器设计实现一个8421BCD码十进制加计数器,设计描述采用图形法,仿真验证其功能正确后打包成为计数器模块;
3、将计数器和显示译码器连接成为一个带数码管显示的8421BCD码十进制计数器,用CPLD实验板下载验证其功能。
使用quartus ii9.1版本,设计描述采用图形法,应该怎样完成

基于bing、GPT部分内容和本人思考总结:实现数码管显示译码器
首先,需要将共阳极数码管的真值表转换为共阴极数码管的真值表,并用逻辑门实现。共阴极数码管的真值表如下:
输入 a b c d e f g
0000 1 1 1 1 1 1 0
0001 0 1 1 0 0 0 0
0010 1 1 0 1 1 0 1
0011 1 1 1 1 0 0 1
0100 0 1 1 0 0 1 1
0101 1 0 1 1 0 1 1
0110 1 0 1 1 1 1 1
0111 1 1 1 0 0 0 0
1000 1 1 1 1 1 1 1
1001 1 1 1 1 0 1 1
可以用逻辑门实现如下:
数码管显示译码器
其中,输入信号由4个拨码开关SW3、SW2、SW1和SW0设置,输出信号a、b、c、d、e、f、g分别驱动数码管的a、b、c、d、e、f、g段。

实现8421BCD码十进制加计数器
8421BCD码采用4位二进制编码表示十进制数,每个十进制数对应4位二进制数,如下表所示:
十进制数 BCD码
0 0000

| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
因此,可以用JK触发器实现8421BCD码的十进制加计数器。设计思路如下:

设计一个4位二进制加法器,将两个4位二进制数相加,得到一个5位二进制数。

将5位二进制数转换为8421BCD码,即将每个4位二进制数转换为对应的十进制数。

设计一个4位JK触发器计数器,每次计数器加1,输出的4位二进制数即为当前的8421BCD码。
设计描述如下:

4位二进制加法器:
4位二进制加法器

5位二进制数转8421BCD码:
5位二进制数转8421BCD码

4位JK触发器计数器:
4位JK触发器计数器
其中,输入信号CLK为时钟信号,输出信号Q0、Q1、Q2、Q3分别对应当前的8421BCD码。

实现带数码管显示的8421BCD码十进制计数器
将数码管显示译码器和8421BCD码十进制加计数器连接起来,即可实现带数码管显示的8421BCD码十进制计数器。连接方式如下图所示:
带数码管显示的8421BCD码十进制计数器
其中,输入信号CLK为时钟信号,输入信号SW3、SW2、SW1、SW0为计数器的初始值,输出信号a、b、c、d、e、f、g分别驱动数码管的a、b、c、d、e、f、g段。
设计描述如下:
带数码管显示的8421BCD码十进制计数器
将三个模块打包成一个整体,并下载到CPLD实验板上进行验证即可。