第4章 Verilog HDL设计初步习题
Verilog HDL数字设计与综合(第二版) 第四章课后习题答案

1.模块的基本组成部分有哪些?哪几个部分必须出现?答:模块的基本组成部分包括:关键字module ,模块名、端口列表、端口声明和可选的参数声明,模块内部还有5个基本组成部分是:变量声明、数据流语句、低层模块实例、行为语句块以及任务和函数。
在模块的所有组成部分中,只有module 、模块名和endmodule 必须出现,其他部分都是可选的,用户可以根据设计的需要随意选用。
2.一个不与外部环境交互的模块是否有端口?模块定义中是否有端口列表?答:严格意义上讲,一个模块如果与外界没有任何交互,那么自然是不需要有而且是不可能有端口的。
在没有端口的情况下,端口列表自然也是不存在的。
3.一个4位并行移位寄存器的I/O 引脚如下图所示。
写出模块shift_reg 的定义,只需写出端口列表和端口定义,不必写出模块的内部结构。
答:模块代码如下:module shift_reg(clock,reg_in,reg_out);input clock;input [3:0] reg_in;output [3:0] reg_out;//********XXXXXXX**************endmodule4.定义一个顶层模块stimulus ,在其中声明reg 变量REG_IN (4位)和CLK (1位)以及wire变量REG_OUT (4位)。
在其中调用(实例引用)模块shift_reg ,实例名为sr1,使用顺序端口连接。
答:模块代码如下module stimulus();reg CLOCK;reg [3:0] REG_IN;wire [3:0] REG_OUT;//*******connect in order************shift_reg sr1(CLOCK,REG_IN,REG_OUT);endmodulereg_in [3:0] clockreg_out [3:0]32Verilog HDL数字设计与综合(第二版)5.将上题的端口连接方法改为命名连接。
veriloghdl答案

verilog-hdl答案第1章简介1.Verilog HDL是在哪一年首次被IEEE标准化的?Verilog HDL是在1995年首次被IEEE标准化的。
2.Verilog HDL支持哪三种基本描述方式Verilog HDL可采用三种不同方式或混合方式对设计建模。
这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模3.可以使用Verilog HDL描述一个设计的时序吗?Verilog HDL可以清晰的建立时序模型,故可以使用Verilog HDL描述一个设计的时序。
4.语言中的什么特性能够用于描述参数化设计?在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述,而且能够使用门和模块实例化语句在结构级进行结构描述,这种特性可用于描述参数化设计。
5.能够使用Verilog HDL编写测试验证程序吗?能,可以编写testbench来对编写的程序进行验证。
6.Verilog HDL是由哪个公司最先开发的?Verilog HDL是由Gateway Design Automation公司最先开发的7.Verilog HDL中的两类主要数据类型是什么?线网数据类型和寄存器数据类型。
线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
8.UDP代表什么?UDP代表用户定义原语9.写出两个开关级基本门的名称。
pmos nmos10.写出两个基本逻辑门的名称。
and or第2章 HDL指南1. 在数据流描述方式中使用什么语句描述一个设计?设计的数据流行为使用连续赋值语句进行描述2. 使用` t i m e s c a l e 编译器指令的目的是什么?举出一个实例。
使用编译指令将时间单位与物理时间相关联。
例如` timescale 1ns /100ps 此语句说明时延时间单位为1ns并且时间精度为100ps (时间精度是指所有的时延必须被限定在0.1ns内)3. 在过程赋值语句中可以定义哪两种时延?请举例详细说明。
Verilog HDL语言

2021/8/14
22
5. 等式操作符(Equality operators)
等值操作符包括:
==(等于)、!=(不等于)、===(全等)、 !==(不全等)4种。
2021/8/14
4
2. 信号类型声明
变量类型声明用来说明设计电路的功能描述中,所用的信号 的数据类型以及函数声明。
变量的数据类型主要有连线(wire)、寄存器(reg)、整型 (integer)、实型(real)和时间(time)等类型。
2021/8/14
5
3. 功能描述
功能描述是Verilog HDL程序设计中最主要的部分,用 来描述设计模块的内部结构和模块端口间的逻辑关系,在电 路上相当于器件的内部电路结构。
① 首字符不能是数字。
② 字符数不能多于1024个。 ③ 大小写字母是不同的。
④ 不要与关键字同名。
2021/8/14
18
4.2.6 操作符
操作符也称为运算符,是Verilog HDL预定义的函数名 字,这些函数对被操作的对象(即操作数)进行规定的运算, 得到一个结果。
操作符通常由1~3个字符组成,例如,“+”表示加操作, “==”(两个=字符)表示逻辑等操作,“===”(3个=字符) 表示全等操作。有些操作符的操作数只有1个,称为单目操作; 有些操作符的操作数有2个,称为双目操作;有些操作符的操 作数有3个,称为三目操作。
字符串是用双引号括起来的可打印字符序列,它必须包含在同 一行中。例如,
“ABC”, “A BOY.” ,“A”, “1234” 都是字符串。
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年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。
Verilog HDL数字设计教程(贺敬凯)第4章

