2014年PLD习题集(含参考答案)数字系统设计

更新时间:2024-05-13 18:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章习题 1.1 名词解释

PROM CPLD FPGA ASIC

JTAG边界扫描 FPGA/CPLD编程与配置 逻辑综合

PAL EDA GAL IP-CORE ISP ASIC RTL FPGA SOPC CPLD IP-CORE SOC和SOPC EDA/CAD 1.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 什么是综合?常用的综合工具有哪些?

HDL?RTL?门级?网表的描述转换过程

ALTERA:MAX-PLUSII,Quartus, Xilinx:ISE , Lattice: ispLERVER

1.10 功能仿真与时序仿真有什么区别?

功能仿真不考虑器件延时,而时序分析必须考虑在不同器件中的物理信号的延时

1.11 数字逻辑设计描述分哪几个层级,各有什么特点。

1.12、为何任意组合逻辑电路可用通用的与阵列、或阵列组合来实现。

可表示为布尔代数方程,由乘积项的和表示 1.13 FPGA与CPLD在实现方式或内部结构上的主要区别

查表、与或阵列

1.14 VerilogHDL与计算机程序设计语言主要区别

(描述并行电路行为或结构、描述的串行指令流)

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.6 CPLD和FPGA在结构上有什么明显的区别,各有什么特点?

CPLD是基于乘积项可编程的,适合用于设计一些逻辑型电路、电路规模较小 FPGA是基于查表的,适合设计数据型大规模系统

2.7 FPGA器件中的存储器块有何作用?

FPGA存储器用于存储每种逻辑输入对应的需要输出逻辑真值表。 2.8简要说明JTAG边界扫描概念及作用。

2.9 简述FPGA配置、CPLD编程概念及其异同点。

第3章习题

3-1 基于Quartus II软件,用D触发器设计一个2分频电路,并做波形仿真,在此基础上,设计一个4分频和8分频电路,做波形仿真。

3-2 基于Quartus II软件,用7490设计一个能计时(12小时)、计分(60分)和计秒(60秒)的简单数字钟电路。设计过程如下:

(1)先用Quartus II的原理图输入方式,用7490连接成包含进位输出的模60的计数器,并进行仿真,如果功能正确,则将其生成一个部件;

(2)将7490连接成模12的计数器,进行仿真,如果功能正确,也将其生成一个部件; (3)将以上两个部件连接成为简单的数字钟电路,能计时、计分和计秒,计满12小时后系统清0重新开始计时。

(4)在实现上述功能的基础上可以进一步增加其它功能,比如校时功能,能随意调整小时、分钟信号,增加整点报时功能等。

3-3 基于Quartus II软件,用74161设计一个模99的计数器,个位和十位都采用8421BCD码的编码方式设计,分别用置0和置1两种方法实现,完成原理图设计输入、编译、仿真和下载整个过程。

3-4 基于Quartus II软件,用7490设计一个模71计数器,个位和十位都采用8421BCD码的编码方式设计,完成原理图设计输入、编译、仿真和下载整个过程。

3-5 基于Quartus II,用74283(4位二进制全加器)设计实现一个8位全加器,并进行综合和仿真,查看综合结果和仿真结果 3-6 基于Quartus II,用74194(4位双向移位寄存器)设计一个“00011101”序列产生器电路,进行编译和仿真,查看仿真结果。 3-7 基于Quartus II软件,用D触发器和适当的门电路实现一个输出长度为15的m序列产生器,进行编译和仿真,查看仿真结果。

第4章习题

4.1 用Verilog设计一个8位加法器,并进行综合和仿真,查看综合结果和仿真结果。 4.2 用Verilog设计一个8位计数器,并进行综合和仿真,查看综合结果和仿真结果。

第5章习题

5.1 下列标识符哪些是合法的,哪些是错误的?

Cout, 8sum, \\a*b, _data, \\wait, initial, $latch 5.2 下列数字的表示是否正确?

6'd18, 'Bx0, 5'b0x110, 'da30, 10'd2, 'hzF 5.3 reg型与wire型变量有什么本质区别

5.4 wire型变量没有驱动其值为多少 5.5 reg型初始值一般为多少 5.6 定义如下的变量和常量:

(1)定义一个名为count的整数; integer count; (2)定义一个名为ABUS的8位wire总线; wire[7:0] ABUS;

(3)定义一个名为address的16位reg型变量,并将该变量的值赋为十进制数128; reg[15:0] address; address<=16’d128; (4)定义参数Delay_time, 参数值为8;

parameter Delay_time =8;

(5)定义一个名为DELAY的时间变量; integer DELAY;

(6)定义一个32位的寄存器MYREG; reg[31:0] MYREG;

(7)定义一个容量为128,字长为32位的存储器MYMEM; reg[32-1:0] MYREG[128];

5.8 .举例列出Verilog整数(Integer)2进制、8进制、16进制常量。 P123

5.9 net型数据类型有哪些? wire tri

5.10 给出reg型、和integer型变量Variable定义示例程序

(p126)

5.11 Verilog向量与标量的定义 wire a; wire[3:0] b;

第6章习题

6.1 试编写求补码的Verilog程序,输入是带符号的8位二进制数。 module negCode(out,in); output reg[7:0] out; reg[7:0] a;

input wire[7:0] in; integer i;

always @(in[0]or in[1] or in[2]or in[3] or in[4]or in[5] or in[6]or in[7]) begin

if(in[7]) begin

for(i=0;i<7;i++) a[i]=~in[i]; a[7]=in[7]; out=a+1; end

else out=in; end endmodule

6.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) module mux4_1(out,in0,in1,in2,in3,sel); output out;

