加减法运算器的设计Word文档下载推荐.docx

上传人:b****4 文档编号:6409295 上传时间:2023-05-06 格式:DOCX 页数:13 大小:295.25KB
下载 相关 举报
加减法运算器的设计Word文档下载推荐.docx_第1页
第1页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第2页
第2页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第3页
第3页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第4页
第4页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第5页
第5页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第6页
第6页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第7页
第7页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第8页
第8页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第9页
第9页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第10页
第10页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第11页
第11页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第12页
第12页 / 共13页
加减法运算器的设计Word文档下载推荐.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

加减法运算器的设计Word文档下载推荐.docx

《加减法运算器的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《加减法运算器的设计Word文档下载推荐.docx(13页珍藏版)》请在冰点文库上搜索。

加减法运算器的设计Word文档下载推荐.docx

2.四位超前进位的加减法运算器,有溢出和进位标志。

五、设计详细描述

5.1四位行波进位加减法运算器

5.1.1功能描述

带符号位的4位的两数进行加减运算,m进行控制,m=0时进行加法,m=1时进行减法。

S表示输出结果,C表示进位输出,Y标志溢出。

5.1.2封装模块图

5.1.3总电路图

5.1.4组成模块

一位全加器电路图

一位全加器封装图

一位全加器功能仿真波形图

求补电路图

求补电路封装模块图

5.1.5程序设计

modulenum4_wait(

m,

A,

B,

Y,

SS

);

inputwirem;

inputwire[3:

0]A;

0]B;

outputwireY;

outputwire[3:

0]SS;

wire[3:

0]AA;

0]BB;

0]S;

wireSYNTHESIZED_WIRE_0;

wireSYNTHESIZED_WIRE_9;

wireSYNTHESIZED_WIRE_2;

wireSYNTHESIZED_WIRE_3;

wireSYNTHESIZED_WIRE_4;

wireSYNTHESIZED_WIRE_5;

wireSYNTHESIZED_WIRE_6;

wireSYNTHESIZED_WIRE_7;

Add_minusb2v_inst(

.A(SYNTHESIZED_WIRE_0),

.B(BB[3]),

.Ci(SYNTHESIZED_WIRE_9),

.C(SYNTHESIZED_WIRE_7),

.S(S[3]));

Add_minusb2v_inst1(

.A(SYNTHESIZED_WIRE_2),

.B(BB[2]),

.Ci(SYNTHESIZED_WIRE_3),

.C(SYNTHESIZED_WIRE_9),

.S(S[2]));

qiubub2v_inst14(

.a(A),

.aa(AA));

qiubub2v_inst15(

.a(B),

.aa(BB));

qiubub2v_inst16(

.a(S),

.aa(SS));

Add_minusb2v_inst2(

.A(SYNTHESIZED_WIRE_4),

.B(BB[1]),

.Ci(SYNTHESIZED_WIRE_5),

.C(SYNTHESIZED_WIRE_3),

.S(S[1]));

Add_minusb2v_inst3(

.A(SYNTHESIZED_WIRE_6),

.B(BB[0]),

.Ci(m),

.C(SYNTHESIZED_WIRE_5),

.S(S[0]));

assignSYNTHESIZED_WIRE_0=AA[3]^m;

assignSYNTHESIZED_WIRE_2=AA[2]^m;

assignSYNTHESIZED_WIRE_4=AA[1]^m;

assignSYNTHESIZED_WIRE_6=AA[0]^m;

assignY=SYNTHESIZED_WIRE_7^SYNTHESIZED_WIRE_9;

endmodule

5.1.6功能仿真波形图

(二进制波形图)

正常情况Y=0

存在溢出时Y=1

5.2四位超前进位加法运算器

5.2.1功能概述

实现两个四位的数的加法,S输出结果,overflow标志是否溢出,carry_out表示进位。

5.2.2封装模块图

5.2.3程序设计

