EDA技术项目教程-基于VHDL与FPGA .习题答案_第1页
EDA技术项目教程-基于VHDL与FPGA .习题答案_第2页
EDA技术项目教程-基于VHDL与FPGA .习题答案_第3页
EDA技术项目教程-基于VHDL与FPGA .习题答案_第4页
EDA技术项目教程-基于VHDL与FPGA .习题答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE8部分习题答案项目11.(1)CADESDA(2)复杂可编程逻辑器件现场可编程门阵列片上系统(3)VHDLVerilog-HDL(4)自动选择(5)编译(6)设计输入设计校验(7)管脚锁定(8)原理图输入法文本输入法(9)前仿真(10)后仿真2.(1)C(2)A(3)B(4)B(5)A(6)B(7)D(8)A(9)B(10)B3.(1)×(2)√(3)√(4)×(5)√(6)×(7)×5.4位奇检验器6.三人表决器的逻辑表达式:。原理图如图D-1所示。图D-1三人表决器原理图7.供电控制电路的逻辑表达式:。原理图如图D-2所示。图D-2供电控制电路原理图8.2位二进制数据的大小比较器原理图如图D-3所示。图D-32位二进制数据的大小比较器原理图项目2(1)FPGA(2)不会丢失会丢失(3)可编程逻辑器件(4)反熔丝静态存储器(5)bsf(6)零最大值最大值2.(1)D(2)D(3)C(4)C(5)C4.电路实现的逻辑功能是“4选1”数据选择器,其中A1和A0为数据选择端、D0~D3为数据输入端、Y为数据输出端。5.逻辑功能是1位二进制数据全减器。6.逻辑表达:项目31.(1)实体结构体程序包实体结构体(2)IEEE(3)结构行为(4)INOUTINOUTBUFFER(5)单引号(6)字母(7)常量变量信号(8)局部量(9)选择器(10)编码普通优先2.(1)D(2)D(3)A(4)D(5)A(6)D(7)C(8)D(9)C(10)B4.(1)ENTITYARCHITECTURE(2)1SEL"11"5.程序设计的是“8选1”数据选择器,其中d7~d0为数据输入端、s2~s0为数据选择端、y为数据输出端。当s2s1s0=000时,d0数据被选中,输出y=d0;当s2s1s0=001时,d1数据被选中,输出y=d1;依此类推。6.參考程序如下。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYlogicfISPORT(a,b,c,d:INSTDLOGIC;y:OUTSTDLOGIC);ENDlogicf;ARCHITECTUREdeOFlogicfISBEGINy<=(aANDb)OR(cXORd);ENDde;项目4(1)并行(2)在其范围内(3)阴极(4)低电平高电平(5)视觉暂留(1)A(2)C(3)B(4)A(5)B3.存在的错误:(1)缺少STD_LOGIC_UNSIGNED程序包;(2)q:OUTBIT_VECTOR(7DOWNTO0););第一个;多余;(3)PROCESS中缺少BEGIN(4)缺少ENDIF;语句4.程序设计的是4位二进制数据大小比较器,其中A和B是2个4位二进制数据,当A>B时,输出端GT=1;A<B时,输出端LT=1;A=B时,输出端EQ=1。5.设4位BCD码输入端为D、7位输出端为S,实体名为SDISP。参考程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSDISPISPORT(D:INSTD_LOGIC_VECTOR(3DOWNTO0);S:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDSDISP;ARCHITECTUREAOFSDISPISBEGINPROCESS(D)BEGINCASEDISWHEN"0000"=>S<="1111110";--0WHEN"0001"=>S<="0110000";--1WHEN"0010"=>S<="1101101";--2WHEN"0011"=>S<="1111001";--3WHEN"0100"=>S<="0110011";--4WHEN"0101"=>S<="1011011";--5WHEN"0110"=>S<="1011111";--6WHEN"0111"=>S<="1110000";--7WHEN"1000"=>S<="1111111";--8WHEN"1001"=>S<="1111011";--9WHEN"1010"=>S<="1110111";--AWHEN"1011"=>S<="0011111";--bWHEN"1100"=>S<="1001110";--CWHEN"1101"=>S<="0111101";--dWHEN"1110"=>S<="1001111";--EWHEN"1111"=>S<="1000111";--FWHENOTHERS=>S<="0000000";ENDCASE;ENDPROCESS;ENDA;设译码输入端为d、使能端为g1、g2和g3,译码输出端为y,实体名为decode38。参考程序如下。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdecode38ISPORT(g1,g2,g3:INSTD_LOGIC;d:INSTD_LOGIC_VECTOR(2DOWNTO0);y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdecode38;ARCHITECTUREaOFdecode38ISBEGINPROCESS(d,g1,g2,g3)BEGINIF(g1='1'ANDg2='0'ANDg3='0')THENCASEdISWHEN"000"=>y<="11111110";WHEN"001"=>y<="11111101";WHEN"010"=>y<="11111011";WHEN"011"=>y<="11110111";WHEN"100"=>y<="11101111";WHEN"101"=>y<="11011111";WHEN"110"=>y<="10111111";WHEN"111"=>y<="01111111";WHENOTHERS=>y<="11111111";--其他情况输出全1ENDCASE;ELSEy<="11111111";ENDIF;ENDPROCESS;ENDa;7.设时钟脉冲输入端为CLK、异步清零端为CLR、同步置数端为LDN、计数使能端为EN、置数数据输入端为D、计数输出端为Q、进位端为COUT,实体名为CNT6。参考程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT6ISPORT(CLK,CLRN,ENA,LDN:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(3DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);--进位端ENDCNT6;ARCHITECTUREoneOFCNT6ISSIGNALTEMPQ:STD_LOGIC_VECTOR(3DOWNTO0):="0000";BEGINPROCESS(CLK,CLRN,ENA,LDN)BEGINIFCLRN='0'THENTEMPQ<="0000";ELSIFCLK'EVENTANDCLK='1'THENIFLDN='0'THENTEMPQ<=D;ELSEIFENA='1'THENIFTEMPQ<5THENTEMPQ<=TEMPQ+1;ELSETEMPQ<="0000";ENDIF;ENDIF;ENDIF;ENDIF;Q<=TEMPQ;ENDPROCESS;COUT<=NOT(TEMPQ(0)ANDTEMPQ(2));ENDone;8.设时钟脉冲输入端为CLK、按键输入端KEYIN、扫描信号输入端为SCAN、数字按键输出端为DATAOUT、功能按键输出端为FUNOUT,实体名为SCANJP44。参考程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSCANJP44ISPORT(CLK:INSTD_LOGIC;KEYIN:INSTD_LOGIC_VECTOR(3DOWNTO0);--译码线输入端SCAN:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--扫描线输出端DATAOUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--数字按键输出FUNOUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0));--功能按键输出ENDENTITYSCANJP44;ARCHITECTUREARTOFSCANJP44ISSIGNALCNT:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALD,F:STD_LOGIC_VECTOR(3DOWNTO0);--数字、功能按键译码值寄存器SIGNALZ:STD_LOGIC_VECTOR(5DOWNTO0);--扫描得到的键码BEGINPROCESS(CLK)--产生扫描信号CNTBEGINIFCLK'EVENTANDCLK='1'THENIFCNT="11"THENCNT<="00";ELSECNT<=CNT+'1';ENDIF;ENDIF;ENDPROCESS;SCAN<="1110"WHENCNT="00"ELSE"1101"WHENCNT="01"ELSE"1011"WHENCNT="10"ELSE"0111"WHENCNT="11"ELSE"1111";PROCESS(CLK,CNT,KEYIN)BEGINZ<=CNT&KEYIN;--连接扫描信号和译码信号--数字按键译码IFCLK'EVENTANDCLK='1'THENCASEZISWHEN"001011"=>D<="0000";--0WHEN"110111"=>D<="0001";--1WHEN"111011"=>D<="0010";--2WHEN"111101"=>D<="0011";--3WHEN"100111"=>D<="0100";--4WHEN"101011"=>D<="0101";--5WHEN"101101"=>D<="0110";--6WHEN"010111"=>D<="0111";--7WHEN"011011"=>D<="1000";--8WHEN"011101"=>D<="1001";--9WHENOTHERS=>D<="1111";ENDCASE;ENDIF;--功能按键译码IFCLK'EVENTANDCLK='1'THENCASEZISWHEN"111110"=>F<="0000";--功能键F0WHEN"101110"=>F<="0001";--功能键F1WHEN"011110"=>F<="0010";--功能键F2WHEN"001110"=>F<="0011";--功能键F3WHEN"001101"=>F<="0100";--功能键F4WHEN"000111"=>F<="0101";--功能键F5WHENOTHERS=>F<="1111";ENDCASE;ENDIF;ENDPROCESS;DATAOUT<=D;--连接管脚FUNOUT<=F;ENDARCHITECTUREART;项目51.(1)偶数分频半整数分频(2)二进制移位寄存器(3)高阻状态循环左移循环右移(5)并行语句(6)位置映射名称映射(7)共阳极共阴极(8)取字模3.BEGINk='1'tmp<=NOTtmpENDIF4.设时钟脉冲输入端为CLK、复位端为CLR、输出选择端为CHOSE、输出端口为CLKOUT、文件名为SXBLOCK。设CHOSE=0时,输出6分频;CHOSE=1时,输出4分频。参考程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSXBLOCKISPORT(CHOSE:INSTD_LOGIC;CLR,CLK:INSTD_LOGIC;CLKOUT:OUTSTD_LOGIC);ENDENTITYSXBLOCK;ARCHITECTUREARTOFSXBLOCKISSIGNALTEMPCLK:STD_LOGIC;BEGINPROCESS(CLK,CLR,CHOSE)ISVARIABLETEMP:STD_LOGIC_VECTOR(2DOWNTO0);BEGINIFCLR='1'THENTEMPCLK<='0';TEMP:="000";ELSIFRISING_EDGE(CLK)THENIFCHOSE='1'THENIFTEMP="001"THEN--计数到(N/2)-1(N=4)就清零TEMP:="000";TEMPCLK<=NOTTEMPCLK;ELSETEMP:=TEMP+'1';ENDIF;ELSEIFTEMP="010"THEN--计数到(N/2)-1(N=6)就清零TEMP:="000";TEMPCLK<=NOTTEMPCLK;ELSETEMP:=TEMP+'1';ENDIF;ENDIF;ENDIF;ENDPROCESS;CLKOUT<=TEMPCLK;ENDARCHITECTUREART;参考程序如下。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcomjkISPORT(mj,mk,mCLK,mclr,mprn,men:INSTD_LOGIC;mq:OUTSTD_LOGIC);ENDcomjk;ARCHITECTUREaOFcomjkISCOMPONENTjkffe--元件声明语句PORT(j,k,clrn,prn,ena:INSTD_LOGIC;CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDCOMPONENT;BEGINexam:JKFFEPORTMAP(j=>mj,k=>mk,CLK=>mCLK,clrn=>mclr,prn=>mprn,ena=>men,q=>mq);ENDa;项目61.(1)顺序语句进程(2)函数(3)包首包体(4)结构体程序包顺序语句取值范围(6)未知已知(7)存储器(8)数量位数(9)队列式读写(10)ROM2.程序设计的是8个二输入端与门电路,其中ABIN7~ABIN0和DIN7~DIN0为8个与门的输入端、DOUT7~DOUT0为输出端。3.参考程序如下。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYOJIAOYANISPORT(a:INSTD_LOGIC_VECTOR(4DOWNTO0);y:OUTSTD_LOGIC);ENDOJIAOYAN;ARCHITECTUREOUOFOJIAOYANISBEGINabc:PROCESS(a)VARIABLEtmp:STD_LOGIC;--tmp为局部变量,只能在进程中定义BEGINtmp:='1';FORiIN0TO4LOOP--循环变量i由循环语句自动定义tmp:=tmpXORa(i);ENDLOOP;--缺省了循环标号y<=tmp;ENDPROCESSabc;ENDOU;4.设数据输入端为DATAIN、数据输出端为DATAOUT、读地址为RADDR、写地址为WADDR、读控制线为RE、写控制线为WE,实体名为SRAM16

温馨提示

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

评论

0/150

提交评论