通用寄存器设计中有三个寄存器設计用于寄存一个地址和两个操作数。在执行指令阶段中通过多个控制信号选择对应的寄存器设计中数据进行输出或者写入,输出的方向有函数发生器(ALU)和数据选择器这里R1寄存器设计和R2寄存器设计用于储存操作数,C寄存器设计用于储存地址
那么通用寄存器设计需不需偠时钟控制呢?对于写入操作显然是需要的虽然WE是作为写入信号的使能,但是当WE有效时在同一个执行周期内我们显然只需要写入一次(有必要的话),总线的数据是有可能不断变化的所以这里不设置时钟的话,要精准地控制其写入个人觉得比较困难但是读出数据就鈈一样了,因为通用寄存器设计里面的内容除了写入会使其值改变之外其值是不会发生变化的,所以输出既可以由时钟控制也可以不用時钟控制本人没有用时钟控制,感觉用时钟控制的话可能要多等待一个时钟上升沿
CLK:时钟信号,当时钟上升沿到来时配合RWBA1与RWBA0对指定的寄存器设计进行写入;
RAA0RAA1:控制A输出端口的输出数据来自哪一个寄存器设计;
RWBA1,RWBA0:控制B端口的输出数据来自哪一个寄存器设计以及控制給指定的警察写入数据;
WE:写入使能,高电平有效有效时允许BUS总线上的数据写入指定的寄存器设计;
Fin:BUS总线上的数据输入;
FA:A端口的数據输出;
FB:B端口的数据输出。
由仿真结果可知当时钟上升沿到来时通用寄存器设计中由RWBA1和RWBA0控制的寄存器设计会写入Fin的数据,使得下一次該寄存器设计的数据被输出时输出的是写入的数据,符合设计的要求结果正确(有点RAM的味道)。