Verilog-教程(第三版)夏闻宇-第三部分练习题答案

合集下载

《Verilog数字系统设计教程》夏宇闻第四版思考题答案(第2章)

《Verilog数字系统设计教程》夏宇闻第四版思考题答案(第2章)

《Verilog数字系统设计教程》夏宇闻第四版思考题答案(第2章)1.Verilog语⾔有什么作⽤?可描述顺序执⾏和并⾏执⾏的程序结构;⽤延迟表达式或事件表达式来明确的控制过程的启动时间;通过命名的事件来触发其它过程⾥的激活⾏为或停⽌⾏为;提供了条件如if-else,case等循环程序结构;提供了可带参数且⾮零延续时间的任务程序结构;提供了可定义新的操作符的函数结构;提供了⽤于建⽴表达式的算术运算符,逻辑运算符,位运算符;Verilog HDL语⾔作为⼀种结构化的语⾔⾮常适⽤于门级和开关级的模型设计;提供了⼀套完整的表⽰组合逻辑的基本元件的原话;提供了双向通路和电阻器件的原话;可建⽴MOS器件的电荷分享和电荷衰减动态模型;Verilog HDL的构造性语句可以精确地建⽴信号的模型;2.构成模块的关键词是什么?module,endmodule。

3.为什么说可以⽤Verilog构成⾮常复杂的电路结构?因为Verilog可描述顺序执⾏和并⾏执⾏的程序结构;⽤延迟表达式或事件表达式来明确的控制过程的启动时间;通过命名的事件来触发其它过程⾥的激活⾏为或停⽌⾏为;提供了条件如if-else,case等循环程序结构;提供了可带参数且⾮零延续时间的任务程序结构;提供了可定义新的操作符的函数结构;提供了⽤于建⽴表达式的算术运算符,逻辑运算符,位运算符;Verilog HDL语⾔作为⼀种结构化的语⾔⾮常适⽤于门级和开关级的模型设计;提供了⼀套完整的表⽰组合逻辑的基本元件的原话;提供了双向通路和电阻器件的原话;可建⽴MOS器件的电荷分享和电荷衰减动态模型Verilog HDL的构造性语句可以精确地建⽴信号的模型;4.为什么可以⽤⽐较抽象的描述来设计具体的电路结构?因为有可以⽤⽐较抽象描述设计电路结构的语⾔,⽽这种语⾔是适合数字系统设计的语⾔。

5.是否任意抽象的符合语法的Verilog模块都可以通过综合⼯具转变为电路结构?不能。

夏宇闻Verilog教程逻辑部分71页PPT

