欢迎来到天天文库
浏览记录
ID:9000756
大小:35.50 KB
页数:4页
时间:2018-04-14
《加法器、减法器的设计vhdl》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验报告课程名称电子设计自动化实验(基于FPGA)实验项目加法器、减法器的设计实验仪器计算机+QuartusⅡ9.1系别信息与通信工程学院专业通信工程班级/学号学生姓名实验日期2012、5成绩_______________________指导教师_______________________4HigashiQ83831295加法器、减法器的设计完成一个8位二进制带符号数的加减电路设计。设计要求如下:通过拨码开关输入两组8位二进制数,最高位为符号位,0表示正数,1表示负数,其余位表示二进制数值。用一按键对加、减方式进行控制,0表示加,1表示减。输
2、出用四位LED数码管显示BCD码。其中LED显示器最高位为符号位。VHDL代码LIBRARYIEEE;USEIEEE.std_logic_1164.all;USEIEEE.std_logic_arith.all;USEIEEE.std_logic_unsigned.all;ENTITYaddISPORT(a:instd_logic_vector(7downto0);b:instd_logic_vector(7downto0);ctrl:instd_logic;bcd:outstd_logic_vector(15downto0));ENDENTI
3、TY;ARCHITECTUREfuncOFaddISSIGNALx:std_logic_vector(9downto0);SIGNALy:std_logic_vector(9downto0);SIGNALz:std_logic_vector(9downto0);SIGNALc:std_logic_vector(8downto0);SIGNALdec:integer;BEGINyunsuan:BLOCK--运算模块BEGINPROCESS(a)BEGINIF(a(7)='0')THEN--判断正负x<='0'&'0'&a;ELSEx(9downt
4、o8)<='1'&'1';x(7downto0)<=NOT('0'&a(6downto0))+1;ENDIF;ENDPROCESS;PROCESS(a,ctrl)BEGIN4HigashiQ83831295IF(ctrl='0')THEN--控制键为0,则做加法IF(b(7)='0')THENy<='0'&'0'&b;ELSEy<='1'&'1'&(NOT('0'&b(6downto0))+1);ENDIF;ELSEIF(b(7)='1')THENy<='0'&'0'&'0'&b(6downto0);ELSEy<='1'&'1'&(NOT('0
5、'&b(6downto0))+1);ENDIF;ENDIF;ENDPROCESS;PROCESS(a,b)BEGINIF(a(6downto0)=0)THENz<=y;ELSEIF(b(6downto0)=0)THENz<=x;ELSEz<=x+y;ENDIF;ENDIF;ENDPROCESS;PROCESS(z)BEGINIF(z(9)='1')THEN--判断结果的正负c(7downto0)<=NOTz(7downto0)+1;c(8)<='1';ELSEc(8downto0)<='0'&z(7downto0);ENDIF;ENDPROCE
6、SS;ENDBLOCK;bcdout:BLOCKBEGINdec<=CONV_INTEGER(c);--二进制转十进制PROCESS(c)BEGIN4HigashiQ83831295CASEc(8)IS--判断最高位正负WHEN'0'=>bcd(15downto12)<="0000";WHEN'1'=>bcd(15downto12)<="0001";WHENOTHERS=>bcd(15downto12)<=NULL;ENDCASE;CASEdec/100IS--判断百位数字WHEN0=>bcd(11downto8)<="0000";WHEN1=
7、>bcd(11downto8)<="0001";WHENOTHERS=>bcd(11downto8)<=NULL;ENDCASE;CASE(decREM100)/10ISWHEN0=>bcd(7downto4)<="0000";WHEN1=>bcd(7downto4)<="0001";WHEN2=>bcd(7downto4)<="0010";WHEN3=>bcd(7downto4)<="0011";WHEN4=>bcd(7downto4)<="0100";WHEN5=>bcd(7downto4)<="0101";WHEN6=>bcd(7down
8、to4)<="0110";WHEN7=>bcd(7downto4)<="0111";WHEN8=>bcd(7downto4)<="1000";WHEN
此文档下载收益归作者所有