verilog语言编写8位全加器

合集下载

基于封装设计思想实现8位全加器

基于封装设计思想实现8位全加器

<实验报告一>学生姓名:班级学号:指导老师:<基于封装设计思想实现8位全加器>一、实验名称:基于封装设计思想实现8位全加器二、实验学时:3学时三、实验目的:1) 在掌握QuartusII软件环境和全加器原理的基础上,重点学习Verilog封装的设计方法。

2)进一步巩固文本和图形法结合的设计方法。

四、实验内容分别用原理图输入法和文本输入法来设计八位全加器。

1)原理图输入法:给出一位全加器的原理图,在quartusⅡ中封装一位全加器,再用它顺序链接形成八位全加器。

2)文本输入法:用Verilog语言编写源程序来实现八位全加器。

五、实验仪器1.PC机2. 数字系统设计实验开发板六、实验步骤1)熟悉quartusII的使用a)打开开发环境,如图表1图表 12)原理图输入法a) 我们在这里给出一位加法器的原理图图表2。

图表 2b) 给出一位加法器的真值表图表3。

图表 33) 文本输入方法i.创建Verilog程序文件,如图表。

图表 5ii.把同学们自己写的源程序输入进去,然后编译,如果不明白,可以参考以前的实验。

iii.代码可以参考《V erilog数字系统设计教程》,P199,进行设计。

4)通过文本输入法或原理图输入法实现一位加法运算器,并将其封装,然后通过8个一位加法器的链接实现8位加法器。

封装方法:一位加法器程序编写并编译通过后,点击File->Creat/Update->Creat Symbol Files for Current File可以产生与module同名的元器件,然后可以通过对器件的连接产生一个8位加法器。

请同学们根据一位加法器设计出8位加法器的电路图。

然后进行仿真。

我们在这里提供一个4位加法器的参考设计图6.图表 4七、实验结果1.文本输入法1.1一位全加器:程序代码:module one_bit(s,co,x,y,ci);input x,y,ci;output s,co;wire a,b,c;xor (s,ci,x,y);andand1(a,x,y),and2(b,x,ci),and3(c,y,ci);or (co,a,b,c);endmodule波形图:1.2 八位全加器程序代码:module eight_bit(s,co,x,y); input [7:0] x,y;output [7:0] s;output co;assign {co,s}=x+y;endmodule波形图:2.原理图输入法:2.1 一位全加器原理图:波形图:2.2 八位全加器:原理图:波形图:八、问题讨论:为什么我们有时候用always,而有时候又用assign,同学们能否正确区分它们的区别?assign语句即持续赋值语句,主要用于对wire型变量的赋值,因为wire即线型的值不能存住,需要一直给值,所以需要用持续赋值。

verilog语言编写8位全加器

verilog语言编写8位全加器

8位全加器一、实验目的用verilog语言编写一个8位全加器,并在modelsim软件上进行仿真。