夏宇闻Verilog教程逻辑部分71页PPT
夏宇闻Verilog教程逻辑部分
36、“不可能”这个字(法语是一个字 ),只 在愚人 的字典 中找得 到。--拿 破仑。 37、不要生气要争气,不要看破要突 破,不 要嫉妒 要欣赏 ,不要 托延要 积极, 不要心 动要行 动。 38、勤奋,机会,乐观是成功的三要 素。(注 意:传 统观念 认为勤 奋和机 会是成 功的要 素,但 是经过 统计学 和成功 人士的 分析得 出,乐 观是成 功的第 三要素 。

27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰

28、知之者不如好之者,好之者不如的决心能够抵得上武器的精良。——达·芬奇

30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
71
39、没有不老的誓言,没有不变的承 诺,踏 上旅途 ,义无 反顾。 40、对时间的价值没有没有深切认识 的人, 决不会 坚韧勤 勉。

26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭

Verilog HDL 数字设计与综合 夏宇闻 课后习题答案 章

Verilog HDL 数字设计与综合 夏宇闻 课后习题答案 章
答:module MEM; endmodule
module SC; endmodule
module Xbar; endmodule
module IS; MEM mem1; SC sc1; Xbar xbar1; endmodule
module TOP; IS is1; endmodule
2.一个四位脉动进位加法器由 4 个一位全加器组成。 a.定义模块 FA。不需要定义模块内容和端口列表。 b.定义模块 Ripple_Add,不需要定义模块内容和端口列表。在模块中调用 4 个 FA 类型的全 加器,把它们分别命名为 fa0,fa1,fa2 和 fa3。
数 3;
c.一个名为 count 的整数;
d.一个名为 snap_shot 的时间变量;
e.一个名为 delays 的数组,该数组中包含 20 个 integer 类型的元素;
f.含有 256 个字的存储器 MEM,每个字的字长为 64 位;
g.一个值为 512 的参数 cache_size。
答:定义如下:
endmodule
module test52; reg x,y; wire z;
initial beຫໍສະໝຸດ inx<=0;y<=0; #10 x<=0;y<=1; #10 x<=1;y<=0; #10 x<=1;y<=1; #10 $stop; end
my_xor myxor(x,y,z);
endmodule
a.system1 b.1reg c.$latch d.exec$
42
Verilog HDL 数字设计与综合(第二版)
答:a 是合法的;b、c 不能以 1 和$开头;d 是合法的。

VerilogHDL复习题与答案

VerilogHDL复习题与答案

VerilogHDL硬件描述语言复习一、1. Verilog HDL 是在哪一年首次被I E E E标准化的?答:Verilog HDL是在1995年首次被IEEE标准化的。

2. Verilog HDL支持哪三种基本描述方式?答:Verilog HDL可采用三种不同方式或混合方式对设计建模。

这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模3. Verilog HDL 是由哪个公司最先开发的?答:Verilog HDL是由Gateway Design Automation公司最先开发的4. Verilog HDL中的两类主要数据类型什么?答:线网数据类型和寄存器数据类型。

线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。

5. U D P代表什么?答:UDP代表用户定义原语6. 写出两个开关级基本门的名称。

答:pmos nmos7.写出两个基本逻辑门的名称。

答:and or8.在数据流描述方式中使用什么语句描述一个设计?答:设计的数据流行为使用连续赋值语句进行描述9. 采用结构描述方式描述1位全加器。

答:module full_add(a,b,cin,s,co);input a,b,cin;output s,co;wire S1,T1,T2,T3;xorX1(S1,a,b),X2(s,S1,cin);andA1(T3,a,b),A2(T2,b,cin),A3(T1,a,cin);orO1(co,T1,T2,T3);endmodule10. i n i t i a l语句与always 语句的关键区别是什么?答: 1) initial语句:此语句只执行一次。

2) always语句:此语句总是循环执行, 或者说此语句重复执行。

11.采用数据流方式描述2 - 4译码器。

答:'timescale 1ns/nsmodule Decoder2×4(A,B,EN,Z);input A,B,EN;output [0:3]Z;wire abar,Bbar;assign #1 Abar=~A;assign #1 Bbar=~B;assign #2 Z[0]=~(Abar&Bbar&EN);assign #2 Z[1]=~(Abar&B&EN);assign #2 Z[2]=~(A&Bbar&EN);assign #2 Z[3]=~(A&B&EN);endmodule1 2. 找出下面连续赋值语句的错误。

夏宇闻verilog设计示范和上机习题

夏宇闻verilog设计示范和上机习题

设计示范和上机习题练习一.简单的组合逻辑设计//(方法一)://---------------文件名compare.v -----------------module compare(equal,a,b);input a,b;output equal;assign equal = (a==b)? 1 : 0;//a等于b时,equal输出为1;a不等于b时,equal输出为0。

endmodule//(方法二):module compare(equal,a,b);input a,b;output equal;reg equal;always @(a or b)if(a==b) //a等于b时,equal输出为1;equal =1;else //a不等于b时,equal输出为0。

equal = 0; //思考:如果不写else 部分会产生什么逻辑?endmodule//-------------------------------------------------------------//----------测试模块源代码(方法之一):`timescale 1ns/1ns // 定义时间单位。

`include "./compare.v" //包含模块文件。

在有的仿真调试环境中并不需要此语句。

//而需要从调试环境的菜单中键入有关模块文件的路径和名称module t;reg a,b;wire equal;initial // initial常用于仿真时信号的给出。

begina=0;b=0;#100 a=0; b=1;#100 a=1; b=1;#100 a=1; b=0;#100 a=0; b=0;#100 $stop; //系统任务,暂停仿真以便观察仿真波形。

endcompare m(.equal(equal),.a(a),.b(b)); //调用被测试模块t.mendmodule//---------- 测试模块源代码(方法之二):-------------------------`timescale 1ns/1ns // 定义时间单位。

