函数发生器ALU
(1) 部件功能:
功能:
1从通用寄存器组中读取内容
2在 S3~ S0 和 M 的控制下,实现运算功能
3 ADD 和 SUB 加减法指令影响状态位 Cf和 Zf。
(2) 接口设计:

模型机CPU设计——ALU函数发生器(6)
输入:
S[3…0]为操作类型判断输入
M是总的使能信号
A[7…0]8位数据接入
B[7…0]8位数据接入
输出:
T[7…0]操作的结果
Cf进位标志
Zf结果为0标志

RTL视图

模型机CPU设计——ALU函数发生器(6)
(3) 功能实现:

判断S输入,如果
S=”1001”,执行加法,将R1+R2赋值给R1
S=”0110”,执行减法,将R1-R2赋值给R1
S=”1011”,执行或运算,将(R1)∨(R2)赋值给R1
S=”0101”,执行取反运算,/R1赋值给R1
判断加减法是否有最高位的进位或借位,如果有那就将cf=1,否则为cf=0
判断加减操作的结果是否为0,如果是那就将zf=1,否则zf=0
VHDL设计:
模型机CPU设计——ALU函数发生器(6)

模型机CPU设计——ALU函数发生器(6)
(4)功能仿真验证:
模型机CPU设计——ALU函数发生器(6)
仿真结果:
时钟为11ns:A=11111111,B=11111111,此时S=0110执行减法,结果为0,输出T=00000000,进位zf=1;
时钟15ns:A=11111111,B=11111111,此时S=1001,执行加法,输出为T=1111110,此时cf=1;
时钟为16ns:A=1111111,B=11111111,此时S=1011,执行或运算,结果T=11111111,
Cf=0,zf=0;
时钟25ns:A=11111111,B=11111111,,此时S=0101,执行非运算,T=00000000,cf=0,zf=0;
结论:仿真结果满足功能要求,设计正确

相关文章:

  • 2021-07-30
  • 2021-07-02
  • 2022-12-23
  • 2021-09-27
  • 2021-11-06
  • 2021-12-31
  • 2021-12-05
  • 2022-12-23
猜你喜欢
  • 2021-04-22
  • 2021-11-29
  • 2021-09-29
  • 2021-11-25
  • 2021-08-26
  • 2021-05-22
  • 2021-06-15
相关资源
相似解决方案