您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 2014年PLD习题集(含参考答案)数字系统设计
第1章习题1.1名词解释PROMCPLDFPGAASICJTAG边界扫描FPGA/CPLD编程与配置逻辑综合PALEDAGALIP-COREISPASICRTLFPGASOPCCPLDIP-CORESOC和SOPCEDA/CAD1.2现代EDA技术的特点有哪些?采用HDL描述、自顶向下、开放标准、具有完备设计库1.3什么是Top-down设计方式?(P4)1.4数字系统的实现方式有哪些?各有什么优缺点?74LS系列/4000系列常规逻辑门设计:设计难度大、调试复杂采用CPLD/FPGA等可编程器件来设计:用HDL描述、设计难度小、调试仿真方便,开发费用低,但单位成本较高,适合小批量应用专用集成电路设计:设计掩模成本高,适合大批量应用1.5什么是IP复用技术?IP核对EDA技术的应用和发展有什么意义?(P5)IP可重复使用的一种功能设计,可节省设计时间、缩短开发周期,避免重复劳动为大规模SOC设计提供开发基础、和开发平台。1.6用硬件描述语言设计数字电路有什么优势?优势:可进行行为级、RTL级、门级多层面对电路进行描述、可功能仿真时序分析,与工艺无关。1.8基于FPGA/CPLD的数字系统设计流程包括哪些步骤?(P8图1.7)1.9什么是综合?常用的综合工具有哪些?HDLRTL门级网表的描述转换过程ALTERA:MAX-PLUSII,Quartus,Xilinx:ISE,Lattice:ispLERVER1.10功能仿真与时序仿真有什么区别?功能仿真不考虑器件延时,而时序分析必须考虑在不同器件中的物理信号的延时1.11数字逻辑设计描述分哪几个层级,各有什么特点。1.12、为何任意组合逻辑电路可用通用的与阵列、或阵列组合来实现。可表示为布尔代数方程,由乘积项的和表示1.13FPGA与CPLD在实现方式或内部结构上的主要区别查表、与或阵列1.14VerilogHDL与计算机程序设计语言主要区别(描述并行电路行为或结构、描述的串行指令流)1.15简述“逻辑综合”功能作用。1.16数字系统描述有哪些层级,各有什么特点,用硬件描述语言设计数字电路有什么优势?第2章习题2.1从器件的或阵列编程结构角度看,PROM、PLA、PAL、GAL在结构上有什么区别?2.2说明PAL、GAL的输出单元有何特点,它怎样实现可编程组合电路和时序电路?PAL、GAL输出单元都有一个触发器,实现组合逻辑时触发器被旁路掉,实现时序单路是则从触发器输出信号。2.3简述基于乘积项的可编程逻辑器件的结构特点?PAL、GAL是乘积项可编程,或阵列固定的PLD器件,送到或门的乘积项是固定的,大大简化了器件设计算法2.4基于查找表的可编程逻辑结构的原理是什么?P31文字解释2.5基于乘积项和基于查找表的结构各有什么优缺点?基于乘积项的适合用于设计一些逻辑型电路、电路规模较小而基于查找表结构适合设计数据型电路,电路规模较大,用于逻辑型电路设计会有延时不确定等问题。2.6CPLD和FPGA在结构上有什么明显的区别,各有什么特点?CPLD是基于乘积项可编程的,适合用于设计一些逻辑型电路、电路规模较小FPGA是基于查表的,适合设计数据型大规模系统2.7FPGA器件中的存储器块有何作用?FPGA存储器用于存储每种逻辑输入对应的需要输出逻辑真值表。2.8简要说明JTAG边界扫描概念及作用。2.9简述FPGA配置、CPLD编程概念及其异同点。第3章习题3-1基于QuartusII软件,用D触发器设计一个2分频电路,并做波形仿真,在此基础上,设计一个4分频和8分频电路,做波形仿真。3-2基于QuartusII软件,用7490设计一个能计时(12小时)、计分(60分)和计秒(60秒)的简单数字钟电路。设计过程如下:(1)先用QuartusII的原理图输入方式,用7490连接成包含进位输出的模60的计数器,并进行仿真,如果功能正确,则将其生成一个部件;(2)将7490连接成模12的计数器,进行仿真,如果功能正确,也将其生成一个部件;(3)将以上两个部件连接成为简单的数字钟电路,能计时、计分和计秒,计满12小时后系统清0重新开始计时。(4)在实现上述功能的基础上可以进一步增加其它功能,比如校时功能,能随意调整小时、分钟信号,增加整点报时功能等。3-3基于QuartusII软件,用74161设计一个模99的计数器,个位和十位都采用8421BCD码的编码方式设计,分别用置0和置1两种方法实现,完成原理图设计输入、编译、仿真和下载整个过程。3-4基于QuartusII软件,用7490设计一个模71计数器,个位和十位都采用8421BCD码的编码方式设计,完成原理图设计输入、编译、仿真和下载整个过程。3-5基于QuartusII,用74283(4位二进制全加器)设计实现一个8位全加器,并进行综合和仿真,查看综合结果和仿真结果3-6基于QuartusII,用74194(4位双向移位寄存器)设计一个“00011101”序列产生器电路,进行编译和仿真,查看仿真结果。3-7基于QuartusII软件,用D触发器和适当的门电路实现一个输出长度为15的m序列产生器,进行编译和仿真,查看仿真结果。第4章习题4.1用Verilog设计一个8位加法器,并进行综合和仿真,查看综合结果和仿真结果。4.2用Verilog设计一个8位计数器,并进行综合和仿真,查看综合结果和仿真结果。第5章习题5.1下列标识符哪些是合法的,哪些是错误的?Cout,8sum,\a*b,_data,\wait,initial,$latch5.2下列数字的表示是否正确?6'd18,'Bx0,5'b0x110,'da30,10'd2,'hzF5.3reg型与wire型变量有什么本质区别5.4wire型变量没有驱动其值为多少5.5reg型初始值一般为多少5.6定义如下的变量和常量:(1)定义一个名为count的整数;integercount;(2)定义一个名为ABUS的8位wire总线;wire[7:0]ABUS;(3)定义一个名为address的16位reg型变量,并将该变量的值赋为十进制数128;reg[15:0]address;address=16’d128;(4)定义参数Delay_time,参数值为8;parameterDelay_time=8;(5)定义一个名为DELAY的时间变量;integerDELAY;(6)定义一个32位的寄存器MYREG;reg[31:0]MYREG;(7)定义一个容量为128,字长为32位的存储器MYMEM;reg[32-1:0]MYREG[128];5.8.举例列出Verilog整数(Integer)2进制、8进制、16进制常量。P1235.9net型数据类型有哪些?wiretri5.10给出reg型、和integer型变量Variable定义示例程序(p126)5.11Verilog向量与标量的定义wirea;wire[3:0]b;第6章习题6.1试编写求补码的Verilog程序,输入是带符号的8位二进制数。modulenegCode(out,in);outputreg[7:0]out;reg[7:0]a;inputwire[7:0]in;integeri;always@(in[0]orin[1]orin[2]orin[3]orin[4]orin[5]orin[6]orin[7])beginif(in[7])beginfor(i=0;i7;i++)a[i]=~in[i];a[7]=in[7];out=a+1;endelseout=in;endendmodule6.2试编写两个四位二进制数相减的Verilog程序。(参考P175,例7.18)6.3有一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否则为0。试编写出Verilog程序。(参考P147,例6.13)6.4用CASE语句试编写一个表决电路,同意为输入1,不同意输入0,同意过半数(=5)表决通过亮绿灯,不通过亮红灯。(P149,例6.16)6.5简述wire变量基本语法定义及用途(第6章)6.6简述阻塞性赋值与非阻塞型赋值的区别(P163、6.8节)6.7解释说明下列代码中的always、case语句的语法及所描述行为(P138例6.1)modulemux4_1(out,in0,in1,in2,in3,sel);outputout;inputin0,in1,in2,in3;input[1:0]sel;regout;always@(in0orin1orin2orin3orsel)//敏感信号列表case(sel)2'b00:out=in0;2'b01:out=in1;2'b10:out=in2;2'b11:out=in3;default:out=2'bx;endcaseendmodule6.8解释说明下列代码中的posedge和negedge关键字的作用和基本功能。modulecount(out,data,load,reset,clk);//8位同步置数、同步清零的计数器模块output[7:0]out;input[7:0]data;inputload,clk,reset;reg[7:0]out;always@(posedgeclk)//clk上升沿触发beginif(!reset)out=8'h00;//同步清0,低电平有效elseif(load)out=data;//同步预置elseout=out+1;//计数endendmodule6.9用波形图和文字解释说明下列两段代码中的赋值语句行为的细微差别(参考P163,例6.33、6.34)非阻塞赋值modulenon_block(c,b,a,clk);outputc,b;inputclk,a;regc,b;always@(posedgeclk)beginb=a;c=b;endendmodule阻塞赋值moduleblock(c,b,a,clk);outputc,b;inputclk,a;regc,b;always@(posedgeclk)beginb=a;c=b;endendmodule6.10解释说明下列代码所描述的7人表决器详细功能及实现方法(参考P153循环语句)modulevoter7(pass,vote);outputpass;input[6:0]vote;reg[2:0]sum;integeri;regpass;always@(vote)beginsum=0;for(i=0;i=6;i=i+1)//for语句if(vote[i])sum=sum+1;if(sum[2])pass=1;elsepass=0;endendmodule6.11名词解释敏感信号VerilogDHL语言中的标量与向量数字电路状态机并发块串行块第六章补充6.12注解下列每行代码,并给出其逻辑功能描述moduleAAA(a,b);outputa;input[6:0]b;reg[2:0]sum;integeri;rega;always@(b)beginsum=0;for(i=0;i=6;i=i+1)if(b[i])sum=sum+1;if(sum[2])a=1;elsea=0;endendmodule6.13简要说明仿真时阻塞赋值与非阻塞赋值的区别。6.14举例说明VerilogDHL语言中的标量与向量定义及作用。6.15数字系统描述有哪些层级,各有什么特点,用硬件描述语言设计数字电路有什么优势?6.16在VerilogHDL中哪些类型语句是并发执行的?6.17VerilogHDL与计算机程序设计语言主要区别。6.18在VerilogHDL中的哪些类型语句是顺序执行的?6.19注解说明下列每行代码的功能作用,并分析整个模块基本功能modulecount(out,data,load,reset,clk);output[7:0]out;input[7:0]data;inputload,clk,reset;reg[7:0]out;always@(posedgeclk)beginif(!
本文标题:2014年PLD习题集(含参考答案)数字系统设计
链接地址:https://www.777doc.com/doc-5093017 .html