Verilog教程第三版夏闻宇第三部分练习题答案

Verilog教程第三版夏闻宇第三部分练习题答案

1. 设计一个字节(8位)的比较器,要求:比较两个字节的大小,如a [7:0]大于b [7:0],则输出高电平,否则输出低电平;并改写测试模型,使其能进行比较全面的测试。

模块源代码: 测试模块的源代码:仿真结果:由图有:当a=8'01100101,b=8'00010010(即a>b 时),输出out 为高电平;当a=8'00000001,b=8'00001101(即a<b 时),输出out 为低电平,故满足要求。

2.依然作clk_in 的2分频clk_out ,要求输出时钟的相位与上面的1/2分频器的输出正好相反。

编写测试模块,给出仿真波形。

书上1/2分频器时序波形`timescale 1ns / 1ps module t; reg [7:0] a; reg [7:0] b;reg clock; wire out; initial begin a = 0;b = 0; clock=0; end always #50 clock=~clock; always @(posedge module compare(out,a,b ); input [7:0] a,b; output out; reg out; always @(a or b) begin if(a>b) out=1; else out=0; end endmodule模块源代码:测试模块源代码:仿真波形:由上图可知clk_out的输出波形相位与前面输出波形相反。

3. 利用10 MHZ的时钟,设计一个单周期形状的周期波形。

分析:时钟信号f=10MHZ,分频1/20,f1=500KHZ时,j从0计到9(10个数)跳转完成半个周期,T0/2 =0.1us;图中可把T分为三段即T1=T3=20us=200*0.1us(所以在T1阶段j要计200个数),而T2=10us可用延迟10000ns翻转达到。

图中T=50us之后不显示,所以测试时到达50000ns时停止。

verilog数字系统设计教程习题答案

verilog数字系统设计教程习题答案

verilog数字系统设计教程习题答案verilog数字系统设计教程习题答案第二章1.Verilog HDL 既是一种行为描述语言,也是一种结构描述语言。

如果按照一定的规则和风格编写代码,就可以将功能行为模块通过工具自动转化为门级互联的结构模块。

这意味着利用Verilog语言所提供的功能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计。

2.模块的基本结构由关键词module和endmodule构成。

3.一个复杂电路系统的完整Verilog HDL模型是由若干个Verilog HDL模块构成的,每一个模块又可以由若干个子模块构成。

其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。

利用Verilog HDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。

4.Verilog HDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的结构和行为、支持逻辑设计中层次与领域的描述、可借用高级语言的精巧结构来简化电路的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去)、便于文档管理、易于理解和设计重用。

5.不是6.将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

7.综合工具可以把HDL变成门级网表。

这方面Synopsys工具占有较大的优势,它的Design Compile是作为一个综合的工业标准,它还有另外一个产品叫Behavior Compiler,可以提供更高级的综合。

另外最近美国又出了一个软件叫Ambit,据说比Synopsys的软件更有效,可以综合50万门的电路,速度更快。

今年初Ambit被Cadence公司收购,为此Cadence 放弃了它原来的综合软件Synergy。

eda技术实用教程-veriloghdl答案

eda技术实用教程-veriloghdl答案

eda技术实用教程-veriloghdl答案【篇一:eda技术与vhdl程序开发基础教程课后答案】eda的英文全称是electronic design automation2.eda系统设计自动化eda阶段三个发展阶段3. eda技术的应用可概括为4.目前比较流行的主流厂家的eda软件有、5.常用的设计输入方式有原理图输入、文本输入、状态机输入6.常用的硬件描述语言有7.逻辑综合后生成的网表文件为 edif8.布局布线主要完成9.10.常用的第三方eda工具软件有synplify/synplify pro、leonardo spectrum1.8.2选择1.eda技术发展历程的正确描述为(a)a cad-cae-edab eda-cad-caec eda-cae-cadd cae-cad-eda2.altera的第四代eda集成开发环境为(c)a modelsimb mux+plus iic quartus iid ise3.下列eda工具中,支持状态图输入方式的是(b)a quartus iib isec ispdesignexpertd syplify pro4.下列几种仿真中考虑了物理模型参数的仿真是(a)a 时序仿真b 功能仿真c 行为仿真d 逻辑仿真5.下列描述eda工程设计流程正确的是(c)a输入-综合-布线-下载-仿真b布线-仿真-下载-输入-综合c输入-综合-布线-仿真-下载d输入-仿真-综合-布线-下载6.下列编程语言中不属于硬件描述语言的是(d)a vhdlb verilogc abeld php1.8.3问答1.结合本章学习的知识,简述什么是eda技术?谈谈自己对eda技术的认识?答:eda(electronic design automation)工程是现代电子信息工程领域中一门发展迅速的新技术。

2.简要介绍eda技术的发展历程?答:现代eda技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。

《EDA技术与Verilog HDL》PPT第3版 第3章 行为语句

《EDA技术与Verilog HDL》PPT第3版 第3章 行为语句
3.4.10 关注if语句中的条件指示
3.5 过程赋值语句
(1)阻塞式赋值。 (2)非阻塞式赋值。
3.6 循环语句
3.6.1 for 语句
3.6 循环语句
3.6.1 for 语句
3.6 循环语句
3.6.2 while语句
3.6 循环语句
3.6.3 repeat语句
3.6.4 forever循环
3.7 任务与函数语句
1.任务(task)语句
3.7 任务与函数语句
1.任务(task)语句
3.7 任务与函数语句
2.函数(function)语句
3.7 任务与函数语句
2.函数(function)语句
习题
习题
图3-4 4位加法计数器工作时序
3.1 过程语句
3.1.4 简单加法计数器及其Verilog表述
图3-5 4位加法计数器RTL电路图
3.1 过程语句
3.1.5 initial语句
3.2 块语句
3.3 case条件语句
3.3 case条件语句
图3-6 例3-6 的RTL图
3.4 if条件语句
3.4 if条件语句
3.4.8 实用加法计数器设计
Байду номын сангаас
3.4 if条件语句
3.4.8 实用加法计数器设计
3.4 if条件语句
3.4.8 实用加法计数器设计
3.4 if条件语句
3.4.9 含同步预置功能的移位寄存器设计
3.4 if条件语句
3.4.10 关注if语句中的条件指示
3.4 if条件语句
3.4.1 if 语句的一般表述形式
3.4 if条件语句
3.4.2 基于if语句的组合电路设计

编译原理(第3版)课本习题答案

编译原理(第3版)课本习题答案

第二章 高级语言及其语法描述6.(1)L (G 6)={0,1,2,......,9}+(2)最左推导:N=>ND=>NDD=>NDDD=>DDDD=>0DDD=>01DD=>012D=>0127 N=>ND=>DD=>3D=>34N=>ND=>NDD=>DDD=>5DD=>56D=>568 最右推导:N=>ND =>N7=>ND7=>N27=>ND27=>N127=>D127=>0127 N=>ND=>N4=>D4=>34N=>ND=>N8=>ND8=>N68=>D68=>5687.【答案】G:S →ABC | AC | CA →1|2|3|4|5|6|7|8|9B →BB|0|1|2|3|4|5|6|7|8|9C →1|3|5|7|98.(1)最左推导:E=>E+T=>T+T=>F+T=>i+T=>i+T*F=>i+F*F=>i+i*F=>i+i*iE=>T=>T*F=>F*F=>i*F=>i*(E)=>i*(E+T)=>i*(T+T)=>i*(F+T)=>i*(i+T)=>i*(i+F)=>i*(i+i) 最右推导:E=>E+T=>E+T*F=>E+T*i=>E+F*i=>E+i*i=>T+i*i=>F+i*i=>i+i*iE=>T=>T*F=>T*(E)=>T*(E+T)=>T*(E+F)=>T*(E+i)=>T*(T+i)=>T*(F+i)=>T*(i+i)=>F*(i+i)=>i*(i+i) (2)9.证明:该文法存在一个句子iiiei 有两棵不同语法分析树,如下所示,因此该文法是二义的。

verilog-hdl答案

verilog-hdl答案

verilog-hdl答案第1章简介HDL是在哪一年首次被IEEE标准化的Verilog HDL是在1995年首次被IEEE标准化的。

HDL支持哪三种基本描述方式Verilog HDL可采用三种不同方式或混合方式对设计建模。

这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模3.可以使用Verilog HDL描述一个设计的时序吗Verilog HDL可以清晰的建立时序模型,故可以使用Verilog HDL 描述一个设计的时序。

4.语言中的什么特性能够用于描述参数化设计,在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述,而且能够使用门和模块实例化语句在结构级进行结构描述,这种特性可用于描述参数化设计。

5.能够使用Verilog HDL编写测试验证程序吗能,可以编写testbench来对编写的程序进行验证。

HDL是由哪个公司最先开发的Verilog HDL是由Gateway Design Automation公司最先开发的HDL中的两类主要数据类型是什么线网数据类型和寄存器数据类型。

线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。

,代表什么UDP代表用户定义原语9.写出两个开关级基本门的名称。

pmos nmos10.写出两个基本逻辑门的名称。

and or第2章 HDL指南1. 在数据流描述方式中使用什么语句描述一个设计】设计的数据流行为使用连续赋值语句进行描述2. 使用` t i m e s c a l e 编译器指令的目的是什么举出一个实例。