input in0,in1,in2,in3; input[1:0] sel; reg out;

always @(in0 or in1 or in2 or in3 or sel) //敏感信号列表 case(sel) 2'b00: out=in0; 2'b01: out=in1; 2'b10: out=in2; 2'b11: out=in3; default: out=2'bx; endcase endmodule

6.8 解释说明下列代码中的posedge和negedge关键字的作用和基本功能。 module count(out,data,load,reset,clk); //8位同步置数、同步清零的计数器模块 output[7:0] out; input[7:0] data; input load,clk,reset; reg[7:0] out;

always @(posedge clk) //clk上升沿触发 begin

if(!reset) out=8'h00; //同步清0,低电平有效 else if(load) out=data; //同步预置 else out=out+1; //计数 end endmodule

6.9用波形图和文字解释说明下列两段代码中的赋值语句行为的细微差别 (参考P163,例6.33、6.34) 非阻塞赋值

module non_block(c,b,a,clk); output c,b; input clk,a; reg c,b;

always @(posedge clk) begin b<=a;

其他补充练习题 填空

1.写出数值为11011011b的二进制Verilog整数常量表达式: 。 2.用Verilog定义一标量a: 。

3.定义一个容量为128,字长为32位的存储器MYMEM: 。 4.写出数值为110011b的二进制Verilog整数常量表达式: 。 5.可编程器件分为 和 。 6.可编程器件分为 和 。

7.把变量a值菲阻塞性赋值给变量b语句为: 。 8.把变量a值阻塞性赋值给变量b语句为: 。 9.若某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always @( )。

10.可编程器件分为 和 。 11.定义参数Delay_time, 参数值为8: 。 12.定义一个32位的寄存器MYREG: 。

13.定义一个容量为128,字长为32位的存储器MYMEM: 。

14.用EDA技术进行电子系统设计的目标是最终完成 的设计与实现。 15.早期电子系统设计多基于通用的中小规模集成电路元件库,设计方法多采用自底向上的设计方法,而随着EDA技术的不断完善与成熟,

的设计方法更多的被应用。

16.若某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always @( )。

17.定义一个名为address的16位reg型变量,并将该变量的值赋为十进制数128: 。

18.定义一个名为DELAY的时间变量: 。 19.用Verilog定义一位宽为4的向量b: 。

20.早期电子系统设计多基于通用的中小规模集成电路元件库,设计方法多采用自底向上的设计方法,而随着EDA技术的不断完善与成熟,

的设计方法更多的被应用。 选择

1.下列标识符中,___ ____是合法,____ ___是错误的? A Cout B 8sum C \\a*b D _data E \\wait, F initial G $latch

2.下列数字的表达式中,______ _是正确的,___ ____是错误的? A 6'd18 B 'Bx0 C 5'b0x110, D 'da30, E 10'd2, F 'hzF 3.下列标识符中,__________是不合法的标识符。 A.9moon B.State0 C. Not_Ack_0 D. signall 4. reg[7:0] mema[255:0]正确的赋值是(A )

A、mema[5]=3’ d0, B、8’ d0; C、1’ b1; D、mema[5][3:0]=4’ d1 5. “a=4’ b11001,b=4’ bx110”选出正确的运算结果(B ) A、a&b=0 B、a&&b=1 C、b&a=x D、b&&a=x

6. aways begin #5 clk=0;#10 clk=~clk;end产生的波形( A ) A、占空比1/3 B、clk=1 C、clk=0 D、周期为10

7. 下列标示符哪些是合法的(B )

A、$time B、_date C、8sum D、mux#

8. 现网中的值被解释为无符号数。在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是( A )

A、4’b1101 B、4’b0011 C、4’bxx11 D、4’bzz11

9. 若a=9,执行$display(“current value= ,a=”,a,a)正确显示为(B ) A、current value=1001,a=09 B、current vale=1001,a=9

C、1001,9 D、current vale=00…001001,a=9 10. reg[7:0] mema[255:0]正确的赋值是(A )

A、mema[5]=3’ d0, B、8’ d0; C、1’ b1; D、mema[5][3:0]=4’ d1

11.基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→ 综合→(___ __)→( )→适配→编程下载→硬件测试。 A功能仿真 B 时序仿真 C逻辑综合 D配置 E分配管脚 12.下列语句中,不属于并行语句的是:_______

A.过程语句 B.assign语句 C.元件例化语句 D.case语句 13. 在Verilog中定义了宏名 `define sum a+b+c 下面宏名引用正确的是(C) A、out=’sum+d; B、out=sum+d; C、out=`sum+d; D、都正确 14. 如果线网类型变量说明后未赋值,起缺省值是(D ) A、x B、1 C、0 D、z

15. 如果线网类型变量说明后未赋值,起缺省值是(D ) A、x B、1 C、0 D、z

16.大规模可编程器件主要有 FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是( )。

A.FPGA全称为复杂可编程逻辑器件

B.FPGA是基于乘积项结构的可编程逻辑器件

C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置 D.在Altera公司生产的器件中,MAX7000系列属FPGA结构 17.下列语句中,不属于并行语句的是:_______

A.过程语句 B.assign语句 C.元件例化语句 D.case语句 18.下列标识符中,__________是不合法的标识符。 A.9moon B.State0 C. Not_Ack_0 D. signall 19.下列标识符中,___ ____是合法,____ ___是错误的? A Cout B 8sum C \\a*b D _data E \\wait, F initial G $latch

20.下列数字的表达式中,______ _是正确的,___ ____是错误的? A 6'd18 B 'Bx0 C 5'b0x110, D 'da30, E 10'd2, F 'hzF

本文来源:https://www.bwwdw.com/article/6nc7.html

Top