




免费预览已结束,剩余19页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 请画出下段程序的真值表,并说明该电路的功能。LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY aaa IS PORT( oe,dir :IN STD_LOGIC ; a,b : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0 ) ; END aaa ;ARCHITECTURE ar OF aaa ISBEGIN PROCESS(oe , dir ) 输入 输出 BEGIN a1 a0 x3 x2 x1 x0 IF oe=0 THEN a=”zzzzzzzz”; b=”zzzzzzzz”; 0 0 0 0 0 1 ELSIF oe=1 THEN 0 1 0 0 1 0 IF dir=0 THEN b=a; 1 0 0 1 0 0 ELSIF dir=1 THEN a=b; 1 1 1 0 0 0 ENDIF; END IF ; END PROCESS ;END ar ;功能为:24译码器.4分2 请说明下段程序的功能,写出真值表,并画出输入输出波形。LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY aaa IS PORT( reset,clk: IN STD_LOGIC; q: BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0);END aaa;ARCHITECTURE bd OF aaa IS BEGIN PROCESS(clk,reset) BEGIN IF (reset=0) THEN q=000; ELSIF (clkevent AND clk=1) THEN IF (q=5) THEN q=000; ELSE q=q+1; END IF; END IF; END PROCESS;END bd;功能为:带进位借位的4位加/减法器。.3分输入输出波形图如下:7分ma3.0b3.0c3.0d1.试用VHDL语言编程实现74LS273芯片的功能。LIBRARY ieee; USEieee.std_logic_1164.ALL;2ENTITYls273IS1PORT(clr,clk:INstd_logic; d:INstd_logic_vector(7DOWNTO 0 );q:OUTstd_logic_vector(7 DOWNTO 0 );4);ENDls273; ARCHITECTURElock8OFls273IS1BEGINPROCESS ( clk )1BEGINIF (CLR=0)THENq=”00000000” ;2 ELSEIF (clkevent AND clk=1) THEN q=d; 3ELSEIF ( clk=0 ) THEN q=q; 1END IF;ENDPROCESS;ENDlock8;3. 请用VHDL语言编程实现一个状态向量发生器。LIBRARY ieee; USEieee.std_logic_1164.ALL;2ENTITYstasIS1PORT(cp, rst:INstd_logic; p:BUFFERstd_logic_vector(7 DOWNTO 0 );2);ENDstas; ARCHITECTUREarstasOFstasIS1BEGINPROCESS (cp )1BEGINIF(rst=”0”) THENp=”00000000”;1ELSEIF (cpevent AND cp=1 )1WITHpSELECTpb THEN ahb=1; alb=0; aeb=0; ELSIF ab THEN ahb=0; alb=1; aeb=0; ELSE ahb=0; alb=0; aebb100ab010a=b001(2)该电路是一个8位两输入比较器,(2)a、b是两个8位输入端;(1)ahb、alb和aeb为比较结果输出端,某种比较结果为真时,相应的输出端为“1”,其余端输出为“0”。(2)1. 试用VHDL语言编程实现一个2-4译码器,其真表如下:输入端输出端enselecty0XX“1111”100“1110”101“1101”110“1011”111“0111” 2-4译码器码参考程序如下:(答案不唯一,用case语句、withselect语句都可以。)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;(1)ENTITY ym24 IS PORT( en : IN STD_LOGIC; select : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); y : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)(3);END ym24;ARCHITECTURE bd OF ym24 IS BEGIN PROCESS(en)(1) IF (en=1) THEN y= ”1110” WHEN select=”00” ELSE ”1101” WHEN select =”01” ELSE ”1011” WHEN select =”10” ELSE ”0111” WHEN select =”11” ELSE(4) ”1111”; ELSE yQQQQQQQ=00000000;(4) END CASE; END PROCESS;END bd;2、已知三选一电路如图,判断下列程序是否有错误,如有则指出错误所在,并给出完整程序。(10分)library ieee;use ieee.std_logic_1164.all;ENTITY MAX isport(a1,a2,a3,s0,s1:in bit; outy:out bit);end max; (2)architecture one of max iscomponent mux21a port(a,b,s:in std_logic; y:out std_logic);end component; (2)signal temp std_logic; (2)begin u1:mux21a port map(a2,a3,s0,temp); (2) u2:mux21a port map(a1,temp,s1,outy); (2) end one;1. 已知电路原理图如下,请用VHDL语言编写其程序答:library ieee;use ieee.std_logic_1164.all;entity mux21 is port(a,b,s:in bit; y:out bit);end mux21; (4)architecture one of mux21 is single d,e:bit;begin d=a and (not)s; e=b and s; y=d or e;end one; 2. 设计一个带有异步清零功能的十进制计数器。计数器时钟clk上升沿有效、清零端CLRN、进位输出co。 答:library ieee;use ieee.std_logic_1164.all;entity counter10 isport(clk,CLRN:in std_logic; dout:out integer range 0 to 9);end counter10; (5)architecture behav of counter10 ISbeginprocess(clk)variable cnt:integer range 0 to 9; (3)beginIF CLRN=0 THENCNT:=0;ELSIF clk=1and clkevent thenif cnt=9 thencnt:=0;elsecnt:=cnt+1;end if;end if;dout=cnt;end process;end behav; (7)31)用VHDL语言编写半加器和或门器件的程序,如图所示: 答 :半加器程序:library ieee;use ieee.std_logic_1164.all;entity h_adder isport(a,b:in std_logic; co,so:out std_logic);end h_adder; (2)architecture one of h_adder isbegin so=not(a xor(not b); co=a and b;end one; (3)或门程序:library ieee;use ieee.std_logic_1164.all;entity or2a is port(a,b:in std_logic; c:out std_logic);end or2a; (2)architecture one of or2a isbegincain,b=bin,co=d,so=e); u2 : h_adder port map(a=e,b=cin,co=f,so=sum); u3 : or2a port map(d,f,cout);end fd1; (5)1. 试用VHDL语言编程实现一个总线开关,其真值表如下:输 入输 出enselectA0A6B0B6Y0Y60x“ZZZZZZZ”10A11B 1. 总线开关的参考程序如下:LIBRARY ieee;USE ieee.std_logic_1164.all; (1)ENTITY aaa IS PORT( en, select : IN STD_LOGIC ; A, B : IN STD_LOGIC_VECTOR(6 DOWNTO 0 ) ; Y : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) END aaa ; (4)ARCHITECTURE ar OF aaa ISBEGIN PROCESS(en, select ) BEGIN IF en=0 THEN Y=”ZZZZZZZ”; ELSIF en=1 THEN IF select=0 THEN Y=A; ELSIF select=1 THEN Y=B; END IF; END IF ; END PROCESS ;END ar ; (5)2. 试用VHDL语言编程实现一个M10计数器,要求该计数器有一个时钟输入端clk,一个复位端rst(低电平复位),一个使能端en(高电平时允许计数),一个“计数到”输出端cout,一个4位二进制当前计数值输出口q;cout端仅当计数满的一个时钟周期输出高电平,其余时刻全保持低电平。2. M10计数器参考程序:LIBRARY ieee; USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all; (1)ENTITY aaa IS PORT(clk, rst, en : IN STD_LOGIC; cout: OUT STD_LOGIC; q: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END aaa; (4)ARCHITECTURE bd OF aaa IS BEGIN PROCESS(clk,reset,en) BEGIN IF (rst=0) THEN q=0000; ELSIF (clkevent AND clk=1) THEN IF en=1 THEN IF (q=9) THEN q=0000; ELSE q=q+1; END IF; END IF; END IF; END PROCESS;END bd; (10)3请用VHDL语言编程,用一个状态机模型实现一个七段码LED字符发生器。该电路有一个复位输入端RST,一个时钟输入端CP,一组七段码输出端ag。在LED上七个段的排列位置如图所示。该电路的功能为,当复位输入端RST为低电平时,输出端口输出全零,无显示;当RST为高电平时,在时钟信号CP的每个上升沿,输出端依次轮流输出5个字符“HAPPY”的七段码(共阴极接法),周而复始。 3. 用VHDL语言编程实现一个LED字符发生器参考程序:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY genc IS(1) PORT( rst, cp: IN STD_LOGIC; a,b,c,d,e,f,g: OUT STD_LOGIC );(1)END genc;ARCHITECTURE aa OF genc IS TYPE state IS(s0,s1, s2, s3, s4, s5 ); SIGNAL pstate: state; SIGNAL dout: STD_LOGIC_VECTOR(6 DOWNTO 0 ); (2)BEGIN pr1: PROCESS(cp, rst,) BEGIN IF rst=0 THEN pstate pstate pstate pstate pstate pstate pstate pstate dout dout dout dout dout dout dout=0000000;-无显示 END CASE; END PROCESS; (5) a=dout(6); b=dout(5); c=dout(4); d=dout(3); e=dout(2); f=dout(1); g=dout(0);END aa; (1)2试用VHDL语言和进程语句,编程实现一个3-8译码器。该译码器的功能为,当使能信号EN为低电平时,输出端Y7Y0全为高电平(没有输出端被选中);当EN为高电平时,每一种ABC的输入状态组合能惟一地选中一路输出(被选中的端输出低电平)。真值表如下:输 入输 出ABCENY7Y6Y5Y4Y3Y2Y1Y0000111111110001111111101010111111011011111110111100111101111101111011111110110111111111101111111011111111 LIBRARY ieee; USEieee.std_logic_1164.ALL;2ENTITYym38IS1PORT(a, b, c, en:INstd_logic; y:OUTstd_logic_vector(7 DOWNTO 0 );3);ENDym38; ARCHITECTUREarc38OFls273IS1BEGINPROCESS ( en )1SIGNALdin:std_logic_vector(7 DOWNTO 0 );1BEGINdin=a&b&c&en; 1WITHdinSELECTy=”11111110”WHEN“0001”;”11111101”WHEN“0011”;”11111011”WHEN“0101”;”11110111”WHEN“0111”;”11101111”WHEN“1001”;”11011111”WHEN“1011”;”10111111”WHEN“1101”;”01111111”WHEN“1111”;5”11111111”WHENOTHERS;ENDPROCESS;ENDarc38;1. 试用VHDL语言编程实现一个多路开关。该电路的功能为,当选择端S0和S1为不同状态组合时,如果使能信号EN为电平,输出端X和Y分别与不同的输入通道A0B0、A1B1、A2B2和A3B3接通并保持,当EN为低电平时,X、Y输出为高阻态。真值表如下:输 入输 出S1S0ENA0B0A1B1A2B2A3B3XY001A0B0011A1B1101A2B2111A3B30ZZ1. 多路开关的参考程序如下:LIBRARY ieee; USEieee.std_logic_1164.ALL;ENTITYmulkeyISPORT(s0,s1,en, a0,b0,a1,b1,a2,b2,a3,b3:INstd_logic; x,y:OUTstd_logic_vector(7 DOWNTO 0 );3);ENDmulkey; ARCHITECTUREarmkOFmulkeyISSIGNAL sel: std_logic_vecter (1 DOWNTO 0 )BEGIN sel=s1&s0; 2PROCESS (en )BEGINIF (en=0)THENx=Z;y=Z; ELSEIF (sel=”00”) THEN x=a0 ;y=b0; ELSEIF (sel=”01”) THEN x=a1 ;y=b1; ELSEIF (sel=”10”) THEN x=a2;y=b2; ELSEIF (sel=”11”) THEN x=a3 ;y0) ; -计数器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF EN = 1 THEN -检测是否允许计数(同步使能) IF CQI 0); -大于9,计数值清零 END IF; END IF; END IF; IF CQI = 9 THEN COUT = 1; -计数大于9,输出进位信号 ELSE COUT = 0; END IF; CQ = CQI; -将计数值向端口输出 END PROCESS;END behav; 2.试描述一个带进位输入、输出的8位全加器端口:A、B为加数,CIN为进位输入,S为加和,COUT为进位输出LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDER8 ISPORT (A, B : IN STD_LOGIC_VECTOR (7 DOWNTO 0); CIN : IN STD_LOGIC; COUT : OUT STD_LOGIC; S : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END ADDER8;ARCHITECTURE ONE OF ADDER8 ISSIGNAL TS : STD_LOGIC_VECTOR (8 DOWNTO 0);BEGINTS = (0 & A) + (0 & B) + CIN;S = TS(7 DOWNTO 0);COUT = TS(8);END ONE;七、VHDL程序设计:(20分)设计一数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。(a) 用if语句。 (b) 用case 语句。 (c) 用when else 语句。Library ieee;Use ieee.std_logic_1164.all;Entity mymux isPort (sel : in std_logic_vector(1 downto 0);- 选择信号输入Ain, Bin : in std_logic_vector(1 downto 0);- 数据输入Cout : out std_logic_vector(1 downto 0) );End mymux;Architecture one of mymux isBeginProcess (sel, ain, bin)BeginIf sel = “00” then cout = ain and bin; Elsif sel = “01” then cout = ain xor bin;Elsif sel = “10” then cout = not ain;Else cout cout cout cout cout = not bin;End case;End process;End two;Architecture three of mymux isBeginCout LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL ; END CASE ; END PROCESS ; END ; 关于数据选择器饿设计1、4选1多路选择器的IF语句描述library ieee;use ieee.std_logic_1164.all;entity multiplexers_1 isport (a, b, c, d : in std_logic;s : in std_logic_vector (1 downto 0);o : out std_logic);end multiplexers_1;architecture archi of multiplexers_1 isbeginprocess (a, b, c, d, s)beginif (s = 00) th
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 检验科实验室生物安全培训试题(含答案)
- 药物警戒知识考试题及答案
- 事业单位考试试题题库(含答案)
- 氯化工艺操作证考试模拟题附答案
- 钢铁产业绿色制造与2025年产能布局优化市场趋势研究报告
- 管理学基础知识考试练习题及答案
- 低压电器课件
- 人工搬运培训课件
- 低压电力安全知识培训课件
- 2025年足外科皮内、皮下注射理论考核试题(附答案)
- 中国历史地理概况智慧树知到期末考试答案章节答案2024年复旦大学
- 越野赛道计划书
- DR002012 NE系列路由器路由协议故障处理 ISSUE 1.00
- 幻觉妄想的护理诊断及护理
- 2024年福建泉州水务集团有限公司招聘笔试参考题库附带答案详解
- 社区团购团长起号流程
- 安徽省高速公路施工标准化指南
- 国网超市化招标评标自动计算表(区间复合平均价法)
- GB/T 21218-2023电气用未使用过的硅绝缘液体
- 2023电赛综合测评报告
- 公开招聘事业单位工作人员政审表
评论
0/150
提交评论