使用编译指令将时间单位与物理时间相关联。

例如` timescale 1ns /100ps 此语句说明时延时间单位为1ns并且时间精度为100ps (时间精度是指所有的时延必须被限定在内)3. 在过程赋值语句中可以定义哪两种时延请举例详细说明。

数字电子技术基础第三版第三章答案

数字电子技术基础第三版第三章答案
在数字电路中,需要将数字量的代码经过译码,送到数字显示器显示。能把数字量翻译成数字显示器能识别的译码器称为数字显示译码器,常用的有七段显示译码器。
题3.10数据选择器和数据分配器各具有什么功能?若想将一组并行输入的数据转换成串行输出,应采用哪种电路?
答:数据选择器根据控制信号的不同,在多个输入信号中选择其中一个信号输出。数据分配器则通过控制信号将一个输入信号分配给多个输出信号中的一个。若要将并行信号变成串行信号应采用数据选择器。
(2)将函数F化为最简与或式,并用与非门实现之。
(3)若改用或非门实现,试写出相应的表达式。
解:(1)根据题图3.3(a)已知电路,写出函数F的表达式如下:
F=
(2)将函数F化简为最简与或表达式,并用与非门实现。
F=
根据与非表达式画出用与非门实现的电路如思考题3.2图(b)所示。
(3)若改用或非门实现,首先写出相应的表达式。
若用中规模集成电路MSI进行设计,没有固定的规则,方法较灵活。
无论是用SSI或MSI设计电路,关键是将实际的设计要求转换为一个逻辑问题,即将文字描述的要求变成一个逻辑函数表达式。
3.常用中规模集成电路的应用
常用中规模集成电路有加法器、比较器、编码器、译码器、数据选择器和数据分配器等,重要的是理解外部引脚功能,能在电路设计时灵活应用。
第三节习题题解
习题3.1组合电路的逻辑框图如习题3.1图(a)所示。电路要求如下:
(1)当变量A1A0表示的二进制数≥B1B0表示的二进制数时,函数F1=1,否则为0。
(2)当变量A1A0的逻辑与非 和变量B1B0的逻辑异或 相等时,函数F2为高电平,否则为0。
试设计此组合电路。
解:(1)根据题意确定输入变量为A1A0B1B0,输出变量为F1F2,如习题3.1图(a)。

Verilog教程-夏宇闻

Verilog教程-夏宇闻

16
3.2 Verilog HDL基本结构
Verilog HDL模块的模板(仅考虑用于逻辑综合的部分)
module <顶层模块名> (< 输入输出端口列表>) ; output 输出端口列表; input 输入端口列表; //(1)使用assign语句定义逻辑功能 wire 结果信号名; assign <结果信号名> = 表达式 ; //(2)使用always块定义逻辑功能 always @(<敏感信号表达式>) begin //过程赋值语句 //if语句 // case语句 // while,repeat,for循环语句 // task,function调用 end
“<=”非阻塞过程性赋值:将想要赋给左式的值安排在未来时刻。不等上一个赋值 完成执行下个赋值语句。 “=” 阻塞过程性赋值:按照顺序执行,前一个赋值结束才执行下边的赋值语句。

/ * …… * /内表示注释部分,一般可占据多行。 对编译不起作用!
10
多行注释符
3.2 Verilog HDL基本结构
模块元件例化——顶层模块(trist1)调用由某子模块 (mytri)定义的实例元件(tri_inst)来实现某功能。
12
3.2 Verilog HDL基本结构

Verilog HDL程序是由模块构成的。每个模块嵌套在module和 endmodule声明语句中。模块是可以进行层次嵌套的。 每个Verilog HDL源文件中只准有一个顶层模块,其他为子模块。 每个模块要进行端口定义,并说明输入输出端口,然后对模块的 功能进行行为逻辑描述。
第3章
硬件描述语言Verilog HDL
3.1 3.2 3.3 3.4 3.5 3.6 3.7 引言 Verilog HDL基本结构 数据类型及常量、变量 运算符及表达式 语句 赋值语句和块语句 条件语句

夏宇闻-第三章-verilogHDL基本语法习题

夏宇闻-第三章-verilogHDL基本语法习题

夏宇闻-第三章-verilogHDL基本语法习题难理解的习题:7)请根据以下两条语句,从选项中找出正确答案。

7.1) reg [7:0] A;A=2'hFF;1) 8'b0000_0011 2) 8'h03 3) 8'b1111_1111 4) 8'b11111111标准答案:1)7.2) reg [7:0] B;B=8'bZ0;1) 8'0000_00Z0 2) 8'bZZZZ_00003) 8'b0000_ZZZ0 4) 8'bZZZZ_ZZZ0标准答案:4)8)请指出下⾯⼏条语句中变量的类型。

8.1) assign A=B;8.2) always #1Count=C+1;标准答案:A(wire) B(wire/reg) Count(reg) C(wire/reg)9)指出下⾯模块中Cin,Cout,C3,C5,的类型。

module FADD(A,B,Cin,Sum,Cout);input A, B, Cin;output Sum, Cout;....endmodulemodule Test;...FADDM(C1,C2,C3,C4,C5);...endmodule标准答案:Cin(wire) Cout(wire/reg) C3(wire/reg) C5(wire)10〕在下⼀个程序段中,当ADDRESS的值等于5'b0X000时,问casex执⾏完后A和B的值是多少。

A=0;B=0;casex(ADDRESS)5'b00: A=1;5'b10?00,5'b11?00:beginA=1;B=1;endendcase标准答案: A=1 and B=0; casex的⽤法9)指出下⾯模块中Cin,Cout,C3,C5,的类型。

module FADD(A,B,Cin,Sum,Cout);input A, B, Cin;output Sum, Cout;....endmodulemodule Test;...FADDM(C1,C2,C3,C4,C5);...endmodule标准答案:Cin(wire) Cout(wire/reg) C3(wire/reg) C5(wire)10〕在下⼀个程序段中,当ADDRESS的值等于5'b0X000时,问casex执⾏完后A和B的值是多少。

Verilog练习参考答案

Verilog练习参考答案

一、问答题1、下面哪些是正确的用户定义的标识符?对错误的标识符,指出其错误的原因。

1)Help √2)2nd_item Χ,以数字2为首3)casex Χ,casex是verilog的关键字4)integer Χ,integer是verilog的关键字5)_na36me √6)$time Χ7)module Χ,modul是everilog的关键字8)‘xy_a Χ,不允许出现字符‘9)7tyr Χ,以数字7为首10)myex4 mp Χ,含有空格符2、定义如下的变量和常量1)32位的寄存器变量buf1 reg[31:0] buf1;2)整数age integer age ;3)容量为256单元、字长为16位的存储器memoryreg[15:0] memory[255:0] ;4)长度为32的向量buf2 reg[31:0] buf2 ;5)值为50的参数COUNT parameter COUNT=50 ;3、写出下列表达式的值1) (20==5) ? 8: (26>3) ? 3 : 9 3 2) 9/6 13)4’b0110&4’b1100 0100 4) 4’b0110&&4’b1100 15)4’b0011|4’b1100 1111 6)4’b0011||4’b1100 17) 9%6 3 8)4’b0111>>2 0001 9)4’b0111<<2 1100二、读程序,回答相关问题:1、module a1(a,b,sel,out) ;input [3:0] a,b ; input [1:0] sel ;output [3:0] out ;always @(a or b or sel)case (sel)2’b00 : out=a+b ;2’b01 : out=a ;2’b10 : out=b2’b11 : out=a-b ;endcase;endmodule若输入1)a=s’b0111 b=4’b0100 sel=2’b00 问输出out= 1011;2)a=s’b1011 b=4’b0100 sel=2’b01 问输出out= 1011;3)a=s’b1011 b=4’b0100 sel=2’b10 问输出out= 0100;4)a=s’b1011 b=4’b0100 sel=2’b11 问输出out= 0111 .2、’timescale 100ns/10nsmodule gete2( a,b,out) ;input a,b ;output out ; and # (10.46, 5.87) (z,a,b) ; nor # (9.49,5.37) (out,z,a) ; endmodule问:仿真时,当输入a 、b 从11变到01时,则输出out 如何变化?相对a 的变化,out 的变化延时多少时间? 延时1540ns3、module a2( clk,clr,set,a, z) ;input a,clk,clr ;output reg z ;reg[3:0] q ;always @(posedge clk or posedge clr)begin if (clr) q<=4’b0 ;else if (set) q<=4`hf ; else begin q<<1 ; q[0]<=a; endendassign z=q[3] ;endmodule试判断该逻辑电路的逻辑功能;若输入信号set 、clr 、clk 、a 的波形如下,试画出输出z 的波形。