二、代码1、源代码:module add8(sum,cout,in1,in2,cin);input [7:0] in1,in2;input cin;output [7:0] sum;output cout;assign {cout,sum}=in1+in2+cin;endmodule2、激励:`timescale 1ns/100psmodule add8_tb;reg[7:0] A,B;reg CIN;wire [7:0] SUM;wire COUT;add8 ul(1.sum(SUM),.cout(COUT),.in1(A),.in2(B),.cin(CIN));initialbeginA=8'd0;B=8'd0;CIN=1'b0;#10 A=8'd20;B=8'd129;CIN=1'b1; #10 A=8'd27;B=8'd19;CIN=1'b0; #10 A=8'd157;B=8'd29;CIN=1'b0; #10 A=8'd37;B=8'd68;CIN=1'b0; #10 A=8'd11;B=8'd69;CIN=1'b0; #10 A=8'd54;B=8'd67;CIN=1'b1; #10 A=8'd211;B=8'd0;CIN=1'b0; #10 A=8'd87;B=8'd43;CIN=1'b1; #10 A=8'd23;B=8'd171;CIN=1'b0; #10 A=8'd12;B=8'd12;CIN=1'b1; #10 A=8'd112;B=8'd115;CIN=1'b0; endendmodule23三、实验过程1、上机过程2、仿真波形3、波形说明波形图中,从上至下依次为:输入加数A、输入加数B、输入进位CIN、输出进位COUT、输出和SUM。

基于verilog的8位加法器设计验证

基于verilog的8位加法器设计验证
#10 a=8'd100;b=8'd215;cin=1'b0;
#10$finish;
end
initial $monitor($time,,"%d + %d + %b = {%b, %d}",a,b,cin,c,sum);
endll
# 0 0 + 0 + 0 = {0, 0}
reg [7:0] a;
reg [7:0] b;
reg cin;
// wires
wire c;
wire [7:0] sum;
// assign statements (if any)
adder_8 i1 (
// port map - connection between master ports and signals/registers
实验名称
专业、年级
学号
姓名
8位加法器设计验证
以下内容由实验指导教师填写(实验内容请以批注的形式批阅)
实验项目完成情况
实验项目成绩
指导教师
时间
年月日
实验二:8位加法器设计验证
一:8位全加器的源程序:
module adder_8(sum,c,a,b,cin);
output[7:0] sum;
output c;
# Time: 50 ns Iteration: 0 Instance: /adder_8_vlg_tst
四:测试波形如下图所示:
(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,供参考,感谢您的配合和支持)
.a(a),
.b(b),
.c(c),
.cin(cin),

Verilog实现的8位超前进位加法器

Verilog实现的8位超前进位加法器

Verilog实现的8位超前进位加法器。

经过modelsim验证正确可用,在DC下综合成功//文件名:add_8.v//模块名:add_8//`timescale 1ns/1nsmodule add_8 ( input [7:0]a, input [7:0]b, input cin, output [7:0] s, output co );wire [7:0]c_tmp;wire [7:0]g;wire [7:0]p;assign co = c_tmp[7];assign g[0] = a[0] & b[0],g[1] = a[1] & b[1],g[2] = a[2] & b[2],g[3] = a[3] & b[3],g[4] = a[4] & b[4],g[5] = a[5] & b[5],g[6] = a[6] & b[6],g[7] = a[7] & b[7];assign p[0] = a[0] | b[0],p[1] = a[1] | b[1],p[2] = a[2] | b[2],p[3] = a[3] | b[3],p[4] = a[4] | b[4],p[5] = a[5] | b[5],p[6] = a[6] | b[6],p[7] = a[7] | b[7];assign c_tmp[0] = g[0] | ( p[0] & cin ),c_tmp[1] = g[1] | ( p[1] & g[0]) | ( p[1] & p[0] & cin),c_tmp[2] = g[2] | ( p[2] & g[1]) | ( p[2] & p[1] & g[0]) | ( p[2] & p[1] & p[0] & cin),c_tmp[3] = g[3] | ( p[3] & g[2]) | ( p[3] & p[2] & g[1]) | ( p[3] & p[2] & p[1] & g[0])| ( p[3] & p[2] & p[1] & p[0] & cin),c_tmp[4] = g[4] | ( p[4] & g[3]) | ( p[4] & p[3] & g[2]) | ( p[4] & p[3] & p[2] & g[1])| ( p[4] & p[3] & p[2] & p[1] & g[0]) | ( p[4] & p[3] & p[2] & p[1] & p[0] &cin),c_tmp[5] = g[5] | ( p[5] & g[4]) | ( p[5] & p[4] & g[3]) | ( p[5] & p[4] & p[3] & g[2])| ( p[5] & p[4] & p[3] & p[2] & g[1]) | ( p[5] & p[4] & p[3] & p[2] & p[1] & g[0])| ( p[5] & p[4] & p[3] & p[2] & p[1] & p[0] & cin),c_tmp[6] = g[6] | ( p[6] & g[5]) | ( p[6] & p[5] & g[4]) | ( p[6] & p[5] & p[4] & g[3])| ( p[6] & p[5] & p[4] & p[3] & g[2]) | ( p[6] & p[5] & p[4] & p[3] & p[2] & g[1])| ( p[6] & p[5] & p[4] & p[3] & p[2] & p[1] & g[0])| ( p[6] & p[5] & p[4] & p[3] & p[2] & p[1] & p[0] & cin),c_tmp[7] = g[7] | ( p[7] & g[6]) | ( p[7] & p[6] & g[5]) | ( p[7] & p[6] & p[5] & g[4])| ( p[7] & p[6] & p[5] & p[4] & g[3]) | ( p[7] & p[6] & p[5] & p[4] & p[3] & g[2])| ( p[7] & p[6] & p[5] & p[4] & p[3] & p[2] & g[1])| ( p[7] & p[6] & p[5] & p[4] & p[3] & p[2] & p[1] & g[0])| ( p[7] & p[6]& p[5] & p[4] & p[3] & p[2] & p[1] & p[0] & cin);assign s[7:0] = a[7:0] ^ b[7:0] ^{c_tmp[6:0],cin};endmodule。

