基于可编程逻辑器件和VHDL语言实现算术逻辑单元的设计.docx
-
资源ID:841760
资源大小:53.18KB
全文页数:6页
- 资源格式: DOCX
下载积分:3金币
快捷下载

账号登录下载
微信登录下载
三方登录下载:
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于可编程逻辑器件和VHDL语言实现算术逻辑单元的设计.docx
基于可编程逻辑器件和VHD1语言实现算术逻辑单元的设计1、引言随着可辘逻辑器件的发展,FPGA的应用已经越来越广泛,且用可编程逻辑器件代替传统的普通集成电谿已成为一种发展的趋势。可编程逻辑器件FPGA以其高集成度、高速度、开发周期短、稳定性好而受到了人们的青睐,并得到了广泛的应用。由于算术逻辑单元(A1U)在运算中对系统性能要求很高,而采用中小规模的集成电路设计的系统既庞大又存在稳定性的问题。因此,用可编程逻辑器件FPGA来实现算术逻辑单元是一个很好的选择。而硬件描述语言(HD1)是使用可编程逻辑器件的不可缺少的工具,所以本文选用VHD1语言。并以设计4位算术逻辑单元为例,来实现算术逻辑单元的功能,又通过纯组合逻辑电路和超级进位方法的应用,使得在高速可编程逻辑器件FPGA的基础上,实现了算术逻辑单元在速度上的进一步优化。2、电路设计本算术逻辑运算单元可实现与、或、非、异或、逻辑左移、逻辑右移的逻辑运算和加、减、乘、除的算术运算等10种功能,也可以根据需要进行功能的增减,这也体现出了用VHD1语言设计硬件系统的灵活性。2.1设计思想该A1U单元采用模块化设计。共划分了4个模块:控制与逻辑运算电路模块(COntrO1)、加减法电路模块(如dsub)、乘法电路模块(MUI)和除法电路模块(div)。总体构成如图1所示。A1U模块图如图2所示。图中A,B为2个4位的输入;CommanC1为功能选择输入;C1N为加减法的进位和借位输入;COUT为加减法的进位和借位的输出;ReSUIta和ReSUItb为2个4位的输出,乘法时ReSUItb存放积的高4位,ReSUIta存放积的低4位,除法时ReSU1ta存放商,ReSUItb存放余数。2.2各模块分析(1)控制模块(Contro1)该模块对系统的工作进行总体控制。根据对COmmand输入的信号分析来决定A1U执行的功能,并进行加减法模块、乘法模块、除法模块的选择和输出的控制。在程序中使用3个CASE语句来实现。第1个CASE语句控制逻辑运算的实现,第2个CASE语句控制加减法模块、乘法模块、除法模块的选择,第3个CASE语句控制输出的选择。(2)加减法模块(Addsub)本设计中减法运算通过加补码的方式由加法器实现,这样可以简化系统前进位(有关超前进位的内容可参阅文献1的应用,使得加法器速度受进位限制的问题得到解决。1jWdsUbcmftddsubiAddSUb_cresu1t(3°】antICOfnmnd3Ojqutnto3Ojrmndr_o(30)OPM30)OPbP0«PO1b(30)contro1dtvapO)dvb(3O)(30mu1b(30470b3.0command(3O)addsub-resu1t(30rtU(33rendri(X.O)ProduCU170】图1G依构BV图resu1t)resu1tfXdWbOrcsu1i-(30rcsuhb.OpO)5vi-(3O1divt»_o(3OJeu!<o(30EU1b_o(3O)瓯*0OPbj)(30A(30BP0COMMANDpO)CINA1UCOCTTRESU1TA(30)RESUenH3O)图2A1U模块源程序如下:1ibraryieee;useieeestd_bgc_1164.a1tentityaddsubisport(opa:in51d.1ogic,vector(3downtoO);opb:nstd.bgic.VeCtor(3downtoO);c.i:instd.bgHaddsubcinstdbgic;resu1t:outstd_bgic.VeC1or(3dournoO);c.o:outstd.bgic);endaddsub;architecturert1ofaddsubisbegsprocess<opa.opb.c1addsubi)varnb1es_c:std_bgic_vector(3dwno0);varabiep:std.bgic.vector(4d*,n1o1);varBb1eg:sid_bgic.vector(4dmvntD1);variab1ec:s1d.bgic.vcctor(4dwnk>0);beginifaddsub.ra*then-adderp:二opaxoropb;g:=opaandopb;c(0):«c.Cforiin1to4bopc(i):*g(i)or(p(i)andc(i>1);endbop;C.o<«c(4);u:Pxorc(3downioO);e1se-subtractorp:=opaxor(notopb);g:-opaand(notopb);c(0):=notc_tibrinIto4bopc(i):=gG)or(p(i)andc(>-1);endbop;c_o<=notc(4);s_c:pxorc(3downtoO);endif;resu1t<=S-Uendprocess;endrt(3)乘法模块和除法模块(MU1DiV)乘法、除法模块也采用了纯组合逻辑电路的设计。比时序逻辑构成的乘除法器在速度上具有优势。编程原理采用通过逐位相加减的方法来实现。乘法模块源程序如下:1i>raryee;use»ee.std_bgic_1164.a1tuseieeestd_bgic.unsigned,a1tentitymu1isport(a:insdIDgiC_vector(3dmvntoO);b:instd.bgic.VeC1or(3down1oO);q:outstd.bgc.vector(7du,nto0);endmukarchitecturert1ofmu1isbegnprocess(a.b)Varabkdou:std_bgic_vector(4downto0):varabied:std.bgic.vector(4dwno0);varabiec:std.bg.vecor(8dou(no0);begnc: ="OOOO(XX)OO*;dout:=0&a:mu1tp1y:forn0to3bopifb(Dithend: =dout÷c(8d*nto4);e1sed:=c(8dwnk>4);end讹c(2douno0):=c(3dwnoO;c(8douno3):=0&d,endbop;q<c(7dwno0);endprocess:endrtk2.3系统仿真最后采用VHD1语言中的例化语句对上述各模块进行整合,并对其进行仿真,得到了预期的效果。实现了A1U的各项功能。仿真图如图3所示。图3仿真结果3、结语随着EDA技术的发展,可编程逻辑器件FPGA和VHD1语言在硬件电路设计中,越来越显示出其优越性,本设计即是一个很好的验证。通过实际的应用和日常的实验中的使用,该A1U系统体现出了良好的稳定性,在速度上也能很好的满足系统的要求。责任gt