Verilog_HDL试卷及答案

Verilog_HDL试卷及答案

reg [7:0] q=8‘b10000000;右边是最低位,q[0]~q[6]为0,q[7]为1q[7:0]<={q[0],q[7:1]}相当于一个循环右移操作,将q[0]的值赋给q[7],q[7]~q[1]依次向右移位一位。

根据前值8‘b10000000,第一个时钟周期后变为8‘b01000000;第二个时钟周期后变为8‘b00100000;类推。

第八个时钟周期后又回到q=8‘b10000000一、选择题:1、以下标示符哪些是合法的〔B 〕A、$timeB、_dateC、8sumD、mux#2、如果线网类型变量说明后未赋值,起缺省值是〔D 〕A、xB、1C、0D、z3、现网中的值被解释为无符号数。

在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是〔A 〕//补码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A、4’b1101B、4’b0011C、4’bxx11D、4’bzz114、reg[7:0] mema[255:0]正确的赋值是〔A 〕A、mema[5]=3’ d0,B、8’ d0;C、1’ b1;D、mema[5][3:0]=4’ d15、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是( D )module code(x,y); module top;paramee delay1=1,delay2=1; …………….………………………………code #(1,5) d1(x1,y1);endmodule endmoduleA、〔1,1〕B、〔5,5〕C、〔5,1〕D、〔1,5〕6、“a=4’ b11001,b=4’ bx110〞选出正确的运算结果〔B 〕A、a&b=0B、a&&b=1C、b&a=xD、b&&a=x7、时间尺度定义为timescale 10ns/100ps,选择正确答案〔C 〕A、时间精度10nsB、时间单位100psC、时间精度100psD、时间精度不确定8、假设a=9,执行$display(“current value=%0b,a=%0d〞,a,a)正确显示为〔B 〕//去除无效0A、current value=1001,a=09B、current vale=1001,a=9C、1001,9D、current vale=00…001001,a=99、always begin #5 clk=0;#10 clk=~clk;end产生的波形〔A 〕//5占15的1/3A、占空比1/3B、clk=1C、clk=0D、周期为1010、在Verilog中定义了宏名`define sum a+b+c 下面宏名引用正确的选项是〔C 〕//注意引用A、out=’sum+d;B、out=sum+d;C、out=`sum+d;D、都正确二、填空题:〔共15分,每题3分〕1、某一纯组合电路输入为in1,in2和in3,输入出为out,那么该电路描述中always的事件表达式应写为always@(in1,in2,in3 );假设某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always @( posedge clk )。