8位超前进位加法器

8位超前进位加法器

【verilog】8位超前进位加法器2010-12-22 21:16这是我的32位超前进位加法器的一部分。

其中的一个模块,一个8位的超前进位加法器。

我的32位的超前进位加法器是将4个模块再进行超前进位加法实现的。

也就是second level carry-lookahead adder:以下的代码就是上面的block0到block3。

代码://Written by alexyangfox#module eight_bit_unit(A,B,c0,G_level,PG_level,carry,sum);input [7:0] A; //加数Ainput [7:0] B; //加数Binput c0; //输入的进位c0 (Carry 0)output [7:0] sum; //输出和output G_level,PG_level,carry; //产生的极间PG(propagate)和G(generate)//因为我这里想要的是做2级超前进位加法器//一个32位的超前进位加法器由4个八位的超前进位加法器组成//然后四个加法器又被当作独立的模块,四个加法器再超前进位一次形成第二级wirepg0,pg1,pg2,pg3,pg4,pg5,pg6,pg7,g0,g1,g2,g3,g4,g5,g6,g7,c0,c1,c2,c3,c4,c5,c6,c7,c8;wire G_level,PG_level,carry;//全部 PG的计算(propagate)//有的人将PG定义为: PG=A + B//而我在此处使用通常定义: PG = A xor B//由于有这样的关系 A + B = (A xor B) + AB//但是AB已经在Gernerate中:C_n=Generator_(n-1) + Propagate_(n-1)*C_(n-1)//PG 和 G只是用来计算进位数的,所以使用哪种PG的定义并没有影响//在实际电路中,若使用PG=A+B的方案,还可以减少晶体管的使用//well,sth interesting :XOR is not "exclusive or" (nor),it's //"exclusive disjunction or"assign pg0=A[0]^B[0];assign pg1=A[1]^B[1];assign pg2=A[2]^B[2];assign pg3=A[3]^B[3];assign pg4=A[4]^B[4];assign pg5=A[5]^B[5];assign pg6=A[6]^B[6];assign pg7=A[7]^B[7];//计算所有的 Generate (G)assign g0=A[0] & B[0];assign g1=A[1] & B[1];assign g2=A[2] & B[2];assign g3=A[3] & B[3];assign g4=A[4] & B[4];assign g5=A[5] & B[5];assign g6=A[6] & B[6];assign g7=A[7] & B[7];//进位产生器//公式:C_n=Generator_(n-1) + Propagate_(n-1)*C_(n-1)//c1=g0 + pg0*c0assign c1=g0|( pg0 & c0);//c2=g1+ pg1*g0 + pg1*pg0*c0assign c2=g1|( pg1 & g0)|( pg1 & pg0 & c0);//c3=g2+ pg2*g1+ pg2*pg1*g0 + pg2*pg1*pg0*c0assign c3=g2|( pg2 & g1)|( pg2 & pg1 & g0)|( pg2 & pg1 & pg0 & c0);//c4= g3 + pg3*g2+ pg3*pg2*g1+ pg3*pg2*pg1*g0// + pg3*pg2*pg1*pg0*c0assign c4=g3|(pg3 & g2)|(pg3 & pg2 & g1)|( pg3 & pg2 & pg1 & g0)|(pg3 & pg2 & pg1 & pg0 & c0);//c5= g4 + pg4*g3 + pg4*pg3*g2+ pg4*pg3*pg2*g1// + pg4*pg3*pg2*pg1*g0 + pg4*pg3*pg2*pg1*pg0*c0assign c5=g4|( pg4 & g3)|( pg4 & pg3 & g2)|( pg4 & pg3 & pg2 & g1)|( pg4& pg3 & pg2 & pg1 & g0)|( pg4 & pg3 & pg2 & pg1 & pg0 & c0);//c6=g5 + pg5*g4 + pg5*pg4*g3 + pg5*pg4*pg3*g2// + pg5*pg4*pg3*pg2*g1 + pg5*pg4*pg3*pg2*pg1*g0// + pg5*pg4*pg3*pg2*pg1*pg0*c0assign c6=g5|( pg5 & g4)|( pg5 & pg4 & g3)|( pg5 & pg4 & pg3 & g2)|( pg5 & pg4 & pg3 & pg2 & g1)|( pg5 & pg4 & pg3 & pg2 & pg1 & g0)|( pg5 & pg4 & pg3 & pg2 & pg1 & pg0 & c0);//c7=g6 + pg6*g5 + pg6*pg5*g4 + pg6*pg5*pg4*g3 + pg6*pg5*pg4*pg3*g2// + pg6*pg5*pg4*pg3*pg2*g1 + pg6*pg5*pg4*pg3*pg2*pg1*g0// + pg6*pg5*pg4*pg3*pg2*pg1*pg0*c0assign c7=g6|( pg6 & g5)|( pg6 & pg5 & g4)|( pg6 & pg5 & pg4 & g3)|( pg6 & pg5 & pg4 & pg3 & g2)|( pg6 & pg5 & pg4 & pg3 & pg2 & g1)|( pg6 & pg5 & pg4 & pg3 & pg2 & pg1 & g0)|( pg6 & pg5 & pg4 & pg3 & pg2 & pg1 & pg0 & c0);//c8=g7 + pg7*g6 + pg7*pg6*g5 + pg7*pg6*pg5*g4 + pg7*pg6*pg5*pg4*g3 +pg7*pg6*pg5*pg4*pg3*g2// + pg7*pg6*pg5*pg4*pg3*pg2*g1 + pg7*pg6*pg5*pg4*pg3*pg2*pg1*g0//+ pg7*pg6*pg5*pg4*pg3*pg2*pg1*pg0*c0assign c8=g7|(pg7 & g6)|(pg7 & pg6 & g5)|(pg7 & pg6 & pg5 & g4)|(pg7 & pg6 & pg5 & pg4 & g3)|(pg7 & pg6 & pg5 & pg4 & pg3 & g2)|(pg7 & pg6 & pg5 & pg4 & pg3 & pg2 & g1)|(pg7 & pg6 & pg5 & pg4 & pg3 & pg2 & pg1 & g0)|(pg7 & pg6 & pg5 & pg4 & pg3 & pg2 & pg1 & pg0 & c0);//这句写成:c8=G_level|(pg7 & pg6 & pg5 & pg4 & pg3 & pg2 & pg1 & pg0 & c0);会减少器件使用,但是会增加延迟?//极间超前进位信号G_level和PG_level的产生//Actually I am building a two_level carry look ahead adder.//回顾上面C8的计算公式,将它拆解成两部分://C8=G_level + C0*PG_level//于是,我们很容易得到这个://G_level=item0+item1+...+item7//PG_level=pg7*pg6*pg5*pg4*pg3*pg2*pg1*pg0assign PG_level=pg7 & pg6 & pg5 & pg4 & pg3 & pg2 & pg1 & pg0;assign G_level=g7|(pg7 & g6)|(pg7 & pg6 & g5)|(pg7 & pg6 & pg5 & g4)|(pg7 & pg6 & pg5 & pg4 & g3)|(pg7 & pg6 & pg5 & pg4 & pg3 & g2)|(pg7 & pg6 & pg5 & pg4 & pg3 & pg2 & g1)|(pg7 & pg6 & pg5 & pg4 & pg3 & pg2 & pg1 & g0);//the parts above explains the term "Carry look_ahead"//计算输出结果//两个异或门(Xor GAtes)assign sum[0]=A[0] ^ B[0] ^ c0;assign sum[1]=A[1] ^ B[1] ^ c1;assign sum[2]=A[2] ^ B[2] ^ c2;assign sum[3]=A[3] ^ B[3] ^ c3;assign sum[4]=A[4] ^ B[4] ^ c4;assign sum[5]=A[5] ^ B[5] ^ c5;assign sum[6]=A[6] ^ B[6] ^ c6;assign sum[7]=A[7] ^ B[7] ^ c7;assign carry=c8;endmodule。

