Verilog学习日志(16位运算器,可满足加减算术运算和与或非异或逻辑运算)

本文记录了使用Verilog设计一个16位运算器的过程,包括加法、减法及逻辑运算。通过行波进位加法器实现加法和减法,其中减法通过加负数的补码来完成。全加器和加/减法器的Verilog代码分别给出,并展示了仿真结果。作者强调了在设计前先构思逻辑电路图对编写Verilog代码的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次用Verilog进行一个16位简单运算器进行建模并仿真
题目如下:
需要的功能有加、减、按位与、按位或、对输入一按位非、按位异或。16位加法器需自己完成,不要使用“+“。
根据题目,画出如图架构
在这里插入图片描述
然后根据架构,来进行各个功能的设计,逻辑运算非常简单,关键在于加减法的实现,因为减去一个正数可以表示为加上一个负数的补码,所以结果都采用补码表示,运算过程通过补码进行运算。
我这里加法器的设计为行波进位加法器(更细致的讲解可以参照https://blog.csdn.net/zhouxuanyuye/article/details/103834320?spm=1001.2014.3001.5501 纸上谈芯这位大佬的博客,讲的非常详细)
Verilog是硬件描述性语言,如果在编写代码之前,能把逻辑电脑在脑海中构思或者在纸上画出来,代码编写会事半功倍。
构建加法器的过程,我们就采用行波进位加法器的做法。
全加器Verilog代码如下:

module fadder(
    input a,     //operand0输入的补码
    input b,	//operand1输入,加法为补码,减法为反码
    input ci,   //若位减法,则为1,加法则为0
    output sum,  //单位和输出
    output co   //进位输出
    );
    assign sum = a ^ b ^ ci;
    assign co = a&b | a&ci | b&
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值