VerilogHDL复习题与答案

VerilogHDL复习题与答案

VerilogHDL硬件描述语言复习一、1. Verilog HDL 是在哪一年首次被I E E E标准化的?答:Verilog HDL是在1995年首次被IEEE标准化的。

2. Verilog HDL支持哪三种基本描述方式?答:Verilog HDL可采用三种不同方式或混合方式对设计建模。

这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模3. Verilog HDL 是由哪个公司最先开发的?答:Verilog HDL是由Gateway Design Automation公司最先开发的4. Verilog HDL中的两类主要数据类型什么?答:线网数据类型和寄存器数据类型。

线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。

5. U D P代表什么?答:UDP代表用户定义原语6. 写出两个开关级基本门的名称。

答:pmos nmos7.写出两个基本逻辑门的名称。

答:and or8.在数据流描述方式中使用什么语句描述一个设计?答:设计的数据流行为使用连续赋值语句进行描述9. 采用结构描述方式描述1位全加器。

答:module full_add(a,b,cin,s,co);input a,b,cin;output s,co;wire S1,T1,T2,T3;xorX1(S1,a,b),X2(s,S1,cin);andA1(T3,a,b),A2(T2,b,cin),A3(T1,a,cin);orO1(co,T1,T2,T3);endmodule10. i n i t i a l语句与always 语句的关键区别是什么?答: 1) initial语句:此语句只执行一次。

