16位ALUVHDL实现源程序.doc

上传人:scccc 文档编号:11910624 上传时间:2021-10-25 格式:DOC 页数:9 大小:53.50KB
返回 下载 相关 举报
16位ALUVHDL实现源程序.doc_第1页
第1页 / 共9页
16位ALUVHDL实现源程序.doc_第2页
第2页 / 共9页
16位ALUVHDL实现源程序.doc_第3页
第3页 / 共9页
16位ALUVHDL实现源程序.doc_第4页
第4页 / 共9页
16位ALUVHDL实现源程序.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《16位ALUVHDL实现源程序.doc》由会员分享,可在线阅读,更多相关《16位ALUVHDL实现源程序.doc(9页珍藏版)》请在三一文库上搜索。

1、思考题:编写十六位运算器的VHDL程序一一MYALU实验任务:用CPT16的扩展实验板上的开关 K3、K2、K1、K0做为输入、八段数码管LED0.LED3做为输出,用VHDL语言编写程序,下载到EP1C6中,实现十六位模型机 的MY ALL功能见下表。实验说明: 在程序设计中,定义A 为 16 位累加器,其值由 K3 、 K2 两组开关输入;W 为 16 位工作寄存器,其值由 K1、 K0 两组开关 共输入;S2、S1、SO为运算功能控制位,接在K4开关的第2、1、0 个开关上,根据 S2、 S1、 S0 的不同, MYALL 实现不同功能D为运算结果输出,显示在四位八段管 LED3.LED

2、0上;CIn 为进位输入,由 K4 开关组的第 3 个开关输入;COut 为进位输出,用发光二极管 LO 显示其状态控制信号S运算000A+B; A+B+1001算术运算A-B ; A-B-1010A; A+1011A; A-1100AB101逻辑运算A+B110AB111Alibrary ieee;序包调用库程use asanxia is 体:电路外观配置port(inA : IN UNSIGNED(15 DOWNTO 0); - K3, K2 inAinW : IN UNSIGNED(15 DOWNTO 0); - K1, K0 inWoutLED : OUT STD_LOGIC_VECT

3、OR(15 DOWNTO 0); - LED3LED0 outLEDinC : IN STD_LOGIC_VECTORD(2OWNTO0); -Control Input inCCin:IN STD_LOGIC; -C Input CinCout: OUT STD_LOGIC - C Output L0 Cout);end asanxia;architecture arch of asanxia is 结构体:电路功能描述-本位和进位异或,产生不用and,因q(i)只能存暂存进位信号暂存各位数值加法:and inW(0)or有两个以上为 1 即产inW(i)xorsignal c:std_lo

4、gic_vector(15 downto 0); -signal q:UNSIGNED(15 downto 0); -beginprocess(inC,inA,inW,Cin)begincase inC iswhen 000=A+B ;A+B+1q(0)=inA(0)xor inW(0)xor Cin; c(0)=(inA(0)(inW(0)and Cin)or (inA(0)and Cin);-inA(0),inW(0),Cin生进位。gen1:for i in 1 to 15 loopq(i)=inA(i)xor储一位信息c(i)=(inA(i) and inW(i)or(inW(i)an

5、d c(i-1)or (inA(i)and c(i-1);- inA(0),inW(0),Cin 有两个以上为 1即产生进位 end loop;outLED=q(15)&q(14)&q(13)&q(12)&q(11)&q(10)&q(9)&q(8)&q(7)&q(6)&q(5)&q(4)&q(3)&q(2)&q(1)&q(0); -给输出赋值,将各位连缀起来CoutA-B ;A-B-1q(0)=inA(0)xor inW(0)xor Cin;c(0)=(notinA(0) and inW(0)orc(i-1);(inW(0)and Cin)or (not inA(0)and Cin);gen2

6、:for i in 1 to 15 loopinW(i)xorq(i)=inA(i)xorc(i)=(notinA(i) and inW(i)or(inW(i)and c(i-1)or (not inA(i)and c(i-1);end loop;outLED=q(15)&q(14)&q(13)&q(12)&q(11)&q(10)&q(9)&q(8)&q(7)& q(6)&q(5)&q(4)&q(3)&q(2)&q(1)&q(0); - 给输出赋值Coutif Cin=0thenoutLED=inA+1; - 执行a+1end if;Coutif Cin=0thenoutLED=inA-1;执

7、行a-1end if;Cout - 逻辑与: ABgen3:for i in 0 to 15 loopq(i)=inA(i)and inW(i);outLED - 逻辑或: A+Bgen4:for i in 0 to 15 loopq(i)=inA(i)or inW(i);outLEDgen5:for i in 0 to 15 loopq(i)=inA(i)xor inW(i);outLED -逻辑非:outLED=notinA(15)¬inA(14)& not inA(13)& not inA(12)¬ inA(11)¬ inA(10)& notinA(9)& not inA(8)¬ inA(7)& not inA(6)& not inA(5)& not inA(4)¬ inA(3)& not inA(2)& not inA(1)& not inA(0);Cout=0;end case;end process;end arch;

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1