译码器的设计_第1页
译码器的设计_第2页
译码器的设计_第3页
译码器的设计_第4页
译码器的设计_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

word文档可自由复制编辑译码器的设计architecturedec_behaveofe1isSignalsel:std_logic_vector(0to3);beginsel(0)<=en;sel(1)<=a(0);sel(2)<=a(1);sel(3)<=a(2);withselselecty<="00000001"when"1000","00000010"when"1001","00000100"when"1010","00001000"when"1011","00010000"when"1100","00100000"when"1101","01000000"when"1110","10000000"when"1111","00000000"whenothers;enddec_behave;编码器的设计libraryIEEE;entityencoder83isport(ind:instd_logic_vector(7downto0);outd:outstd_logic_vector(2downto0));end;architecturebehaveofencoder83isbeginprocess(ind)beginifind(7)=‘1'thenoutd<="111";elsifind(6)=‘1'thenoutd<="110";elsifind(5)=‘1'thenoutd<="101";elsifind(4)=‘1'thenoutd<="100";elsifind(3)=‘1'thenoutd<="011";elsifind(2)=‘1'thenoutd<="010";elsifind(1)=‘1'thenoutd<="001";elsifind(0)=‘1'thenoutd<="000";elseoutd<="000";endif;endprocess;endbehave;数据选择器的设计LIBRARYIEEE;……;ENTITYE3ISPORT(A,B,C,D:INSTD_LOGIC_VECTOR(3DOWNTO0);S:INSTD_LOGIC_VECTOR(0TO1);Z:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTURECONC_BEHAVEOFE3ISBEGINZ<=AWHENS="00"ELSEBWHENS="01"ELSECWHENS="10"ELSEDWHENS="11"ELSE"0000";ENDCONC_BEHAVE;比较器:设计八位比较器,相等时输出为1,否则输出为0libraryieee;entitycompareisport(a,b:instd_logic_vector(7downto0); y:outstd_logic);endcompare;architecturebehaveofcompareisbeginprocesss(a,b)Beginif(a=b)theny<='1';elsey<='0';endif;endprocess;endbehave;求补器:求补器的输入信号为a(7..0),输出信号为b(7..0),设a(7)和b(7)为符号位。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycomplementisport(a:instd_logic_vector(7downto0);b:outstd_logic_vector(7downto0));endcomplement;architecturebehaveofcomplementisbeginprocess(a)beginif(a(7)='0')thenb<=a; elseb<='1'&(nota(6downto0)+'1');endif;endprocess;endbehave;单向总线缓冲器的设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYe7ISport(enable:INSTD_LOGIC;datain:INSTD_LOGIC_VECTOR(7DOWNTO0);dataout:OUTSTD_LOGIC_VECTOR(7DOWNTO0));END;ARCHITECTUREbhvOFe7ISBEGINPROCESS(enable,datain)BEGINIFenable='1'THENdataout<=datain;ELSEdataout<="ZZZZZZZZ";ENDIF;ENDPROCESS;ENDbhv;双向总线缓冲器的设计libraryieee;……ENTITYe8ISport(en,dr:instd_logic;a,b:inoutstd_logic_vector(7downto0));END;ARCHITECTUREbhvOFe8ISsignalaout,bout:std_logic_vector(7downto0);beginprocess(a,en,dr)BEGINif((en='0')and(dr='1'))thenbout<=a;elsebout<="ZZZZZZZZ";endif;b<=bout;ENDprocess;process(b,en,dr)BEGINif((en='0')and(dr='0'))thenaout<=b;elseaout<="ZZZZZZZZ";endif;a<=aout;ENDprocess;ENDbhv;同步复位信号的VHDL描述:process(复位信号名,时钟信号名)begin if(时钟信号变化条件)then if(复位信号变化条件)then 状态复位语句; else 顺序语句; endif; endif;endprocess;异步复位信号的VHDL描述:process(复位信号名,时钟信号名)begin if(复位信号变化条件)then 状态复位语句; elsif(时钟信号变化条件)then 顺序语句; endif;endprocess;8D锁存器使能信号en=1时,数据锁存,否则数据保持。libraryieee;……;entityd_latchisport(en:instd_logic;d:instd_logic_vector(7downto0);q:outstd_logic_vector(7downto0));endd_latch;architecturebehaveofd_latchisbeginprocess(en,d)begin ifen='1'thenq<=d; endif;endprocess;endbehave;设计四位D触发器,具有异步清零CLR和置位PRN、同步使能EN控制功能。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsh1isPORT(CLK,CLR,PRN,EN:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(3DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREaOFsh1ISBEGINPROCESS(CLR,PRN,CLK,EN)BEGINIFCLR='1'THENQ<=(OTHERS=>'0');ELSIFPRN='1'THENQ<=(OTHERS=>'1');ELSIFRISING_EDGE(CLK)THENIFEN='1'THEN Q<=D;ENDIF;ENDIF;ENDPROCESS;ENDa;设计4bit的移位寄存器,具有左移一位或右移一位,并行输入和同步复位的功能。Library……;entityshifterisport(data:instd_logic_vector(3downto0);left_da,right_da,reset,clk:instd_logic;mode:instd_logic_vector(1downto0);qout:bufferstd_logic_vector(3downto0));endshifter;architecturebehaveofshifterisbeginprocessbegin waituntilrising_edge(clk); if(reset='1')then qout<="0000"; else casemodeiswhen“01”=>qout<=right_da&qout(3downto1);when"10"=>qout<=qout(2downto0)&left_da;when"11"=>qout<=data;whenothers=>null;endcase;endif;endprocess;endbehave;60进制计数器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycout60_visport(clrn,ldn,en,clk:instd_logic;da :instd_logic_vector(3downto0);db :instd_logic_vector(2downto0);qa:outstd_logic_vector(3downto0);qb:outstd_logic_vector(2downto0);rco:outstd_logic);endcout60_v;architectureaofcout60_visbeginprocess(clk)variabletmpa:std_logic_vector(3downto0);variabletmpb:std_logic_vector(2downto0);begin ifclrn='0'thentmpb:="000";tmpa:="0000";elseif(clk'eventandclk='1')thenifldn='0'thentmpa:=da;tmpb:=db;elsifen='1'theniftmpa="1001"then tmpa:="0000";iftmpb="101"thentmpb:="000";elsetmpb:=tmpb+1;endif;elsetmpa:=tmpa+1;endif;endif;endif;endif;qa<=tmpa;qb<=tmpb;rco<=tmpb(0)andtmpb(2)andtmpa(0)andtmpa(3)anden;endprocess;enda;用D触发器构成四位移位寄存器。entityshiftisport(sin,clk:inbit;sout:outbit);endshift;architecturenetlist1ofshiftiscomponentdff--元件说明 port(d,clk:inbit;q:outbit);endcomponent;signalz:bit_vector(0to4);beginz(0)〈=sin;gf:foriin0to3generateu1:dffportmap(z(i),clk,z(i+1));endgenerate;sout〈=z(4);endnetlist1;EDA試卷答案一、单项选择题1、2.基于EDA软件的FPGA/CPLD设计流程为:原理图/HDL文本输入→__A__→综合→适配→____B____→编程下载→硬件测试。A.功能仿真 B.时序仿真C.逻辑综合 D.配置3.IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为__A___。A.软IP B.固IPC.硬IP D.全对4.综合是EDA设计流程的关键步骤,在下面对综合的描述中,_____D____是错误的。A.综合就是把抽象设计层次中的一种表示转化成另一种表示的过程。B.综合就是将电路的高级语言转化成低级的,可与FPGA/CPLD的基本结构相映射的网表文件。C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。D.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的)。5.大规模可编程器件主要有FPGA、CPLD两类,其中CPLD通过___A__实现其逻辑功能。A.可编程乘积项逻辑 B.查找表(LUT)C.输入缓冲 D.输出缓冲6.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述__B___。A.器件外部特性 B.器件的内部功能C.器件外部特性与内部功能 D.器件的综合约束7.电子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);下列方法中___A___不属于面积优化。A.流水线设计 B.资源共享C.逻辑优化 D.串行化8.进程中的信号赋值语句,其信号更新是___B____。A.立即完成 B.在进程的最后完成C.按顺序完成 D.都不对9.不完整的IF语句,其综合结果可实现__A__。A.时序逻辑电路B.组合逻辑电路C.双向电路 D.三态控制电路10.状态机编码方式中,其中__A__占用触发器较多,但其简单的编码方式可减少状态译码组合逻辑资源,且易于控制非法状态。A.一位热码编码 B.顺序编码C.状态位直接输出型编码 D.格雷码编码二、VHDL程序填空1.下面程序是1位十进制计数器的VHDL描述,试补充完整。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCNT10;ARCHITECTUREbhvOFCNT10ISSIGNALQ1:STD_LOGIC_VECTOR(3DOWNTO0);BEGIN PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THEN --边沿检测IFQ1>10THEN Q1<=(OTHERS=>'0'); --置零 ELSE Q1<=Q1+1; --加1 ENDIF; ENDIF; ENDPROCESS; Q<=Q1;ENDbhv;2.下面是一个多路选择器的VHDL描述,试补充完整。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYbmuxIS PORT( sel:INSTD_LOGIC; A,B:INSTD_LOGIC_VECTOR(7DOWNTO0); Y :OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDbmux;ARCHITECTUREbhvOFbmuxISBEGIN y<=Awhensel='1'ELSEB;ENDbhv;四、阅读下列VHDL程序,画出原理图(RTL级)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYHADIS PORT( a:INSTD_LOGIC; b:INSTD_LOGIC; c:OUTSTD_LOGIC; d:OUTSTD_LOGIC );ENDENTITYHAD;ARCHITECTUREfh1OFHADISBEGIN c<=NOT(aNANDb); d<=(aORb)AND(aNANDb);ENDARCHITECTUREfh1;五、请按题中要求写出相应VHDL程序带计数使能的异步复位计数器输入端口: clk 时钟信号rst 异步复位信号en 计数使能load 同步装载data (装载)数据输入,位宽为10输出端口: q 计数输出,位宽为10LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT1024IS PORT( CLK,RST,EN,LOAD :INSTD_LOGIC; DATA:INSTD_LOGIC_VECTOR(9DOWNTO0); Q:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDCNT1024;ARCHITECTUREONEOFCNT1024ISBEGINPROCESS(CLK,RST,EN,LOAD,DATA)VARIABLEQ1:STD_LOGIC_VECTOR(9DOWNTO0); BEGIN IFRST='1'

温馨提示

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

评论

0/150

提交评论