Verilog数字系统设计——带进位的8位加法器

这篇具有很好参考价值的文章主要介绍了Verilog数字系统设计——带进位的8位加法器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Verilog数字系统设计——带进位的8位加法器

题目

  1. 试分别使用门级原语和always 语句设计带进位的8位加法器,要求编制测试模块对实现的逻辑功能进行完整的测试;
  2. 使用门级原语设计时注意先在草稿上做出该加法器的门级设计;
  3. 如有余力可以进一步使用门级原语设计出带超前进位链的8位加法器(期末有加分);
  4. 实验提交Verilog设计文件(.v文件)和仿真波形截图,文件打包,压缩包以自己的学号+姓名命名。

代码

下面展示一些 内联代码片

module eight_add_2(sum,cout,cin,a,b);
	parameter size=7;
	input [size:0]a,b;
	output [size:0]sum;
	input cin;
	output cout;
	wire [0:6] Ctemp;
onebit_fulladd1
	add0(sum[0],Ctemp[0],a[0],b[0],cin),
	add1(sum[1],Ctemp[1],a[1],b[1],Ctemp[0]),
	add2(sum[2],Ctemp[2],a[2],b[2],Ctemp[1]),
	add3(sum[3],Ctemp[3],a[3],b[3],Ctemp[2]),
	add4(sum[4],Ctemp[4],a[4],b[4],Ctemp[3]),
	add5(sum[5],Ctemp[5],a[5],b[5],Ctemp[4]),
	add6(sum[6],Ctemp[6],a[6],b[6],Ctemp[5]),
	add7(sum[7],cout,a[7],b[7],Ctemp[6]);
endmodule



module onebit_fulladd1(Sum,Cout,A,B,CI);
	input A,B,CI;
	output Sum,Cout;
	wire Sum_temp,C_1,C_2,C_3;
	xor  XOR1(Sum_temp,A,B);
	xor  XOR2(Sum,Sum_temp,CI);
	and AND3(C_3,A,B);
	and AND2(C_2,B,CI);
	and AND1(C_1,A,CI);
	or OR1(Cout,C_1,C_2,C_3);
Endmodule

用verilog设计一个8位加法器,fpga开发
下面展示一些 内联代码片

Always:
module onebit_fulladd(sum,cout,a,b,cin);
        input  a,b;
	output reg sum;
	input cin;
	output reg cout;
	always @(a or b or cin)
	begin
		sum = a ^ b ^ cin;
         	cout = (a & b) | (b & cin) | (a & cin);
	end
endmodule
module eight_add_3(sum,cout,cin,a,b);
	parameter size=7;
	input [size:0]a,b;
	output [size:0]sum;
	input cin;
	output cout;
	wire [0:6] Ctemp;
onebit_fulladd
	add0(sum[0],Ctemp[0],a[0],b[0],cin),
	add1(sum[1],Ctemp[1],a[1],b[1],Ctemp[0]),
	add2(sum[2],Ctemp[2],a[2],b[2],Ctemp[1]),
	add3(sum[3],Ctemp[3],a[3],b[3],Ctemp[2]),
	add4(sum[4],Ctemp[4],a[4],b[4],Ctemp[3]),
	add5(sum[5],Ctemp[5],a[5],b[5],Ctemp[4]),
	add6(sum[6],Ctemp[6],a[6],b[6],Ctemp[5]),
	add7(sum[7],cout,a[7],b[7],Ctemp[6]);
Endmodule

用verilog设计一个8位加法器,fpga开发
下面展示一些 内联代码片

超前进位:
module eight_ahead_adder(sum,cout,cin,A,B);
	parameter size=7;
	input [size:0]A,B;
	input cin;
	output [size:0]sum;
	output cout;
	and and0(G0,A[0],B[0]);
	and and1(G1,A[1],B[1]);
	and and2(G2,A[2],B[2]);
	and and3(G3,A[3],B[3]);
	and and4(G4,A[4],B[4]);
	and and5(G5,A[5],B[5]);
	and and6(G6,A[6],B[6]);
	and and7(G7,A[7],B[7]);

 	xor xor0(P0,A[0],B[0]);
    xor xor1(P1,A[1],B[1]);
	xor xor2(P2,A[2],B[2]);
	xor xor3(P3,A[3],B[3]);
	xor xor4(P4,A[4],B[4]);
 	xor xor5(P5,A[5],B[5]);
	xor xor6(P6,A[6],B[6]);
 	xor xor7(P7,A[7],B[7]);

	and and_p0c0(p0c0,cin,P0);
	or or_0(c1,G0,p0c0);

	and and_p1c1(p1c1,c1,P1);
	or or_1(c2,G1,p1c1);

	and and_p2c2(p2c2,c2,P2);
	or or_2(c3,G2,p2c2);

	and and_p3c3(p3c3,c3,P3);
	or or_3(c4,G3,p3c3);

	and and_p4c4(p4c4,c4,P4);
	or or_4(c5,G4,p4c4);

	and and_p5c5(p5c5,c5,P5);
	or or_5(c6,G5,p5c5);

	and and_p6c6(p6c6,c6,P6);
	or or_6(c7,G6,p6c6);

        and and_p7c7(p7c7,c7,P7);
	or or_7(cout,G7,p7c7);
	
	xor xors0(sum[0],P0,cin);
	xor xors1(sum[1],P1,c1);
	xor xors2(sum[2],P2,c2);
	xor xors3(sum[3],P3,c3);
	xor xors4(sum[4],P4,c4);
	xor xors5(sum[5],P5,c5);
	xor xors6(sum[6],P6,c6);
	xor xors7(sum[7],P7,c7); 
endmodule