2) always语句:此语句总是循环执行, 或者说此语句重复执行。

11.采用数据流方式描述2 - 4译码器。

答:'timescale 1ns/nsmodule Decoder2×4(A,B,EN,Z);input A,B,EN;output [0:3]Z;wire abar,Bbar;assign #1 Abar=~A;assign #1 Bbar=~B;assign #2 Z[0]=~(Abar&Bbar&EN);assign #2 Z[1]=~(Abar&B&EN);assign #2 Z[2]=~(A&Bbar&EN);assign #2 Z[3]=~(A&B&EN);endmodule1 2. 找出下面连续赋值语句的错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Verilog-教程(第三版)夏闻宇-第三部分练习题答案
1.设计一个字节(8位)的比较器,要求:比较两个字节的大小,如a[7:0]大于b[7:0],则输出高电平,否则输出低电平;并改写
测试模型,使其能进行比Array较全面的测试。

模块源代码:
测试模块的源代码:
仿真结果:
由图有:当a=8'01100101,b=8'00010010(即a>b时),输出out为高电平;当a=8'00000001,b=8'00001101(即a<b时),输出out为低电平,故满足要求。

2.依然作clk_in的2分频clk_out,要求输出时钟的相位与上面的1/2分频器的输出正好相反。

编写测试模块,给出仿真波形。

