组合逻辑电路的数据流描述
EDA判断题题库(56题)_附答案
(√ ) 54. Verilog 语言的行为描述语句,如条件语句、赋值语句和循环语句类似于软件
高级语言,便于学习和使用。( √ ) 55. 行为描述就是对设计实体的数学模型的描述,其抽象程度远高于结构描述。
2/3
48. 目前常用的硬件描述语言为:Verilog HDL 和 VHDL。( √ ) 49. Verilog HDL 数据类型是用来表示数字电路中的物理连线、数据存储和传输
单元等物理量的。( √ ) 50. 混合仿真器就是能同时支持 Verilog 和 VHDL 的仿真器。( √ ) 51. Verilog 程序的基本设计单元是“模块”( module)。( √ ) 52. 布局布线为将综合生成的电路逻辑网表映射到具体的目标器件中实现,并产
种。( √ ) 13. PLD 是 Programmable Logic Device,可编程逻辑器件的缩写。( √ ) 14. Verilog 语言即适合可综合的电路设计,也可胜任电路与系统的仿真。( √ ) 15. Verilog HDL 支持循环语句。( √ ) 16. 硬件综合器和软件程序编译器没有本质区别。( × ) 17. 集成度是 PLD 器件的一项重要指标。( √ ) 18. PLD 器件的设计往往采用层次化的设计方法,分模块,分层次地进行设计描
1/3
25. CPLD 是 Complex Programmable Logic Device,复杂可编程逻辑器件的缩写。 (√ )
26. PLD 是一种全定制器件。( × ) 27. 综合指的是将较高级抽象层次的设计描述自动转化为较低层次描述的过程。
(√ ) 28. Verilog HDL 和 VHDL 目前还都不是 IEEE 标准。( × ) 29. 把适配后生成的编程文件装入到 PLD 器件中的过程称为下载。( √ ) 30. Verilog HDL 中 assign 为持续赋值语句。( √ ) 31. Verilog HDL 语法要素与软件编程语言(如 C 语言)是完全相同的。( × ) 32. 数字设计流程中采用原理图方式适合描述电路的连接关系和接口关系。
数字逻辑知到章节答案智慧树2023年山东科技大学
数字逻辑知到章节测试答案智慧树2023年最新山东科技大学绪论单元测试1.系统一般可分为模拟系统、数字系统和模拟数字混合系统。
()参考答案:对第一章测试1.假定下列字符码中有奇偶校验位,但没有数据错误,采用偶校验的字符码是:()参考答案:110010012.某数在计算机中用 8421BCD 码表示为 0111 1000 1001 ,其真值为:()参考答案:7893.常用的BCD码有:()参考答案:8421码4.与余 3码(10001000 )等值的十进制数是:()参考答案:555.8421BCD码是否具有奇偶特性?()参考答案:是第二章测试1.试求此函数的最简或与式为()。
参考答案:2.函数的最简与或式为()。
参考答案:3.函数和相等()。
参考答案:对4.函数的反函数为。
()参考答案:错5.函数的对偶式为。
()参考答案:错第三章测试1.二极管具有单向导电性。
()参考答案:对2.三极管的三个工作区域分别是:饱和区、截止区、放大区。
()参考答案:对3.OC门工作时要外加上拉电阻才可以正常工作。
()参考答案:对4.TTL与非门可以实现“线与”功能。
()参考答案:错5.TTL与非门的悬空端可看作: ()参考答案:高电平6.下列哪种门电路可以将输出端直接并联使用:()参考答案:OC门7.三态门的三个状态是: ()参考答案:低电平;高电平;高阻态第四章测试1.根据如下电路,设输入为A,B,C,输出为F,利用组合逻辑电路的分析方法可知,此电路只有当输入信号一致时,输出F=1,;输入不一致时,输出F=0,该电路为不一致检测电路。
()参考答案:对2.在输入不提供反变量的情况下,用与非门实现函数,利用组合逻辑电路的设计方法,如下电路设计可以实现该逻辑函数功能。
()参考答案:对3.利用险象判断的方法,如下电路中可能存在险象。
()参考答案:对4.逻辑函数可能存在竞争-冒险。
()参考答案:对5.利用译码器的使能端,将两片3-8译码器可扩展为一片4-16译码器,可用于设计四位二进制的偶校验发生器,经电路分析,如下四位二进制的偶校验发生器电路存在设计错误。
组合逻辑电路的数据流描述
用VerilogHDL描述组合逻辑电路有三种不同抽象级 别:组合逻辑电路的门级描述、组合逻辑电路的数 据流描述、组合逻辑电路的行为级描述。 VerilogHDL描述的电路就是该电路的VerilogHDL模 型。
•门级描述:
一般使用Primitive(内部元件)、自定义的下层模块对电 路描述。主要用于层次化设计中。
endmodule
例2 用Verilog的门级元件进行
B
L
描述由三态门构成的2选1数据选
A
择器 。
SEL
//Gate-level description of a 2-to-1-line multiplexer module _2to1muxtri (A,B,SEL,L);
input A,B,SEL output L; tri L; bufif1 (L,B,SEL); bufif0 (L,A,SEL); endmodule
•数据流描述方式: 一般使用assign语句描述,主要用于对组合逻辑电路建模。 •行为描述方式:
一般使用下述语句描述,可以对组合、时序逻辑电路建模。 1)initial 语句 2)always 语句
4.6.1 组合逻辑电路的门级建模
门级建模:将逻辑电路图用HDL规定的文本语言表示出来。
三态门
元件符号 功能说明
2选1数据选择器的连续赋值描述是: wire A,B,SEL,L; //声明4个连线型变量 assign L=(A & ~SEL)|(B & SEL); //连续赋值
注意,在assign语句中,左边变量的数据类型必须是wire型。
E
1
A0
1
A1
Verilog描述方法与层次
Verilog描述⽅法与层次Verilog描述⽅法与层次Verilog语⾔有多种描述⽅法,这些⽅法也可以在多个层次上来描述硬件。
描述⽅式在上⼀篇当中已经引⼊过数据流描述、⾏为描述、结构化描述这三种描述的⽅式的概念,本篇将继续深⼊说明这三种描述⽅式。
数据流描述1.数据流:组合逻辑电路的信号传输其实就类似于数据的流动,数据从中经过但是不会存储,⼀旦输⼊改变,输出随之在⼀定的延时(Tpd)之后发⽣改变。
连续赋值语句连续赋值语句具有以下的特点:1.连续驱动:输⼊的改变将导致该语句重新计算2.只有线⽹型变量可以⽤assign赋值:仿真器中不会储存assign赋值的变量,寄存器有存储要求显然不能⽤assign赋值,只有线⽹型可以。
另外,assign语句允许多驱动即⼀个变量可以多个输⼊(实际上就是实现线与和线或),建议复习⼀下数字电路中线与和线或的实现。
3.适⽤于组合逻辑建模:若要模拟延迟可以通过 # 来加延迟4.并⾏性:assign语句同其他语句块是并发的。
以⼀个异或门为例:module FullAdder(input x,input y,input c_in,output c_out,output sum);assign sum = x^y^c_in;assign c_out = (x&y) || (x&c_in) || (y&c_in)//以上两条语句都是并发执⾏且连续赋值的。
endmodule延时任何⼀个元器件都必然存在延时,⽽在数据流描述⽅式中,我们也可以选择对其进⾏建模。
延时具体也可以分为:上升延时即输出变为1时的延时,下降延时即输出变为0的延时,关闭延时即输出变为⾼阻态的延时,以及输出变为X 即中间态的延时(通常取前⾯三种中最⼩的)。
关于延时的建模也有多种⽅法,以下是⼀个例⼦:assign #1 out = in1^in2;//`timescale 1ns/1ns输⼊到输出须1nsassign #(1,2) out1 = in1^in2;//上升延时1ns,下降延时2ns,变x和关闭取最⼩为1nsassign #(1,2,3) out2 = in1^in2;//上升1ns,下降2ns,关闭3ns,变X1nsassign #(4:5:6,3:4:5)out3 = in1^in2;//(min:typ:max)描述的时延时最⼩典型最⼤三种情况,同样第⼀个是上升,第⼆个是下降注意:连续赋值中的延时是惯性延时,即出现⼩于延时的信号(⽑刺信号)会被过虑掉。
EDA考试必考知识点
考试题型:简答题,程序语句解释,程序填空,编程EDA就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。
现代EDA技术的特征:1,、采用硬件描述语言进行设计2、逻辑综合与优化3、开放性和标准化4.、更完备的库。
数字系统设计技术:1、Topdown即自顶向下的设计。
这种设计首先从系统设计下手,在顶层进行功能方框图的划分和结构设计。
须经过“设计—验证—修改设计再验证”的过程,不断反复,直到结果能够实现所要求的功能,并在速度、功耗、价格和可靠性方面实现较为合理的平衡。
2、Bottomup设计,即自底向上的设计,由设计者调用设计库中的元件(如各种门电路、加法器、计数器等) ,设计组合出满足自己需要的系统。
不仅效率低、成本高而且易出错。
IP:原来的含义是指知识产权、著作权,在IC设计领域指实现某种功能的设计。
IP核(IP模块):指功能完整,性能指标可靠,已验证的、可重用的电路功能模块。
IP复用:软IP--用VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。
固IP完成了综合的功能块。
硬IP供设计的最终阶段产品:掩膜。
基于IP复用的开发帮助设计者节省时间,缩短开发周期,避免重复劳动。
可编程逻辑阵列PLA,可编程与阵列或阵列,输出电路固定。
可编程阵列逻辑PAL,可编程与阵列,或阵列输出电路固定。
FPGA是一种半定制的器件,器件内已做好各种逻辑资源,用户只需对器件内的资源编程连接就可实现所需要的功能。
ASIC指用全定制的方法来实现设计的方式,它在最底层,即物理版图级实现设计,因此也称为掩膜ASCI。
CPLD即复杂可编程逻辑器件,是从EPLD改进而来的。
逻辑综合:RTL级描述转换到逻辑门级(包括触发器)。
版图综合或结构综合:从逻辑门表示转换到版图表示,或转换到PLD器件的配置网表表示。
综合器是能够自动实现上述转换的软件工具,是能将原理图或HDL语言描述的电路功能转化为具体电路结构网表的工具。
第3章 逻辑电路功能描述方法
full_add
⑶采用程序建模:顶层模块编程设计
将顶层模块用硬件描述语言进行设计,在这里需要调 用底层半加器模块来实现。 例3.7 一位全加器顶层模块程序 module full_add(ain,bin,cin,sum,cout); input ain,bin,cin; output sum,cout; wire d,e,f; //用于内部连接的节点信号 half_add u1(ain,bin,e,d); //半加器模块调用,采用位置关联方式, //或名称对应方式 //hall_add u1(.a(ain),. b(bin), .so(e),.co(d)) half_add u2(e,cin,sum,f); or u3(cout,d,f); //或门调用 endmodule
//或仅使用下面一条语句替代上面两条
//assign {cout,sum}=a+b+cin
endmodule
【例3.6】行为描述的1位全加器
module full_add3(a,b,cin,sum,cout); input a,b,cin; output reg sum,cout;//必须定义为寄存器型变量 always @* //或写为always @(a ,b , cin) begin {cout,sum}=a+b+cin; end endmodule
一位半全加器U2
1、采用层次化方式设计1位全加器 ⑴底层一位半加器模块建模
采用数据流描述设计建模,并通过编译、仿真得到正 确的半加器电路,保存文件,用于顶层文件调用。
module half_add(a,b,so,co); input a,b; output so,co; assign co=a&b; assign so=a^b; endmodule
verilog的三种描述方式
verilog的三种描述方式(最新版)目录1.引言2.Verilog 描述方式概述1.结构描述2.数据流描述3.行为描述4.混合描述3.结构描述1.门级结构描述2.模块级结构描述4.数据流描述1.逻辑关系2.持续赋值语句5.行为描述1.寄存器传输级描述2.状态机描述6.混合描述7.结论正文一、引言Verilog 是一种硬件描述语言,广泛应用于数字电路和模拟混合信号电路的设计验证。
在 Verilog 中,有多种描述方式可以实现逻辑功能,包括结构描述、数据流描述、行为描述和混合描述。
本文将对这些描述方式进行详细介绍。
二、Verilog 描述方式概述1.结构描述:通过调用逻辑原件,描述它们之间的连接来建立逻辑电路的 Verilog 模型。
这里的逻辑元件包括内置逻辑门、自主研发的已有模块、商业 IP 模块。
结构描述分为门级结构描述和模块级结构描述。
2.数据流描述:根据信号之间的逻辑关系,采用持续赋值语句描述逻辑电路的行为。
数据流描述关注信号的传输和处理过程,适用于组合逻辑电路的设计。
3.行为描述:通过描述电路的输入输出行为,以及电路内部状态的变化,来实现逻辑功能的描述。
行为描述主要包括寄存器传输级描述和状态机描述。
4.混合描述:结合结构描述、数据流描述和行为描述,实现对逻辑功能的全面描述。
混合描述可以充分利用 Verilog 的各种特性,提高描述的准确性和效率。
三、结构描述1.门级结构描述:通过实例化内置逻辑门或使用自定义模块,构建逻辑电路的结构。
例如,可以使用与门、或门、非门等逻辑门实现组合逻辑电路。
2.模块级结构描述:将具有一定功能的模块进行组合,形成复杂的逻辑电路。
模块可以是自主研发的已有模块,也可以是商业 IP 模块。
四、数据流描述1.逻辑关系:根据信号之间的逻辑关系,使用持续赋值语句进行描述。
例如,对于一个与非门,可以使用`assign #5 neg(a);`语句描述其输出信号与输入信号 a 的逻辑关系。
组合可编程逻辑器件
与阵列固定,或阵 列可编程(PROM)
B A
与阵列、或阵列 均可编程(PLA)
B A 或阵列 可编程
与阵列可编程,或 阵列固定(PAL和 GAL等)
B A
或阵列 固定
或阵列 可编程
与阵列 固定
L1 L0
与阵列 可编程
L1 L
与阵列 可编程
L1 L0
4.5.1
例1
组合逻辑电路的PLD实现
An Bn Cn
4、具有完善先进的开发工具: 提供语言、图形等设计方法,十分灵活 通过仿真工具来验证设计的正确性 5、系统处理速度高:用PLD与或两级结构实现任何逻辑功能, 所需的逻辑级数少。这不仅简化了系统设计,而且减少了级 间延迟,提高了系统的处理速度。 6、系统具有加密功能:某些PLD器件,如GAL或高密度可 编程逻辑器件本身具有加密功能。设计者在设计时选中加密 项,可编程逻辑器件就被加密,器件的逻辑功能无法被读出, 有效地防止逻辑系统被抄袭。 7、使用方便:可以反复地擦除、编程,方便设计的修改和 升级
低电平 L 高电平
A、B、C有一个输入低电 平0V A、B、C三个都输入高电 平+5V
L=A•B•C
A
B
C
D
V CC L
VCC
A
B
C
D
L
A、B、C 中有一个为0 输出为0; A、B、C 中都为1 输出为1。 L=ABC L=AC
T1
T2
X T3
T4
X
连接 连接 连接 断开 连接 断开 连接 断开
(4) 浮栅MOS管开关 叠栅注入MOS(SIMOS)管 浮栅MOS管 浮栅隧道氧化层MOS(Flotox MOS)管 快闪(Flash)叠栅MOS管 用不同的浮栅MOS管连接的PLD,编程信息的擦除方法 也不同。SIMOS管连接的PLD,采用紫外光照射擦除; Flotox MOS管和快闪叠栅MOS管,采用电擦除方法。
组合逻辑电路的表示方法
组合逻辑电路可以通过不同的表示方法来描述和设计,以下是几种常见的表示方法:
真值表(Truth Table):真值表列出了所有输入组合及其对应的输出值。
每一行表示一个输入组合及其对应的输出值,可以清晰地展示逻辑电路的输入输出关系。
布尔表达式(Boolean Expression):布尔表达式使用逻辑运算符和输入变量来描述逻辑电路的输出。
常见的逻辑运算符包括与(AND)、或(OR)、非(NOT)等。
布尔表达式可以直接描述逻辑电路的逻辑运算过程。
逻辑图(Logic Diagram):逻辑图使用图形符号表示逻辑电路的输入、输出和逻辑运算关系。
常见的逻辑符号包括与门(AND gate)、或门(OR gate)、非门(NOT gate)等,通过将这些逻辑门按照输入输出连接方式进行组合,可以形成复杂的逻辑电路。
卡诺图(Karnaugh Map):卡诺图是一种用于简化布尔表达式的图形工具。
它将逻辑电路的输入组合和输出值以方格的形式进行表示,通过对方格进行合并和消减,可以简化布尔表达式并优化逻辑电路的设计。
这些表示方法可以相互转换和结合使用,根据具体情况选择最适合的方法。
在设计和分析组合逻辑电路时,这些表示方法都能提供便利和直观的方式来理解和描述逻辑关系。
第五章组合逻辑电路的VerilogHDL实现
第五章组合逻辑电路的VerilogHDL实现第5章组合逻辑电路的Verilog HDL实现5.10.1 逻辑电路的Verilog HDL描述方式Verilog HDL描述逻辑电路时常用3种描述方式,分别为:行为型描述、数据流型描述和结构型描述。
行为型描述只描述行为特征,不涉及逻辑电路的实现,是一种高级语言描述方式,使用例如always语句或initial 语句块中的过程赋值语句;数据流型描述指通过assign连续赋值实现组合逻辑功能的描述方式;结构型描述指描述实体连接的结构方式,所谓实体一般指Verilog 语言已定义的基元,包括门原语、用户自定义原语(UDP)和其他模块(module)。
行为型描述语句更简练,不能被综合;结构型描述语句通常容易被综合,但语句显得复杂。
在实际开发中往往多种描述方法混合使用。
5.10.2 2选1数据选择器的Verilog HDL实现2选1数据选择器可以有多种描述方式,通过4个实例和3种描述方式对例子中出现的语法现象进行解释。
5.10.12选1数据选择器的数据流型描述方式;5.10.22选1数据选择器的数据流型描述方式;5.10.32选1数据选择器的行为型描述方式;5.10.42选1数据选择器的结构型描述方式;5.10.2.1 2选1数据选择器实例1//例5.10.1module Mux21(a,b,s,y);//----------------1input a,b;input s;output y;assign y=(s==0)?a:b;//----------------2endmodule//----------------310.2.1 2选1数据选择器实例11. Verilog语言描述//例5.10.1module Mux21(a,b,s,y);//----------------1input a,b;input s;output y;assign y=(s==0)?a:b;//----------------2endmodule//----------------32. 程序说明(1)注释行(2)模块定义语句module和endmodule所有的程序都置于模块(module)框架结构内。
第7章Verilog设计的层次与风格分解
3) 基本组合逻辑电路的设计;
4) 基本时序逻辑电路的设计。
◆ 结构(Structural)描述 ◆ 行为(Behavioural)描述
主要 内容
◆ 数据流(Data Flow)描述
◆ 基本组合电路设计
◆ 基本时序电路设计
7.1 Verilog设计的层次
1.verilog设计的层次包含哪些? 系统级; 算法级; 寄存器传输级; 门级:利用逻辑门以及逻辑门之间的连接来构建电路 模型; 开关级:利用三极管、存储节点以及它们之间的连接 来构建电路模型。 2.设计层次的高低是如何区分的? 系统级、算法级、寄存器级----高级别的描述方式。 设计电路更多的是使用 verilog提供的过程语句、控制结构, 描述的是电路输入输出之间的逻辑关系。 门级、开关级-----低层次的描述方式。 利用底层的门元件和晶体管直接搭建电路。
7.1 Verilog设计的层次
3.Verilog所包含的设计风格 1) 结构(Structural)描述 调用电路元件(比如逻辑门、晶体管、功能 部件) 来构建电路。 2)行为(Behavioural)描述 通过描述电路的行为特性(电路输入输 出之间的逻辑关系)来设计电路。 3)数据流(Data Flow)描述 通过表达式、操作符和操作数来设计 电路。
7.1 Verilog设计的层次
4. 不同设计风格的应用 在设计电路时,一般优先选择行为描述和 数据流描述的方式。门级结构描述一般很少采 用,只用于一些关键路径的设计。
选择行为描述和数据流描述给综合器提供 了可优化的空间,而门级结构描述的电路综合 器是很难再进行优化的。
要灵活选用最适宜的设计风格。
x 0 x x
0 1 x z
0 1 x z
常见组合逻辑电路
module mult_for(outcome,a,b); 7、 说 明 该 电 路 的 功 能
parameter size=8;
input[size:1] a,b; output [2*size:1] outcome; reg [2*size:1] outcome; integer i; 功 能: 两 个 八 位 数 相 乘
三、常用时序电路模块设计
(一) 简单时序逻辑电路的描述
基本D触发器
module DFF(Q,D,CLK); output Q;
※通常使用always @(posedge clk)或 @(negedge clk)块 来描述时序逻辑。
input D,CLK;
reg Q; always @(posedge CLK)
Q<=D;
endmodule
上升沿有效的边沿结构的D触发器ຫໍສະໝຸດ (二) 复杂时序逻辑电路的描述
※通常在always 过程语句里使用条件语句 来实现较复杂的时序逻辑电路 。
1、带清零端、置1端的D触发器
module DFF1(q,qn,d,clk,set,reset); output q,qn; input d,clk,set,reset; reg q,qn; always @(posedge clk ) begin if(!reset) begin q=0; qn=1; end
2、BCD码—— 七段数码显示 译码器
QUARTUS II编译后的生成的模块符号:
module encoder8_3(outcode,a,b,c,d,e,f,g,h); output[2:0] outcode; input a,b,c,d,e,f,g,h; reg[2:0] outcode; always @(a or b or c or d or e or f or g or h) begin if(h) outcode=3‟b111; else if(g) outcode=3‟b110; else if(f) outcode=3‟b101; else if(e) outcode=3‟b100; else if(d) outcode=3‟b011; 要求:输入高电平 有效,输出为原码, else if(c) outcode=3‟b010; else if(b) outcode=3‟b001; 哪一个输入的优先 else if(a) outcode=3‟b000;
第六章组合逻辑电路详解
第六章组合逻辑电路详解第六章组合逻辑电路⼀、概述1、组合逻辑电路的概念数字电路根据逻辑功能特点的不同分为:组合逻辑电路:指任何时刻的输出仅取决于该时刻输⼊信号的组合,⽽与电路原有的状态⽆关的电路。
时序逻辑电路:指任何时刻的输出不仅取决于该时刻输⼊信号的组合,⽽且与电路原有的状态有关的电路。
2、组合逻辑电路的特点逻辑功能特点:没有存储和记忆作⽤。
组成特点:由门电路构成,不含记忆单元,只存在从输⼊到输出的通路,没有反馈回路。
3、组合逻辑电路的描述4、组合逻辑电路的分类按逻辑功能分为:编码器、译码器、加法器、数据选择器等;按照电路中不同基本元器件分为:COMS、TTL等类型;按照集成度不同分为:SSI、MSI、LSI、VLSI等。
⼆、组合逻辑电路的分析与设计⽅法1、分析⽅法根据给定逻辑电路,找出输出输⼊间的逻辑关系,从⽽确定电路的逻辑功能,其基本步骤为:a、根据给定逻辑图写出输出逻辑式,并进⾏必要的化简;b、列出函数的真值表;c、分析逻辑功能。
2、设计⽅法设计思路:分析给定逻辑要求,设计出能实现该功能的组合逻辑电路。
基本步骤:分析设计要求并列出真值表→求最简输出逻辑式→画逻辑图。
⾸先分析给定问题,弄清楚输⼊变量和输出变量是哪些,并规定它们的符号与逻辑取值(即规定它们何时取值0 ,何时取值1)。
然后分析输出变量和输⼊变量间的逻辑关系,列出真值表。
根据真值表⽤代数法或卡诺图法求最简与或式,然后根据题中对门电路类型的要求,将最简与或式变换为与门类型对应的最简式。
三、若⼲常⽤的组合逻辑电路(⼀)、编码器把⼆进制码按⼀定规律编排,使每组代码具有特定的含义,称为编码。
具有编码功能的逻辑电路称为编码器。
n 位⼆进制代码有n 2种组合,可以表⽰n 2个信息;要表⽰N 个信息所需的⼆进制代码应满⾜n 2≥ N 。
1、普通编码器(1)、⼆进制编码器将输⼊信号编成⼆进制代码的电路。
下⾯以3位⼆进制编码器为例分析普通编码器的⼯作原理。
组合逻辑电路的描述方法
组合逻辑电路的描述方法一、组合逻辑电路是啥1.1 简单来说啊,组合逻辑电路就像是一群小伙伴按照特定规则玩耍。
它是数字电路里的一种重要类型。
这种电路的输出只取决于当前的输入,就好比你投篮,投进投不进只看你这一下出手的情况,之前的事儿不影响。
1.2 它没有记忆功能哦。
不像有些东西还能记着之前发生了啥然后再做反应。
就像那种一根筋的朋友,只看眼前,当下输入是啥,就根据这个给出输出。
二、描述方法有多种2.1 真值表是个好东西。
这就像是给组合逻辑电路画了个详细的画像。
把所有可能的输入组合都列出来,然后对应写上输出。
比如说一个简单的与门电路,两个输入,那可能的输入组合就四种,00、01、10、11,然后对应的输出根据与门的规则来写。
这就像我们给一个人写履历,把他在各种情况下的表现都记录下来。
2.2 逻辑表达式也很常用。
这就像是用一种数学语言来描述组合逻辑电路。
就像我们平时说话用大白话,但是数学表达式就像是用一种特殊的代码。
比如还是那个与门电路,逻辑表达式就是Y = A·B,简单明了。
这就好比给电路写了个简洁的座右铭,一看就知道它遵循的规则。
2.3 逻辑图那就是电路的地图了。
用各种逻辑门的图形符号来表示电路的结构。
就像我们看城市地图一样,看到哪里是广场,哪里是街道。
在逻辑图里看到与门、或门这些符号,就知道电路是怎么连接的。
这是一种直观的描述方法,让人一眼看过去就能大概明白电路的构造。
三、实际应用中的体现3.1 在计算机里到处都是组合逻辑电路的身影。
比如说加法器,这可是计算机进行运算的基本部件。
它就是通过组合逻辑电路来实现的。
就像一群小工匠,按照特定的组合逻辑规则,把输入的数字进行相加,然后输出结果。
这要是没有组合逻辑电路,计算机可就没法进行基本的数学运算了,就像汽车没了轮子,寸步难行。
3.2 还有译码器呢。
这就像是一个翻译官。
它把输入的代码按照组合逻辑电路的规则翻译成对应的输出信号。
比如说在一些电子设备里,输入一组二进制代码,译码器就能根据内部的组合逻辑电路,输出对应的控制信号,来控制其他部件工作。
组合逻辑电路的数据流描述30页PPT
15、机会是不守纪律的。——雨果
▪
组合逻辑电路的数据流描述
11、战争满足了,或曾经满足过人的 好斗的 本能, 但它同 时还满 足了人 对掠夺 ,破坏 以及残 酷的纪 律和专 制力的 欲望。 ——查·埃利奥 特 12、不应把纪律仅仅看成教育的手段 。纪律 是教育 过程的 结果, 首先是 学生集 体表现 在一切 生活领 域—— 生产、 日常生 活、学 校、文 化等领 域中努 力的结 果。— —马卡 连柯(名 言网)
26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭
▪
27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰
▪
28、知之者不如好之者,好之者不如乐之者。——孔子
▪
29、勇猛、大胆和坚定的决心能够抵得上武器的精良。——达·芬奇
▪
30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
30
组合逻辑电路描述
组合逻辑电路描述
reg [1:0] Sel1, Sel2; reg [7:0] A, B,C,D; reg [7:0] Y1; …… always @( Sel1or Sel2 or A or B or C or D ) begin …… case(Sel1) 每一个二进制数的取值为{ 每一个二进制数的取值为 0, 2’b00: Y1 = A + 1; 即有四种可能的取值 2’b01: Y 1= A + B; 2’b10: Y1 = !C ; 2’b11: case (Sel2) 2’b00: Y1 = D - A; 2’b01: Y1 = A & B; 2’b10: Y1 = A | B; 2’b11: Y1 = ! D; endcase default: Y1 = ~(A&B) ; endcase …… end ……
Y=3’b000; Y=3’b001; Y=3’b010; Y=3’b011; Y=3’b100; Y=3’b101; Y=3’b110; Y=3’b111; Y=3’bxxx;
组合逻辑电路描述
有时也可用for 循环结构描述编码/解码逻辑电路, 但一般不建议采用(综合结果很差)
reg [7:0] A, B; reg [2:0] I, Y; …… for (I=0; I<=7;I=I+1) begin B=A; B[I] = 1’b0; if (A[I]==1’b1 && B==8’b0) Y=I; else Y=3’bxxx; end ……
Outputs
Y2 Y1 Y0 Valid x 0 0 0 0 1 1 1 1 x 0 0 1 1 0 0 1 1 x 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
wire型变量用case
wire型变量用case1.多个always语句不能对同一变量赋值。
2.assign语句只能进行阻塞赋值,用来描述组合逻辑。
3.verilog描述方式:结构描述(门级描述和模块调用)、数据流描述(assign,wire型)、行为描述(initial、always,reg型)。
4.数据流描述根据信号(变量)之间的逻辑关系,采用连续赋值语句描述逻辑电路的方式,称为数据流描述。
狭义理解:将传统意义上的“逻辑表达式”,运用VerilogHDL中的运算符,改变成连续赋值语句(assign语句)中的表达式。
assign连线型变量名=赋值表达式;wire型变量没有数据保持能力,只有被连续驱动后,才能取得确定值。
(而寄存器型变量只要在某时刻得到过一次过程赋值,就能一直保持该值,直到下一次过程赋值。
)若一个连线型变量没有得到任何连续驱动,它的取值将是不定态“x”。
assign连续赋值语句就是实现对连线型变量进行连续驱动的一种方法。
进一步讲,assign持续赋值语句对wire型变量赋值后,始终监视赋值表达式中的每一个操作数,只要赋值表达式中任一操作数发生变化,立即对wire型变量进行更新操作,以保持对wire型变量的连续驱动。
体现了组合逻辑电路的特征——任何输入的变化,立即影响输出。
所以,可根据组合电路的逻辑表达式,用assign持续赋值语句进行描述。
数据类型缺省为wire型。
而reg型的驱动可以通过过程赋值语句实现,变量被赋值后在接受下一次的过程赋值之前,将保持原值不变。
5.永远不要忘记写default,以避免因为没有考虑完整case的所有分支而引入了不必要的锁存器。
若正常功能的所有情况都包含在了case的显示条件判断分支中,则在default语句中,可以给输出变量赋x值。
在仿真时,错误的x值可以传播,可以更容易发现因为case分支没有写全造成的错误。
而在综合时,综合工具会自动选区最合适的固定值在default情况下赋值给输出信号,以生成最优化的电路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
z
0 x
nand
0
输 1 入 x
输入1 0 1 1 1 1 0
x 1 x
z 1 x
2
x z
0 0
x x
1
1
x
x
x
x
x
x
2 z
X- 不确定状态
Z- 高阻态
or真值表
or
0 输 入 2 1 输入1
xor真值表
Z
X 1 输 入
0
0 1
1
1 1
X
X 1
xor 0 1
X Z
输入1
0
0 1 X X
1
1 0 X X
多输入端的异或门 多输出端的缓冲器 控制信号高电平有效的三态缓冲 器 控制信号低电平有效的三态缓冲 器
bufif1
bufif0
notif1
notif0
end
Verilog 基本门级元件
and nand or nor n-input AND gate n-input NAND gate n-input OR gate n-input NOR gate buf n-output buffer
X X X X X
Z X X X X
X
Z
X
X
1
1
X
X
X
X
2
2、多输出门 允许有多个输出,但只有一个输入。
not N1(out1,out2,…,in);buf B1(out1,out2,…,in);
out1 in out2 in outN
…
out 1 out 2 out N
…
not真值表
输入 not 0 1 输 出1 0 x x z x
4.6 用VerilogHDL描述组合逻辑电路
4.6.1 组合逻辑电路的门级建模 4.6.2 组合逻辑电路的数据流建模
4.6.3 组合逻辑电路的行为级建模
4.6 用VerilogHDL描述组合逻辑电路
用VerilogHDL描述组合逻辑电路有三种不同抽象级
别:组合逻辑电路的门级描述、组合逻辑电路的数 据流描述、组合逻辑电路的行为级描述。 VerilogHDL描述的电路就是该电路的VerilogHDL模 型。
notif1真值表
bufif1 数 据 输 入 0 1 x z
Hale Waihona Puke 控制输入 0 1 x 0 0/z z z z z 1 x x 1/z x x
z 0/z
1/z x x
notif1 控制输入 0 1 x z 0 z 1 1/z 1/z 数 1 z 0 0/z 0/z 据 x x 输 x z x x x 入 z z x
•门级描述: 一般使用Primitive(内部元件)、自定义的下层模块对电 路描述。主要用于层次化设计中。 •数据流描述方式: 一般使用assign语句描述,主要用于对组合逻辑电路建模。 •行为描述方式: 一般使用下述语句描述,可以对组合、时序逻辑电路建模。 1)initial 语句
2)always 语句
//Gate-level description of a 2to-4-line decoder 4、设计举例 module _2to4decoder 试用Verilog语言的门级 (A1,A0,E,Y); 元件描述2线-4线译码器. input A,B,E; 说明 output [3:0]Y; 部分 wire A1not,A0not,Enot; 1 E & Y0 not n1 (A1not,A1), n2 (A0not,A0), & Y1 n3 (Enot,E); 1 A0 功能 nand & Y 2 描述 n4 (Y[0],A1not,A0not,Enot), 1 n5 (Y[1],A1not,A0,Enot), A1 & Y3 n6 (Y[2],A1,A0not,Enot), n7 (Y[3],A1,A0,Enot); endmodule
4.6.1 组合逻辑电路的门级建模
门级建模:将逻辑电路图用HDL规定的文本语言表示出来。
三态门
元件符号 and or xor buf 功能说明 多输入端的与门 多输入端的或门
基本门级元件模型 多输出门
元件符号 nand nor xnor not 功能说明
多输入门
多输入端的与非门 多输入端的或非门 多输入端的异或非门 多输出端的反相器 控制信号高电平有效的 三态反相器 控制信号低电平有效的 三态反相器
=1 &
S A B C=AB
//Gate-level hierarchical description of 4-bit adder // Description of half adder module halfadder (S,C,A,B); input A,B; output S,C; //Instantiate primitive gates xor (S,A,B); and (C,A,B); endmodule
例2 用Verilog的门级元件进行 描述由三态门构成的2选1数据 选择器 。
B A
L
SEL
//Gate-level description of a 2-to-1-line multiplexer module _2to1muxtri (A,B,SEL,L); input A,B,SEL output L; tri L; bufif1 (L,B,SEL); bufif0 (L,A,SEL); endmodule
5、分层次的电路设计方法简介 分层次的电路设计:在电路设计中,将两个或多个模块组 合起来描述电路逻辑功能的设计方法。
设计方法:自顶向下和自底向上两种常用的设计方法 4位全加器的层次结构框图
4 位全加器
1 位全加器
1 位全加器
1 位全加器
1 位全加器
半加器
或门
. . . . . .
半加器
或门
A B
buf真值表
输入 buf 0 1 输 出 0 1
x x
z x
3、三态门 有一个输出、一个数据输入和一个输入控制。 如果输入控制信号无效,则三态门的输出为高阻态z。
in ctrl (a) out in ctrl out
(b) 图 4.6.3 三态门元件模型 (a)bufif1 (b)notif1
bufif1真值表
not
bufif0
n-output inverter
tri-state buffer; Io enable
bufif1 tri-state buffer; hi enable
notif0 notif1 tri-state inverter; Io enable tri-state inverter; hi enable
xor
n-input exclusive OR gate
n-input exclusive NOR gate
xnor
1、多输入门 只允许有一个输出,但可以有多个输入。
调用名
and A1(out,in1,in2,in3); and真值表
and
0 输 入 1
nand真值表
X 0 x
x x
0 0
0
输入1 1 0 1 x x