模型机CPU设计——通用寄存器组(12)

寄存器组:
(1) 部件功能:
寄存器具有快速读写的功能特点,而通用寄存器组则是实现的对三块寄存器的读写操作,根据控制信号对A,B,C寄存器实现读写,并将数据传送给ALU函数发生器
在这里插入图片描述
(2) 接口设计:

输入:
WE使能信号,0有效为写入,1为提供通道
Clk:时钟信号
RA[1…0]控制信号,控制数据从A口读出
WA[1…0]控制信号,控制数据从B口读出
I[7…0]数据输入
输出:
A0[7…0]从A口的数据输出
B0[7…0]从B口的数据输出
aa[7…0],bb[7…0],cc[7…0]向外界展示数据输出
RTL视图
在这里插入图片描述
(3) 功能实现:
无论WE为何值,都由RA,WA来判断输出
如果RA=“00”A=a,如果RA=“01”,A=b,否则A=c
如果WA=“00”B=a,如果WA=“01”,B=b,否则B=c
当WE=0,执行写入
当时钟信号为下降沿:
如果WA=“00”a<=I, 如果WA=“01”,b<=I,否则c<=I
VHDL设计:
在这里插入图片描述
(4)功能仿真验证:
在这里插入图片描述
仿真结果:
时钟为18.2ns: 处于时钟下降沿,WE=0,WA=01,对寄存器c进行写入,输出c=00000100,B0=00000100,A0=00000000
时钟为19.2ns: 处于时钟下降沿,WE=0,WA=11,对寄存器c进行写入,输出c=00000110,B0=00000110,A0=00000110
时钟为20.2ns: 处于时钟下降沿,WE=1,WA=00,RA=00,读取a寄存器,A0=00000000,B=00000000
时钟为20.7ns: WE=1,WA=00,RA=01,A读取b寄存器,读取a寄存器A0=00000010,B=00000000
结论:仿真结果符合功能要求,设计成功

发布了100 篇原创文章 · 获赞 56 · 访问量 4873

猜你喜欢

转载自blog.csdn.net/weixin_44307065/article/details/103651757
今日推荐