书上1/2分频器时序波形
模块源代码:测试模块源代码:
仿真波形:
由上图可知clk_out的输出波形相位与前面输出波形相反。

3. 利用10 MHZ的时钟,设计一个单周期形状的周期波形。

分析:时钟信号f=10MHZ,分频1/20,f1=500KHZ时,j从0计到9(10个数)跳转完成半个周期,T0/2 =;图中可把T分为三段即T1=T3=20us=200*(所以在T1阶段j要计200个数),而T2=10us可用延迟10000ns翻转达到。

图中T=50us之后不显示,所以测试时到达50000ns时停止。

故其模块源代码和测试模块源代码如下:
模块源代码:测试模块源代码:
仿真波形:
4.在blocking模块中按如下两种写法,仿真与综合的结果会有什么样的变化作出仿真波形,分析综合结果。

⑴综合结果
⑵综合结果
由以上图形可知,其综合结果一样。

其仿真图形如下所示:
分析:当时钟上升沿来临,b1、b2的值一样都等于时钟上升沿到来前a的值,两种写法的
区别在于c值的不同。

第一种写法c1的值等于前一个b1的值;第二种写法c2的值等于b2
的值即c1比c2慢一个时钟信号周期。

5.运用always块设计一个8路数据选择器。

要求:每路输入数据与输出数据均为4位2进制数,当选择开关(至少3位)或输入数据发生变化时,输出数据也相应变化。

模块源代码:
测试模块源代码:
仿真波形如下:。

相关文档
最新文档