moduleAdd_minus_num4

input[3:

0]a,

0]b,

inputc0,//carry_in

inputclk,

inputcclr,

inputm;

outputregcarry_out,

outputreg[3:

0]sum,

outputregoverflow

wirec1,c2,c3,c4;

wirep0,p1,p2,p3;

wireg0,g1,g2,g3;

wiresum0,sum1,sum2,sum3;

assigng0=a[0]&

b[0];

assigng1=a[1]&

b[1];

assigng2=a[2]&

b[2];

assigng3=a[3]&

b[3];

assignp0=a[0]^b[0];

assignp1=a[1]^b[1];

assignp2=a[2]^b[2];

assignp3=a[3]^b[3];

//并行进位公式

assignc1=g0|c0&

p0;

//g0+c0p0

assignc2=g1|(g0&

p1)|(c0&

p0&

p1);

//g1+p1g0+p1p0c0

assignc3=g2|(g1&

p2)|(g0&

p1&

p2)|(c0&

p2);

//g2+p2g1+p2p1g0+p2p1p0c0

assignc4=g3|(g2&

p3)|(g1&

p2&

p3)|(g0&

p3)|(c0&

p3);

//g3+p3g2+p3p2g1+p3p2p1g0+p3p2p1p0c0

assignsum0=p0^c0;

assignsum1=p1^c1;

assignsum2=p2^c2;

assignsum3=p3^c3;

always@(posedgeclkornegedgecclr)

begin

if(!

cclr)

begin//用于复位

sum<

=0;

carry_out<

=0;

end

else

begin

={sum3,sum2,sum1,sum0};

=c4;

//符号位进位输出

overflow=c4^c3;

//溢出设计

end

end

5.2.4功能仿真波形图

溢出时carry_out=1;

六、实验注意事项

1.使用testbench进行仿真时切记initial块之间是并行的,否则会因理解有误使得结果相差很大。

2.使用Modelsim-Altrea仿真,在设置setting中编译TestBench部分建立新的TestBench时,名称一定要与testbench的文件名相同,即xxx_vlg_tst()格式,否则调用时会报错errorloading或无法出现波形图。

七、实验问题及解决方法

1.使用仿真软件时报错:

Info:

StartNativelinkSimulationprocess

Error:

NativeLinkdidnotdetectanyHDLfilesintheproject

NativeLinksimulationflowwasNOTsuccessful

NativelinkTCLscriptfailedwitherrorCode:

NONE

NativelinkTCLscriptfailedwitherrorInfo:

NativeLinkdidnotdetectanyHDLfilesintheproject(procedure"

run_eda_simulation_tool"

line1)

invokedfromwithin

"

run_eda_simulation_tooleda_opts_hash"

问题解决:

由于是原理图自动生成的veriloghdl语言,而modelsim只能仿真hdl文件,不能仿真原理图。

可以用file->

creat/update->

createhdldesignfilefromcurrentfile来生成一个同名的hdl文件。

之后将原来的原理图文件从工程中移去(否则分析综合时会报错),进行分析综合。

这样就可以进行rtl仿真了。

2.使用modelsim-altera仿真时发现窗口能弹出,但没有wave波形图

窗口能弹出表示路径正确,点击波形图下方“transcript”,进入后可看到报错error提示,通常为testbench语法报错,直接进入vt文件进行修改即可。

3.报错errorloading

有两种原因:

第一次因为创建testbench时文件名与testbench里的名称不一样;

第二次因为没有从工程目录下移除bdf文件或给它更名,我是利用电路图,生成VerilogHDL文件的,因此bdf文件也放在工程目录下,由于二者名字相同,软件无法判断哪个才是需要仿真的文件,因而报错。

4.使用4位并行进位加法器时,直接用的VerilogHDL语言进行仿真,结果有误。

一直查不出错误,关掉了所有文件,重新生成testbench模板并仿真,结果正确。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2