设计报告小组成员旭_第1页
设计报告小组成员旭_第2页
设计报告小组成员旭_第3页
设计报告小组成员旭_第4页
设计报告小组成员旭_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

小组成员:,,旭,通过互联网,查找基于verilog语言实现ALU通 SE6.5软件实现ALU的仿真 GabeRoweEELab//延迟232bitALUwithCarryLookAhead,andminimizedlogiconsetlessthan////建立模块名称32位运算器(ab,操作码,结果总线,归零检测,溢出检input[31:0]bus_a,//输入端口:两个32位输入端口总线a,总线b.input[2:0]op_code;//输入端口:3位操作码输入.output[31:0]result_bus;outputwire[15:0]//线网6个16位wire名称:p0,p1,g0,g1,ci0,ci1.wiregnd=0;set//置1:32位总线a,32位多路复用b,16位电立入逻辑overflow//溢出门:32位总线a,32位多路复用b,16位电立入逻辑,溢出检 1//Thesetwo16bitcarrylookaheadblocksmakeupa32bitcarrylookaheadcla_16_bitclacarrylookaheadcla_16_bit//(cla:carrylookahead十六位超前进位加法器模块)输出:两位操作码,五个输入:1位数p0,1位数g0,一位数ci0,一位数gg0,一位数pg0.and#50//与门0+1={0,1},输出:十六位数pre_c16,两个输入:一位数pg0,两位操作码and#50//与门0+1={0,1},输出:三十二位数pre_c16pg1gg0.and#50and2(pre_c32_2,pg0,pg1,op_code[2]);//与门0+1={0,1},输出:三十二位数pre_c16,两个输入:一位数pg0,两位操作码or#50//或门0+1={0,1},输出:16c16,两个输入:16,pre_c16,gg0.or#50or1(carryout,pre_c32_1,pre_c32_2,gg1);//或门2位数gg1//分别ALU的32alu_32_bitmodule1(a,b,cin,binv,op,less,p,g,bmux,sum,result)input[1:0]op;//输入端口:一个2位输入端口opinputa,b,cin,binv,less;outputp,g,bmux,sum,result;b_muxb_mux0(b,binv,bmux);//多路复用b_:b,binv,bmuxpfapfa0(a,bmux,cin,g,p,sum);//pfa:mux_4_to_11moduleinputoutputg,p,sum;and#50and0(g,a,b);//与门0+1={0,1},输出:g,两个输入:a,bor#50or0(p,a,b);//或门0+1={0,1},输出:p,两个输入:a,bxor#50xor0(sum,a,b,cin);0+1={0,1},输出:sum,三个输入:a,b,cinpfamodule//建立模块名称16inputinput[15:0]p,g;//输入端口:两个16位输入端口p,goutput[15:0]ci;//输出端口:16位output//输出端口:两个输出端口gg_out,pg_outwire[3:0]gg,pg,ci_main;//线网:3个wire名称:gg,pg,ci_maincla_4_bit//分别16位超前进位加法运算器的4module4inputinput[3:0]p,g;//输入端口:两个4位输入端口p,goutputc1,c2,c3;/输出端口:3个输出端口c1,c2,c3outputgg,pg;//输出端口:两个输出端口gg,pgand#50and0(c1_and0,p[0],cin);//与门0+1={0,1},输出:c1_and0,两个输入:p[0],cinand#50and1(c2_and0,p[1],g[0]);//与门0+1={0,1},输出:c2_and0,两个输入:p[1g[0]and#50and2(c2_and1,p[1],p[0],cin);and#50and#50and#50and#50and#50and#50and#50or#50//或门or#500+1={0,1},输出:c2,三个输入:g[1],c2_and0,c2_and1or#50or2(c3,g[2],c3_and2,c3_and1,c3_and0);or#50or3(gg,g[3],c4_and2,c4_and1,c4_and0);moduleinputa,b,cin;//输入端口a,b,cin;outputoverflow_detect;//输出端口overflow_detectnotnot0(not_a,a);//非门:输入anot_a;notnot1(not_b,b);//非门:输入bnot_b;notnot2(not_cin,cin);cin,输出and#50and#50or#50module//建立模块,名称比较,功能:小于置一,a<b1;a>b0inputa,b,cin;//输入端口a,b,cinoutput//输出端口set_less_thannotnot0(not_cin,cin);cin,not_cin;and#50and0(a_and_b,a,b);//与门:输出a_and_b,输入a,b;and#50and#50or#50输入modulemux_4_to_1(sel,in0,in1,in2,in3,41sel[0]、sel[1outin0,in1,in2,in3中的一个input[1:0]//输入端口:2位输入端口selinputin0,in1,in2,in3;//输入端口:in0,in1,in2,in3outputout;wire[1:0]not_sel;//线网2位wire名称:not_sel.notnot0(not_sel[0],sel[0]);notnot1(not_sel[1],sel[1]);and#50and0(sel_in0,in0,not_sel[1],not_sel[0]);//00and#50and1(sel_in1,in1,not_sel[1],sel[0]);//01and#50and2(sel_in2,in2,sel[1],not_sel[0]);//10and#50and3(sel_in3,in3,sel[1],sel[0]);//11or#50or0(out,sel_in0,sel_in1,sel_in2,sel_in3);moduleb_mux(b,binv,bmux);inputb,binv;outputbmux;xor#50xor0(bmux,binv,因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关。因此,为了减少仅为传输所消耗的时间,这个ALU采用超前进位加法器。基本模块为4位超前进位加法器,4个4为超前进位加法器模块再使用超前进位逻辑进行连接构成16位超前进位加法器,两个16位超前进位加法器构成1个32位超前进位加法器。小于置一,零检测,以及溢出检测功能分别又其他模块完成。p表示进位否决信号(pass),p0就否决调前一级的进位输入。否决的意

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论