参考答案上机练习二:组合逻辑电路设计.doc_第1页
参考答案上机练习二:组合逻辑电路设计.doc_第2页
参考答案上机练习二:组合逻辑电路设计.doc_第3页
参考答案上机练习二:组合逻辑电路设计.doc_第4页
参考答案上机练习二:组合逻辑电路设计.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

VHDL与复杂数字系统设计上机实验2:组合逻辑电路的VHDL程序设计一、 实验目的:1. 掌握在MaxplusII中,使用硬件描述语言设计电路的基本操作步骤;2. 运用所学VHDL的描述语句完成组合逻辑电路的设计。二、 实验任务:从下列各题中任选一题完成。1. 试用两种描述方法,设计一个四位乘法运算器,并对两种方法所描述电路的性能进行比较。该乘法器有两个操作数输入端口,有一个乘积结果输出端口,采用标准逻辑位或位矢量数据类型。2. 试用两种描述方法,设计一个四位全减器,并对两种方法所描述电路的性能进行比较。该减法器有两个操作数输入端口、一个借位输入端口、一个结果输出端口、一个借位输出端口,采用标准逻辑位或位矢量数据类型。3. 设计一个四位十进制数显示器,每一个字码都由一个BCD码7段译码显示器驱动,即该电路包括4个BCD码7段译码显示器,要求该电路必须设计成能够自动去掉4位中高位上的零,比如十进制数0908,显示时应为908,故BCD码7段译码显示器应具有灭零功能。该电路的端口包括:四个BCD码输入端口、四个7段译码输出端口。三、 实验报告要求:给出完整的VHDL语言程序,程序应包括:库和包集合说明(必要时)、实体和结构体;若使用了元件,要给出底层元件的VHDL语言描述;给出系统自动生成的引脚框图;对所设计电路进行功能仿真;进行适当分析。四、 参考答案:1. 乘法器方法一 利用算术运算符、包集合定义library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mula isport( a,b :in std_logic_vector(3 downto 0); c :out std_logic_vector(7 downto 0);end mula;architecture rtl of mula isbegin c=a*b;end rtl;* DEVICE SUMMARY *Chip/ Input Output Bidir LCsPOF Device Pins Pins Pins LCs % Utilizedmula EPF6010ATC100-1 8 8 0 32 3 %User Pins: 8 8 0 方法二 利用部分积连加法library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mulb isport( a,b :in std_logic_vector(3 downto 0); c :out std_logic_vector(7 downto 0);end mulb;architecture rtl of mulb issignal tmp1:std_logic_vector(3 downto 0);signal tmp2:std_logic_vector(4 downto 0);signal tmp3:std_logic_vector(5 downto 0);signal tmp4:std_logic_vector(6 downto 0);begin tmp1= a when b(0)=1 else 0000; tmp2= a & 0 when b(1)=1 else 00000; tmp3= a & 00 when b(2)=1 else 000000; tmp4= a & 000 when b(3)=1 else 0000000; c=tmp1 +tmp2 +tmp3 +(0 & tmp4);end rtl;* DEVICE SUMMARY *Chip/ Input Output Bidir LCsPOF Device Pins Pins Pins LCs % Utilizedmulb EPF6010ATC100-1 8 8 0 29 3 %User Pins: 8 8 0 减法器输入减法器输出abc0subc100000001110101101101100101010011000111112. 四位全减器方法一 基于逻辑表达式一位全减器的真值表如下所示,可得到一位全减器的逻辑表达式,再将每位级联,采用generate语句可完成四位全减器描述。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity subtracter1 isport( a,b : in std_logic_vector(3 downto 0); c0 : in std_logic; c1 : out std_logic; sub : out std_logic_vector(3 downto 0);end subtracter1;architecture rtl of subtracter1 issignal ctmp:std_logic_vector(4 downto 0);begin ctmp(0)= c0; gen1:for i in 0 to 3 generate sub(i)= a(i) xor b(i) xor ctmp(i); ctmp(i+1)= (not a(i) and b(i) or (not a(i) and ctmp(i) or (ctmp(i) and b(i); end generate; c1=ctmp(4);end rtl;* DEVICE SUMMARY *Chip/ Input Output Bidir LCsPOF Device Pins Pins Pins LCs % Utilizedsubtracter1 EPF6010ATC100-1 9 5 0 8 0 %User Pins: 9 5 0 方法二 基于算术表达式library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity subtracter2 isport( a,b : in std_logic_vector(3 downto 0); c0 : in std_logic; c1 : out std_logic; sub : out std_logic_vector(3 downto 0);end subtracter2;architecture rtl of subtracter2 issignal c0plusb,atmp:std_logic_vector(4 downto 0);begin process(a,b,c0) begin atmp=0&a; c0plusb=c0plusb then c1=0; sub= a - c0plusb; else c1=1; sub= 10000-b-c0+ a; end if; end process;end rtl;* DEVICE SUMMARY *Chip/ Input Output Bidir LCsPOF Device Pins Pins Pins LCs % Utilizedsubtracter2 EPF6010ATC100-1 9 5 0 25 2 %User Pins: 9 5 0 3.四位十进制数显示电路首先,设计一个带灭零功能的BCD码7段译码显示器,输入rbi为1时,要求灭零;否则显示零。rbo为灭零输出,作为其后的级联显示器是否灭零的控制信号。entity sevsegrb isport( rbi:in bit; bcd:in bit_vector(3 downto 0); seg:out bit_vector(6 downto 0); rbo:out bit);end sevsegrb;architecture rtl of sevsegrb isbeginprocess(rbi,bcd)begin if (bcd=0000 and rbi=1) then -suppress 0 seg=0000000; rbo=1; elsif (bcd=0000 and rbi=0) then - display 0 seg=1111110; rbo seg seg seg seg seg seg seg seg seg seg=0000000; -blank end case; rbo = 0; end if;end process;end rtl;* DEVICE SUMMARY *Chip/ Input Output Bidir LCsPOF Device Pins Pins Pins LCs % Utilizedsevsegrb EPF6010ATC100-1 5 8 0 18 2 %User Pins: 5 8 0 接着,利用该元件设计四位十进制数显示电路。entity sevsegrb_4bit isport( rbi:in bit; bcd1,bcd2,bcd3,bcd4:in bit_vector(3 downto 0); seg1,seg2,seg3,seg4:out bit_vector(6 downto 0); rbo:out bit);end sevsegrb_4bit;architecture rtl of sevsegrb_4bit iscomponent sevsegrbport( rbi:in bit; bcd:in bit_vector(3 downto 0); seg:out bit_vector(6 downto 0); rbo:out bit);end component;signal rb:bit_vector(3 downto 1);beginu4:sevsegrb port map ( rbi,bcd4,seg4,rb(1);u3:sevsegrb port map ( rb(1),bcd3,seg3,rb(2);u2:sevsegrb port map ( rb

温馨提示

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

评论

0/150

提交评论