8位加法器设计程序过程

8位加法器设计程序过程

8位加法器设计程序过程八位加法器是一种组合逻辑电路,用于计算两个八位二进制数的和。

在设计过程中,需要确定输入和输出的位数、电路逻辑、输入输出关系等。

下面是一个八位加法器设计程序的详细过程。

1.确定输入和输出的位数:首先,我们需要明确八位加法器的输入和输出的位数。

在这个例子中,我们使用八位二进制数作为输入,并需要输出一个八位的和。

因此,输入和输出的位数均为8位。

2.确定输入和输出的表示形式:在计算机中,二进制数通常以补码形式进行表示。

因此,在这个例子中,我们将使用补码表示输入和输出。

3.分析电路逻辑:一个八位加法器由八位的全加器以及一个进位逻辑组成。

全加器用于计算两个相应位数相加的结果,而进位逻辑负责处理进位位。

因此,我们需要设计八个全加器和一个进位逻辑。

4.设计全加器电路:全加器是八位加法器的核心部分,用于计算两个位的和以及进位。

全加器的输入包括两个加数位和一个来自前一位的进位位。

输出包括和位以及进位位。

以下是一个典型的全加器电路:- 输入:A、B和C_in- 输出:Sum和C_out-逻辑表达式:Sum = A 异或 B 异或 C_inC_out = (A and B) 或 (C_in and (A 异或 B))设计八个这样的全加器电路,分别用于计算八个相应位数的和以及进位。

