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

发布时间 : 星期六 文章2014年PLD习题集(含参考答案)数字系统设计更新完毕开始阅读d64430c6804d2b160a4ec003

出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;

c<=b; end endmodule 阻塞赋值

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

always @(posedge clk) begin b=a; c=b; end endmodule

6.10 解释说明下列代码所描述的7人表决器详细功能及实现方法(参考P153循环语句) module voter7(pass,vote); output pass; input[6:0] vote;

reg[2:0] sum;integer i;reg pass; always @(vote) begin sum=0;

for(i=0;i<=6;i=i+1) //for语句 if(vote[i]) sum=sum+1; if(sum[2]) pass=1; else pass=0; end endmodule 6.11 名词解释

敏感信号 VerilogDHL语言中的标量与向量 数字电路状态机 并发块 串行块

第六章补充

6.12 注解下列每行代码,并给出其逻辑功能描述

module AAA ( a ,b ); output a ; input [6:0] b ; reg[2:0] sum; integer i; reg a ; always @ (b) begin sum = 0; for(i = 0;i<=6;i = i+1)

if(b[i])

sum = sum+1;

if(sum[2]) a = 1;

else a = 0;

end

endmodule

6.13简要说明仿真时阻塞赋值与非阻塞赋值的区别。

6.14 举例说明VerilogDHL语言中的标量与向量定义及作用。

6.15 数字系统描述有哪些层级,各有什么特点,用硬件描述语言设计数字电路有什么优势?

6.16 在VerilogHDL中哪些类型语句是并发执行的? 6.17 VerilogHDL与计算机程序设计语言主要区别。 6.18 在VerilogHDL中的哪些类型语句是顺序执行的?

6.19注解说明下列每行代码的功能作用,并分析整个模块基本功能

module count(out,data,load,reset,clk); output[7:0] out; input[7:0] data; input load,clk,reset; reg[7:0] out; always @(posedge clk) begin if(!reset) out=8'h00; else if(load) out=data; else out=out+1; end endmodule

第7章习题

7.1 Verilog支持哪几种描述方式,各有什么特点?(结构、数据流、行为) 7.2 分别用结构描述和行为描述方式设计一个基本的D触发器,并进行综合。 7.3 分别用结构描述和行为描述方式设计一个JK触发器,并进行综合。 7.4 试编写同步模5计数器程序,有进位输出和异步复位端。(参考最后一次实验四) 7.5 编写4位串/并转换程序。(参考P183页) 7.6 编写4位并/串转换程序。(参考P183页) 7.7 编写4位除法电路程序。

7.8 举例说明门级描述代码设计方法(参考第7章例子) 7.9 举例说明行为描述代码设计方法(参考第7章例子) 7.10 举例说明数据流描述代码设计方法(参考第7章例子) 7.11 用VerilogHDL描述下图所示的组合逻辑电路

7.12 给出描述D触发器代码和逻辑图描述

7.13给出2输入多路选择器的码描述逻辑符号。

module MUX2(outf, ina, inb, sel); output outf;

input ina, inb, sel;

assign outf = sel ? inb : ina; endmodule

7.14 给出出下列代码所描述的电路功能,并画出其逻辑框。

module voter7(pass,vote); output pass; input[6:0] vote; reg[2:0] sum;

integer i;reg pass; always @(vote) begin

sum=0;

for(i=0;i<=6;i=i+1) /

if(vote[i]) sum=sum+1; if(sum[2]) pass=1; else pass=0;

end endmodule endmodule

第8章习题

8.1 用状态机设计一个带同步复位的十进制计数器,并写出测试程序。(参考最后一次实验四)

8.2 设计实现一个功能类似74LS160的电路。 8.3 设计一个可预置的16进制计数器,并仿真。 8.4 设计一个“1101”序列检测器。

8.5 用Verilog编写一个用7段数码管交替显示26个英文字母的程序,自己定义字符的形状。 8.6 设计一个乐曲演奏电路,实现乐曲“铃儿响叮当”的循环演奏,可将音符数据存于ROM模块中。

8.7 在实现第6题的基础上增加曲目,在同一个ROM模块中装上多首歌曲,可手动或自动选择歌曲。

8.8 设计实现一个简易电子琴,敲击不同的按键可发出相应的音调,同时将音符显示在数码管上。