版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VHDL与复杂数字系统设计上机实验2:组合逻辑电路的VHDL程序设计一、 实验目的:1. 掌握在MaxplusII中,使用硬件描述语言设计电路的基本操作步骤;2. 运用所学VHDL的描述语句完成组合逻辑电路的设计。二、 实验任务:从下列各题中任选一题完成。1. 试用两种描述方法,设计一个四位乘法运算器,并对两种方法所描述电路的性能进行比较。该乘法器有两个操作数输入端口,有一个乘积结果输出端口,采用标准逻辑位或位矢量数据类型。2. 试用两种描述方法,设计一个四位全减器,并对两种方法所描述电路的性能进行比较。该减法器有两个操作数输入端口、一个借位输入端口、一个结果输出端口、一个借位输出端口,采用标
2、准逻辑位或位矢量数据类型。3. 设计一个四位十进制数显示器,每一个字码都由一个BCD码7段译码显示器驱动,即该电路包括4个BCD码7段译码显示器,要求该电路必须设计成能够自动去掉4位中高位上的零,比如十进制数0908,显示时应为908,故BCD码7段译码显示器应具有灭零功能。该电路的端口包括:四个BCD码输入端口、四个7段译码输出端口。三、 实验报告要求:给出完整的VHDL语言程序,程序应包括:库和包集合说明(必要时)、实体和结构体;若使用了元件,要给出底层元件的VHDL语言描述;给出系统自动生成的引脚框图;对所设计电路进行功能仿真;进行适当分析。四、 参考答案:1. 乘法器方法一 利用算术运
3、算符、包集合定义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 Pin
4、s 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:st
5、d_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 &
6、amp; "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 EPF60
7、10ATC100-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_vect
8、or(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
9、) 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.st
10、d_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<
11、='0'&a; c0plusb<=c0+b; if atmp>=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 EPF6010ATC
12、100-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)be
13、gin 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<='0' else case bcd is when "0001" => seg<="0110000"
14、; -1 when "0010" => seg<="1101101" -2 when "0011" => seg<="1111001" -3 when "0100" => seg<="0110011" -4 when "0101" => seg<="1011011" -5 when "0110" => seg<="1011111" -6
15、when "0111" => seg<="1110000" -7 when "1000" => seg<="1111111" -8 when "1001" => seg<="1111011" -9 when others => seg<="0000000" -blank end case; rbo <= '0' end if;end process;end rtl;* DEVICE SU
16、MMARY *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);e
17、nd 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 (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《机械制造基础》课件-03篇 第三单元 铣削加工
- 员工工作报告范文
- 霜冻灾情报告范文
- 2025年文山货运从业资格证试题及答案
- 集中整改的报告范文
- 生态之城调研报告范文
- 企业经营规划
- 2025年西藏货运从业资格证500道题目及答案解析
- 2025年上海货运从业资格证考试题
- 2025年本溪道路货运驾驶员从业资格考试题库
- 机械制造基础说课市公开课一等奖省赛课微课金奖课件
- 船舶管理(航海二三副)理论考试题库大全(附答案)
- 山地光伏项目设计与施工难点及应对措施分享
- 2024年铁岭卫生职业学院单招综合素质考试题库及答案解析文档版
- 食品行业的食品安全与质量控制
- 关于开展2024年职工合理化建议征集评选活动的通知
- 抽错血标本护理不良事件
- 月季嫁接技术的培训课件
- 社会稳定风险评估 投标方案(技术标)
- 2024年河南省社科联所属事业单位招聘笔试冲刺题
- 中心静脉深静脉导管维护操作评分标准
评论
0/150
提交评论