简单的ALU运算器 HDL实现

一个运算器 包含这许许多多的运算方式,但输出只有一个 result 。

接下来我们就根据图来分析代码

在这里插入图片描述

*module* simple_alu(

  *input* [11:0] alu_control,  *//控制信号*

  *input* [31:0] alu_src1,   *//源操作数*

  *input* [31:0] alu_src2,   *//源操作数*

  *output*[31:0] alu_result   

);

  *//定义操作变量*

  *wire* op_add;  *//加法操作*

  *wire* op_sub;  *//减法*

  *wire* op_slt;  *//有符号比较,小于置位 小于置位可以理解为小于取1*

  *wire* op_sltu ; *//无符号比较 ,小于置位* 

  *wire* op_and;

  *wire* op_nor;  *//按位或非* 

  *wire* op_or;   

  *wire* op_xor;  *//按位异或* 

  *wire* op_sll;  *//逻辑左移* 

  *wire* op_srl;  *//逻辑右移* 

  *wire* op_sra;  *//算术右移* 

  *wire* op_lui;  *//高位加载* 



  *//将控制信号赋值给操作变量*

  *assign* op_add *=* alu_control[0];

  *assign* op_sub *=* alu_control[1];

  *assign* op_slt *=* alu_control[2];

  *assign* op_sltu *=* alu_control[3];

  *assign* op_and *=* alu_control[4];

  
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值