5.设计进位逻辑电路:进位逻辑电路负责处理来自各个位的进位。

具体来说,进位逻辑电路需要计算进位位以及进位到下一位的值。

以下是一个典型的进位逻辑电路:- 输入:C_in、C_0、C_1、C_2、C_3、C_4、C_5、C_6 和 C_7- 输出:C_out 和 C_next-逻辑表达式:C_out = C_7C_next = (C_6 and C_7) 或 (C_5 and (C_6 or C_7)) 或 (C_4 and (C_5 or (C_6 or C_7))) 或 ......(C_1 and (C_2 or (C_3 or (C_4 or (C_5 or (C_6 or C_7))))))其中,C_out代表从最高位传出的进位,C_next代表传递给下一位的进位。

verilog八位十进制计数器实验报告附源代码修订版

verilog八位十进制计数器实验报告附源代码修订版

v e r i l o g八位十进制计数器实验报告附源代码修订版IBMT standardization office【IBMT5AB-IBMT08-IBMT2C-ZZT18】8位10进制计数器实验报告一、实验目的学习时序逻辑电路学会用verilog语言设计时序逻辑电路掌握计数器的电路结构掌握数码管动态扫描显示原理二、实验内容实现一个8bit十进制(BCD码)计数器端口设置:用拨动开关实现复位和使能LED灯来表示8位数据用数码管显示16进制的八位数据1.复位时计数值为8‘h02.复位后,计数器实现累加操作,步长为1,逢9进1,,计数值达到8‘h99后,从0开始继续计数3.使能信号为1时正常计数,为0时暂停计数,为1时可继续计数。

4.每0.5s计数值加15.8位的结果显示在LED灯上,其中LED灯亮表示对应的位为1,LED灯灭表示对应的灯为06.用isim进行仿真,用forever语句模拟时钟信号输入,并给变量赋值仿真initial语句。

7.用7段数码管的后两位显示16进制下8位结果。

三、实验结果烧写结果:拨动reset开关到1时,LED灯显示10010000,7段数码管显示“90”。

之后拨动WE开关呢,开始计数,LED开始变化并且7段数码管开始计数。

从99后到达00,LED重新开始从00000000开始亮,且数码管重新从00开始计数。

之后拨动WE开关,暂停计数,LED暂停亮灭,七段数码管暂停变化,WE拨回1,继续计数。

拨动复位信号时,无视WE信号,直接复位。

仿真结果:当输入reset信号时波形变化如下当达到一个扫描信号的周期时的波形如下当达到一个以上计数信号的周期时的波形实验分析:实验总体结构和模块间关系如图所示:(其中还需要补上使能信号)实验原理:由于要求实现数码管和LED灯的显示,先考虑LED灯,可以直接由8位输出信号控制,而数码管需要同时显示两个不同的数字,需要时分复用,即快速的交替显示十位和个位,利用人眼的视觉暂留来达到同时显示。

实验一 8位全加器

实验一  8位全加器

实验一:8位全加器实验步骤1、熟悉QUARTUSⅡ集成开发环境;2、熟悉GW48-PK2型FPGA实验箱;3、编写8位全加器的Verilog HDL源代码;4、完成计算机模拟功能仿真;5、下载到Altera ACEXEP1K30中,使用实验箱完成硬件验证;6、完成实验报告实验要求8位全加器输入:Clk,Rst_,In1,In2,Cin输出:Count,Sum1.实验代码如下:module adder_8(Cout,Sum,In1,In2,Cin,Rst_,Clk);input[7:0]In1,In2;input Clk,Rst_,Cin;output[7:0]Sum;output Cout;reg[7:0]Sum;reg Cout;always@(posedge Clk)beginif(!Rst_)beginSum<=8'b0000_0000;Cout<=1'b0;endelse{Cout,Sum}=In1+In2+Cin;endendmodule2.实验仿真截图如下:(1)无输出进位的仿真截图:说明1:此图中,由于加数和被加数都比较小,导致高位没有进位。