用verilog设计一个8位加法器,fpga开发
下面展示一些 内联代码片文章来源地址https://www.toymoban.com/news/detail-617446.html

测试文件:
module eight_add_test;
  reg  [7:0] a_t;
  reg  [7:0] b_t;
  reg  ci_t;
  wire [7:0] co_t;
  wire [7:0] sum_t;
  eight_add_2 		eight_add_2(.sum(sum_t1),.cout(co_t1),.cin(ci_t),.a(a_t),.b(b_t));
  eight_add_3		eight_add_3(.sum(sum_t2),.cout(co_t2),.cin(ci_t),.a(a_t),.b(b_t));
  eight_ahead_adder     eight_ahead_adder(.sum(sum_t3),.cout(co_t3),.cin(ci_t),.A(a_t),.B(b_t));

  initial 
    begin
 
         a_t=8'b00000000;
         b_t=8'b00000000;
         ci_t=1'b0;         
    
         #20 
         a_t=8'b00001001;
         b_t=8'b00000001;
         ci_t=1'b0;

         #20 
         a_t=8'b11000000;
         b_t=8'b00001111;
         ci_t=1'b0;

         #20
         a_t=8'b11000111;
         b_t=8'b00101111;
         ci_t=1'b0;
      
    end  
endmodule

到了这里,关于Verilog数字系统设计——带进位的8位加法器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用Verilog设计一个8位二进制加法计数器,带异步复位端口,进行综合和仿真。

    点此处编译 这里还需将rst置1才有效 可以在clk=0;后加rst=1; 或者在clk=0;后加rst=0; 并且在#DELY clk=~clk;后加#(DELY*20) rst=~rst; 仿真即可

    2024年02月04日
    浏览(34)
  • FPGA面试题【Verilog实现一个2位带进位全加器,画出门级电路】

    目录 题目 核心思路 答案 FPGA全貌 Verilog实现一个2位带进位全加器,画出门级电路 思路见代码注释   第1节 什么是 FPGA FPGA 的全称为 Field-Programmable Gate Array,即现场可编程门阵列。 FPGA 是在 PAL、 GAL、 CPLD 等可编程器件的基础上进一步发展的产物, 是作为专用集成电路( ASI

    2024年02月08日
    浏览(37)
  • 数字IC经典电路(1)——经典加法器的实现(加法器简介及Verilog实现)

    加法器是数字系统最基础的计算单元,用来产生两个数的和,加法器是以二进制作运算。负数可用二的补数来表示,减法器也是加法器,乘法器可以由加法器和移位器实现。加法器和乘法器由于会频繁使用,因此加法器的速度也影响着整个系统的计算速度。对加法器的设计也

    2024年02月14日
    浏览(38)
  • 【Verilog】期末复习——设计带进位输入和输出的8位全加器,包括测试模块

    数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分为哪两类?它们各自的特点是什么? 期末复习——VerilogHDL描述数字逻辑电

    2024年01月23日
    浏览(27)
  • 【Verilog数字系统设计(夏宇闻)4-----Verilog语法的基本概念2】

    下面先介绍几个简单的Verilog HDL程序,从中了解Verilog模块的特性。 例1 如图所示的二选一多路选择器的Verilog HDL程序如下: 从例1中很容易理解模块muxtwo的作用。它是一个如图所示的二选一多路器,输出out与输入a一致,还是与输入b一致,由sl的电平决定。当控制信号sl为非(低

    2023年04月08日
    浏览(30)
  • Verilog数字系统设计——4 选1 多路选择器

    试分别使用assign、门级原语和always 语句设计4 选1 多路选择器,并写出测试代码进行测试。要求编制测试模块对实现的逻辑功能进行完整的测试; 实验提交Verilog设计文件(.v文件)和仿真波形截图,文件打包,压缩包以自己的学号+姓名命名; 仿真截图 下面展示一些 内联代码

    2024年02月08日
    浏览(34)
  • verilog数字系统设计教程(夏闻宇)|第一章-第六章

    早听闻此书大名,虽然有些verilog的编程经验,今天来系统的学习下verilog,完善知识体系,提升编程能力。本文章只当自己做笔记使用,记录自己没掌握的重难点,和大家一起学习。 目录 第一章  第二章 verilog语法 第三章 模块的结构、数据类型、变量和基本运算符号 1.常量

    2024年03月18日
    浏览(34)
  • Verilog数字系统设计(夏宇闻)—课后思考题记录(上)

    1、什么是信号处理电路?它通常由哪两大部分组成? 数字信号处理电路是进行一些复杂的数字运算和数据处理,并且又有实时响应需求的电路。 它们通常是由高速专用数字逻辑系统或专用数字信号处理器所构成,通常包括高速数据通道接口和高速算法电路。 2、为什么要设

    2023年04月13日
    浏览(69)
  • Verilog设计4位CLA加法器电路,并仿真测试

    使用Quartus+modelsim完成本次设计 对于超前进位加法器 (CLA)加法器,它不同于普通加法器。如果对于两个1024位的数字进行相加,那么普通的串行加法器因为只有算出 C x C_{x} C x ​ 才能继续计算 C x + 1 C_{x+1} C x + 1 ​ ,这会导致整体的效率非常低。如果使用超前进位加法器,那

    2024年02月04日
    浏览(39)
  • Verilog数字系统设计——10进制计数器,具有异步复位功能

    编程实现10进制计数器,具有异步复位功能,十位和个位用8421BCD码表示,各端口定义如下图所示: 仔细考虑端口定义中每个端口的含义; 要求完成程序编辑、编译、时序仿真; 实验提交Verilog设计文件(.v文件)、仿真波形截图以及对于第3个步骤所提出问题的回答,文件打包

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包