2021.8.16
1.HDLbits刷题。
(104)设计一个基于BCD编码器的十进制计数器。
//在设计BCD编码器的时候,要注意enable、reset、” q == 4’d9 ”的优先级,在多重if-else中有所体现。
(105)设计一个二十四小时为周期的时钟。
我的初步构想是实例化两个60进制计数器和一个12进制计数器。
由于时、分、秒的输出信号按题目要求是由两位十进制所转化而成的两个四位二进制信号组成,所以我构思的电路如下:
60进制计数器的设计思路是先设计一个10进制计数器:
当十进制计数器记满进位的时候翻转一个进位信号(carry)。然后设计一个6进制计数器的模块,在当进位信号为高电平时,6进制计数器记一次数,然后翻转进位信号回低电平:
12进制计数器的设计思路是直接通过4位BCD码计数器进行进制转换,然后再通过逻辑函数直接变成两位十进制所转化而成的两个四位二进制信号。(逻辑函数的部分还没写完)
至于总模块的设计,我还没开始,不过大概思路是把这几个模块通过几个进位信号连接在一起,然后当表示小时的12进制计数器记满进位的时候,信号“pm”翻转一次。