此图中,输入低位进位设为总为1,所以和总是比两个加数直接相加所得结果大1。

只有时钟脉冲上升沿到达时,此之前的加数相加在复位端为高电平时所加和才不为零,其他所加结果都为零。

而且在图中,采集频率要比时钟频率高,也即加数和被加数及所加的和的数字采集时间要比时钟慢。

如图中,时钟的周期是10ns,数字采集周期是20ns,所以图中和的结果总是比加数有延迟。

(2)有输出进位得仿真截图:说明2:此图中,由于加数和被加数都比较大,所以有输出进位。

图中低位进位与(1)图相比,有0又有1,所以结果也和(1)中略有不同。

只有时钟脉冲上升沿到达时,此之前的加数相加在复位端为高电平时所加和才不为零,其他所加结果都为零。

且和(1)中一样,图中,采集频率要比时钟频率高,也即加数和被加数及所加的和的数字采集时间要比时钟慢。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8位全加器
一、实验目的
用verilog语言编写一个8位全加器,并在modelsim软件上进行仿真。

二、代码
1、源代码:
module add8(sum,cout,in1,in2,cin);
input [7:0] in1,in2;
input cin;
output [7:0] sum;
output cout;
assign {cout,sum}=in1+in2+cin;
endmodule
2、激励:
`timescale 1ns/100ps
module add8_tb;
reg[7:0] A,B;
reg CIN;
wire [7:0] SUM;
wire COUT;
add8 ul(
.sum(SUM),
.cout(COUT),
.in1(A),
.in2(B),
.cin(CIN)
);
initial
begin
A=8'd0;B=8'd0;CIN=1'b0;
#10 A=8'd20;B=8'd129;CIN=1'b1;
#10 A=8'd27;B=8'd19;CIN=1'b0;
#10 A=8'd157;B=8'd29;CIN=1'b0;
#10 A=8'd37;B=8'd68;CIN=1'b0;
#10 A=8'd11;B=8'd69;CIN=1'b0;
#10 A=8'd54;B=8'd67;CIN=1'b1;
#10 A=8'd211;B=8'd0;CIN=1'b0;
#10 A=8'd87;B=8'd43;CIN=1'b1;
#10 A=8'd23;B=8'd171;CIN=1'b0;
#10 A=8'd12;B=8'd12;CIN=1'b1;
#10 A=8'd112;B=8'd115;CIN=1'b0;
end
endmodule
三、实验过程
1、上机过程
2、仿真波形
3、波形说明
波形图中,从上至下依次为:输入加数A、输入加数B、输入进位CIN、输出进位COUT、输出和SUM。

该程序实现的是A+B+CIN=SUM+COUT。

0+0+0=0;
20+129+1=150;
27+19+0=46;
157+29+0=186;
37+68+0=105;
11+69+0=80;
54+67+1=122;
211+0+0=211;
87+43+1=131;
23+171+0=194;
12+12+1=25;
112+115+0=227;
四、实验过程中碰到的问题
1、对于modelsim软件太陌生,在开始实验的时候,经常做完了上一步就忘了下一步是什么,而且对老师反复强调的很多问题也在手忙脚乱间给忽略了,比如,实验一定要在计算机某一个盘里建立一个独立的文件夹,每次都是实验进行到这一步的时候才想起来还没有建这个文件夹,造成很多返工的情况。

2、开始的时候,由于C语言的习惯,程序的注解全部是用汉字写的,还有在实验刚开始时,将独立文件夹建在桌面上,使得程序在运行过程中出现了大量的汉字,最终结果就是程序莫名其妙的报错,还完全找不到错在哪里,不注重细节导致浪费大量时间。

四、实验心得
本次试验带我进入了verilog的大门,虽然磕磕绊绊,但是我发现我还是挺喜欢这样一个过程,我希望自己能认真努力,让自己的学习更进一步,让之后的实验能顺利一点。

相关文档
最新文档