module multiplexer_N( X1,X2,X3,X4, sel,Y);
parameter N=8; //该参数定义了一个8位的4选1多 路选择器 input[N-1: 0] X1,X2,X3,X4;
第4章 Verilog HDL常用电路设计 input[1:0] sel;
output reg [N-1: 0] Y; always @(sel,X1,X2,X3,X4) case(sel) 2'b00: Y = X1;
output reg[N-1:0] out; always @(enable,input3,input2,input1,input0) begin
第4章 Verilog HDL常用电路设计
if(enable==2'b00) out=input3; else out='bz; if(enable==2'b01) out=input2; else out='bz;
endmodule
第4章 Verilog HDL常用电路设计 程序说明:
(1) 程序中定义了一个输入sel,一个输出Y,使用控制 信号sel来确定Y的输出。 (2) 由于本程序涉及求以2为底的对数计算,因此若修改 参数N,sel的位数就要手工做相应调整,这样才可实现任意 位数的译码器。
第4章 Verilog HDL常用电路设计
第4章 Verilog HDL常用电路设计
begin case(sel) 3'b000: result=X+Y; //加法 3'b001: result=X-Y; //减法 3'b010: result=X<<1; //左移1位 3'b011: result=X>>1; //右移1位 3'b100: result=X&Y; //相与 3'b101: result=X^Y; //异或 3'b110: result=~X; //求反 3'b111: result=X; //直通 endcase end endmodule
VerilogHDL简明教程:第4章表达式

本章讲述在Verilog HDL中编写表达式的基础。
表达式由操作数和操作符组成。
表达式可以在出现数值的任何地方使用。
4.1 操作数操作数可以是以下类型中的一种:1) 常数2) 参数3) 线网4) 寄存器5) 位选择6) 部分选择7) 存储器单元8) 函数调用4.1.1 常数前面的章节已讲述了如何书写常量。
下面是一些实例。
256,7 //非定长的十进制数。
4'b10_11, 8'h0A //定长的整型常量。
'b1, 'hFBA //非定长的整数常量。
90.00006 //实数型常量。
"BOND" //串常量;每个字符作为8位ASCII值存储。
表达式中的整数值可被解释为有符号数或无符号数。
如果表达式中是十进制整数,例如,12被解释为有符号数。
如果整数是基数型整数(定长或非定长),那么该整数作为无符号数对待。
下面举例说明。
12是01100的5位向量形式(有符号)-12是10100的5位向量形式(有符号)5'b01100是十进制数12(无符号)5'b10100是十进制数20(无符号)4'd12是十进制数12(无符号)更为重要的是对基数表示或非基数表示的负整数处理方式不同。
非基数表示形式的负整数作为有符号数处理,而基数表示形式的负整数值作为无符号数。
因此-44和-6'o54 (十进制的44等于八进制的54)在下例中处理不同。
integer Cone;. . .Cone = -44/4Cone = -6'o54/ 4;注意-44和-6'o54以相同的位模式求值;但是-44作为有符号数处理,而-6'o54作为无符号数处理。
因此第一个字符中Cone的值为-11,而在第二个赋值中Cone的值为1073741813。
4.1.2 参数前一章中已对参数作了介绍。
参数类似于常量,并且使用参数声明进行说明。
下面是参数说明实例。
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年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。
verilog hdl 习题答案
verilog hdl 习题答案Verilog HDL 习题答案Verilog HDL(Hardware Description Language)是一种硬件描述语言,用于设计和仿真数字电路。
它是一种高级语言,可以用于描述电路的结构和行为,并且可以进行逻辑仿真和综合。
在学习Verilog HDL的过程中,习题是不可或缺的一部分。
下面将提供一些常见Verilog HDL习题的答案,帮助你更好地理解和掌握这门语言。
1. 设计一个4位全加器module full_adder(input a, b, cin, output sum, cout);assign sum = a ^ b ^ cin;assign cout = (a & b) | (a & cin) | (b & cin);endmodule2. 设计一个4位加法器module four_bit_adder(input [3:0] a, b, output [3:0] sum, output carry_out);wire [3:0] carry;assign sum = a + b;assign carry = a + b + 1'b0;assign carry_out = carry[3];endmodule3. 设计一个2输入4输出的多路选择器module mux_2to4(input [1:0] sel, input [3:0] in, output [3:0] out);assign out[0] = (sel[1] & sel[0]) ? in[0] : 1'bz;assign out[1] = (sel[1] & ~sel[0]) ? in[1] : 1'bz;assign out[2] = (~sel[1] & sel[0]) ? in[2] : 1'bz;assign out[3] = (~sel[1] & ~sel[0]) ? in[3] : 1'bz;endmodule4. 设计一个4位移位寄存器module shift_register(input [3:0] in, input clk, input reset, output [3:0] out);reg [3:0] reg_out;always @(posedge clk or posedge reset) beginif (reset)reg_out <= 4'b0000;elsereg_out <= {reg_out[2:0], in[0]};endassign out = reg_out;endmodule这些习题的答案提供了基本的Verilog HDL设计和实现方法。
verilog hdl答案
第1章简介1.Verilog HDL是在哪一年首次被IEEE标准化的?Verilog HDL是在1995年首次被IEEE标准化的。
2.Verilog HDL支持哪三种基本描述方式Verilog HDL可采用三种不同方式或混合方式对设计建模。
这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模3.可以使用Verilog HDL描述一个设计的时序吗?Verilog HDL可以清晰的建立时序模型,故可以使用Verilog HDL描述一个设计的时序。
4.语言中的什么特性能够用于描述参数化设计?在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述,而且能够使用门和模块实例化语句在结构级进行结构描述,这种特性可用于描述参数化设计。
5.能够使用Verilog HDL编写测试验证程序吗?能,可以编写testbench来对编写的程序进行验证。
6.Verilog HDL是由哪个公司最先开发的?Verilog HDL是由Gateway Design Automation公司最先开发的7.Verilog HDL中的两类主要数据类型是什么?线网数据类型和寄存器数据类型。
线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
8.UDP代表什么?UDP代表用户定义原语9.写出两个开关级基本门的名称。
pmos nmos10.写出两个基本逻辑门的名称。
and or第2章 HDL指南1. 在数据流描述方式中使用什么语句描述一个设计?设计的数据流行为使用连续赋值语句进行描述2. 使用` t i m e s c a l e 编译器指令的目的是什么?举出一个实例。
使用编译指令将时间单位与物理时间相关联。
例如` timescale 1ns /100ps 此语句说明时延时间单位为1ns并且时间精度为100ps (时间精度是指所有的时延必须被限定在0.1ns内)3. 在过程赋值语句中可以定义哪两种时延?请举例详细说明。
第四章Verilog-HDL设计初步
.
组合电路
4.1.1 4选1多路选择器及其Verilog HDL描述1
.
4.1.1 4选1多路选择器及其Verilog HDL描述1
.
4.1.1 4选1多路选择器及其Verilog HDL描述1
.
4.1.1 4选1多路选择器及其Verilog HDL描述1
.
4.1.2 4选1多路选择器及其Verilog HDL描述2
.
4.1.5 简单加法器及其Verilog HDL描述 1. 半加器描述
.
4.1.5 简单加法器及其Verilog HDL描述 1. 半加器描述
.
2. 全加器顶层文件设计
.
2. 全加器顶层文件设计
Verilog中元件例化语句的结构比较简单,一般格式如下: <模块元件名>: <例化元件名> ( .例化元件端口(例化元件外接端口名),...);
.
4.2.3 含异步清0和时钟使能结构的D触发器及其Verilog描述
.
4.2.4 含同步清0结构的D触发器及其Verilog描述
.
4.2.4 含同步清0结构的D触发器及其Verilog描述
.
4.2.5 含异步清0的锁存器及其Verilog描述
.
4.2.5 含异步清0的锁存器及其Verilog描述
.
4.2.6 Verilog的时钟过程描述注意点
.
4.2.6 Verilog的时钟过程描述注意点
.
4.2.7 异步时序电路
.
4.2.7 异步时序电路
.
4.3.1 4位二进制加法计数器及其Verilog描述
.
4.3.1 4位二进制加法计数器及其Verilog描述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
initial begin //测的文件修改 测试文件 module stimulus; reg [2:0]A ; wire[7:0]Y ; reg G1 ,G2 ,G3; decoder3_8 DUT ( G1 ,Y ,G2 ,A ,G3 ); initial begin $monitor($time,"A=%d,G1=%b,G2=%b, G3=%b,Y= %d\n",A, G1, G2, G3, Y); end G1=1 ;G2=1 ;G3=1;A=0; #10 G2=0;G1=0; #10 G2=0;G1=1; #10 G2=1;G1=0;G3=0; #10 G1=0;G1=1;G3=1; #10 G1=0;G1=0;G3=0; #10 G1=1;G2=0;G3=0; #50 A= 0; #50 A= 1; #50 A= 2; #50 A= 3; #50 A= 4; #50 A= 5; #50 A= 6; #50 A= 7; #50 $finish; end endmodule
module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 ); input G1, G2, G3; wire G1, G2, G3; input [2:0] A ; wire [2:0] A ; output [7:0] Y ; reg [7:0] Y ; reg s; always @ ( A ,G1, G2, G3) begin s <= G2 | G3 ; if (G1 == 0) Y <= 8'b1111_1111; else if (s) Y <= 8'b1111_1111; else case ( A ) 3'b000: Y = 8'b11111110; 3'b001: Y = 8'b11111101; 3'b010: Y = 8'b11111011; 3'b011: Y = 8'b11110111; 3'b100: Y = 8'b11101111; 3'b101: Y = 8'b11011111; 3'b110: Y = 8'b10111111; 3'b111: Y = 8'b01111111; default:Y = 8'bxxxxxxxx; endcase end endmodule
4-5 用Verilog设计一个 译码器,要求分别用 设计一个3-8译码器 语句和if_else语句。比较这两 语句。 设计一个 译码器,要求分别用case语句和 语句和 语句 种方式。 种方式。 module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 );
input G1, G2, G3; wire G1, G2, G3; input [2:0] A ; wire [2:0] A ; output [7:0] Y ; reg [7:0] Y ; reg s; always @ ( A ,G1, G2, G3) begin s <= G2 | G3 ; if (G1 == 0) Y <= 8'b1111_1111; else if (s) Y <= 8'b1111_1111; else begin if (A==3'b000)Y=8'b11111110; else if (A==3'b001)Y=8'b11111101; else if (A==3'b010)Y=8'b11111011; else if (A==3'b011)Y=8'b11110111; else if (A==3'b100)Y=8'b11101111; else if (A==3'b101)Y=8'b11011111; else if (A==3'b110)Y=8'b10111111; else if (A==3'b111)Y=8'b01111111; else end endmodule Y=8'bxxxxxxxx;end
4-5 用Verilog设计一个 译码器,要求分别用 设计一个3-8译码器 语句和if_else语句。比 语句。 设计一个 译码器,要求分别用case语句和 语句和 语句 较这两种方式。 较这两种方式。
4-5 用Verilog设计一个 译码器,要求分别用 设计一个3-8译码器 语句和if_else语句。比较这两 语句。 设计一个 译码器,要求分别用case语句和 语句和 语句 种方式。 种方式。
x为被减数, 为被减数, 为减数, y为减数, sub_in为 sub_in为 低位的借 位, diff 为差, r为差,su b_out为向 b_out为向 高位的借 位。
0 0 0 0 1 1 1 1
module f_suber(x,y,sub_in,diffr,sub_out); //一个二进制全减器 全减器顶层设计进行了阐述 全减器 output diffr,sub_out; input x,y,sub_in; wire e,d,f; h_suber u1(x,y,e,d); // h_suber u2(.x(e),.diff(diffr),.y(sub_in),.s_out(f));// or2a u3(.a(d),.b(f),.c(sub_out)); endmodule
习 题
阻塞赋值和非阻塞赋值有何区别? 4-3 阻塞赋值和非阻塞赋值有何区别? Verilog中 用普通等号“=”作为阻塞式赋值语句的赋值符号 作为阻塞式赋值语句的赋值符号, y=b。 答:Verilog中,用普通等号“=”作为阻塞式赋值语句的赋值符号,如y=b。 Verilog中 用普通等号“<=”作为非阻塞式赋值语句的赋值符号 作为非阻塞式赋值语句的赋值符号, y<=b。 Verilog中,用普通等号“<=”作为非阻塞式赋值语句的赋值符号,如y<=b。 阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y 阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y即刻 获得来自等号右侧表达式的计算值。 获得来自等号右侧表达式的计算值。如果在一个块语句中含有多条阻塞式赋值 语句,则当执行到其中某条赋值语句时,其他语句将禁止执行, 语句,则当执行到其中某条赋值语句时,其他语句将禁止执行,即如同被阻塞 了一样。 了一样。 非阻塞式赋值的特点是必须在块语句执行结束时才整体完成赋值操作。 非阻塞式赋值的特点是必须在块语句执行结束时才整体完成赋值操作。非 阻塞的含义可以理解为在执行当前语句时, 阻塞的含义可以理解为在执行当前语句时,对于块中的其他语句的执行情况一 律不加限制,不加阻塞。这也可以理解为, begin_end块中的所有赋值语句都 律不加限制,不加阻塞。这也可以理解为,在begin_end块中的所有赋值语句都 可以并行运行。 可以并行运行。
习 题
4-6 图4-26所示的是双 选1多路选择器构成的电路 所示的是双2选 多路选择器构成的电路 多路选择器构成的电路MUXK。对于其中 所示的是双 。对于其中MUX21A,当s=0 , 和s=1时,分别有 时 分别有y=a和y=b。试在一个模块结构中用两个过程来表达此电路。 和 。试在一个模块结构中用两个过程来表达此电路。 参考实验1 答:参考实验
module MUXK (a1, a2, a3, s0, s1, outy); input a1, a2, a3, s0, s1; output outy; wire outy; wire tmp; mux21a u1 (.a(a2),.b(a3),.s(s0),.y(tmp)); mux21a u2 (.a (a1),.b (tmp),.s(s1),.y(outy)); endmodule
图4-26 含2选1多路选择器的模块 选 多路选择器的模块
习 题
给出1位全减器的VHDL描述。要求: VHDL描述 4-7 给出1位全减器的VHDL描述。要求: 首先设计1位半减器,然后用例化语句将它们连接起来, 28中 (1)首先设计1位半减器,然后用例化语句将它们连接起来,图4-28中h_suber 是半减器,diff是输出差 s_out是借位输出 sub_in是借位输入 是输出差, 是借位输出, 是借位输入。 是半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。 根据图4 27设计 位全减器。 设计1 (2)根据图4-27设计1位全减器。 位全减器为基本硬件,构成串行借位的8位减法器, (3)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来 完成此项设计。 完成此项设计。
图4-27
1位全减器 位全减器
习 题
//一个二进制半减器 半减器设计进行了阐述 半减器 x y 0 0 1 1 0 0 1 1 sub_in diffr sub_out 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1
module h_suber(x,y,diff,s_out); input x,y; output diff, s_out; assign diff=x^y; assign s_out=(~x)&y; endmodule x 0 0 1 1 y 0 1 0 1 diff 0 1 1 0 s_out 0 1 0 0
第4章 章 Verilog HDL设计初步 设计初步
习 题
4-1 举例说明,Verilog HDL的操作符中,哪些操作符的运算结果总是一位的。 举例说明, 的操作符中, 的操作符中 哪些操作符的运算结果总是一位的。 答: if_else条件语句 条件语句
4-2 wire型变量与 型变量与reg型变量有什么本质区别,它们可用于什么类型语句中? 型变量有什么本质区别, 型变量与 型变量有什么本质区别 它们可用于什么类型语句中? 书上P261~262《9.2 Verilog HDL数据类型》 数据类型》 答:书上 《 数据类型 reg主要是用于定义特定类型的变量,即寄存器型 主要是用于定义特定类型的变量, 变量(或称寄存器型数据类的 主要是用于定义特定类型的变量 即寄存器型(Register)变量 或称寄存器型数据类的 变量 变量)。如果没有在模块中显式地定义信号为网线型变量,Verilog综合器都会将其默认定 变量 。如果没有在模块中显式地定义信号为网线型变量, 综合器都会将其默认定 义为wire型。过程语句 引导的顺序语句中规定必须是reg型变量。 型变量。 义为 型 过程语句always@引导的顺序语句中规定必须是 引导的顺序语句中规定必须是 型变量 wire型变量不允许有多个驱动源 型变量不允许有多个驱动源