第4章组合与时序逻辑电路设计
合集下载
同步时序逻辑电路逻辑电路可分为组合逻辑电路和时...

根据时序电路的输出是否与输入x1 , …, xn有关可以把同步 时序逻辑电路分为Mealy型和Moore型。Mealy型同步时序 逻辑电路的输出由输入x1 , …, xn和现态决定:
Z i f i ( x1 , , xn , y1 , , yr ) Y j g j ( x1 , , xn , y1, , yr ) Z i f i ( y1 , , yr )
4.1 同步时序逻辑电路模型
同步时序逻辑电路具有统一的时钟信号。时钟信号通常是 周期固定的脉冲信号。同步时序逻辑电路在时钟信号的控 制下工作,其电路中的各个单元、器件在时钟信号到来时 读取输入信号、执行响应动作。
4.1.1 同步时序逻辑电路结构 同步时序逻辑电路在结构上可分为组合逻辑电路部分 和存储电路部分,并且存储电路受时钟信号控制。
而存储元件的输出y1, …, yr也作为组合逻辑部分的内部输入, y1, …, yr称为同步时序逻辑电路的状态。当新的时钟信号没 有到来的时候,同步时序逻辑电路的状态y1, …, yr不会发生 改变,即使输入x1 , …, xn有变化状态y1, …, yr也不会改变; 对于新的时钟信号到来之前的状态y1, …, yr称为现态,记作 记作y (n)或y;当新的时钟信号到达后,存储电路会根据激 励信号Y1, …, Yr而改变其输出y1, …, yr ,此时的状态称为次 态,记作y (n + 1)。当时钟信号没有到达时,电路处于现态, 次态是电路未来变化的走向;当时钟信号到来后,先前的 次态成为当前的现态。
4.2.3 JK触发器
JK触发器除时钟信号输入端外有J、K两个输入端,具有置 0,置1,翻转及保持四种功能,是一种功能较强的触发器。 JK触发器的状态方程为:
Q( n1) JQ KQ
《数字电子技术基础》第五版:第四章 组合逻辑电路

74HC42
二-十进制译码器74LS42的真值表
序号 输入
输出
A3 A2 A2 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9
0 0 000 0 111111111
1 0 001 1 011111111
2 0 010 1 101111111
3 0 011 1 110111111
4 0 100 1 111011111
A6 A4 A2
A0
A15 A13 A11 A9
A7 A5 A3
A1
I7 I6 I5 I4 I3 I2 I1 I00
S
74LS 148(1)
YS
YEE Y2 Y1
Y0
XX
I7 I6 I5 I4 I3 I2 I1 I0
S
74LS 148(2)
YS
YE Y2 Y1
Y0
X
&
G3
&
G2
&
G3
Z3
Z2
Z1
&
G3
0时1部分电路工作在d0a1a0d7d6d5d4d3d2d1d074ls153d22d20d12d10d23d21s2d13d11s1y2y1a1a0在d4a0a1a2集成电路数据选择器集成电路数据选择器74ls15174ls151路数据输入端个地址输入端输入端2个互补输出端74ls151的逻辑图a2a1a02274ls15174ls151的功能表的功能表a2a1a0a将函数变换成最小项表达式b将使能端s接低电平c地址a2a1a0作为函数的输入变量d数据输入d作为控制信号?实现逻辑函数的一般步骤cpcp000001010011100101110111八选一数据选择器三位二进制计数器33数据选择器数据选择器74ls15174ls151的应用的应用加法器是cpu中算术运算部件的基本单元
第4章 时序逻辑电路设计

时序逻辑电路是具有记忆功能的逻辑电路,记忆元件 一般采用触发器。因此,时序逻辑电路由组合电路和 触发器组成,其等效模型如图4.5所示。
1模型
时序电路按其状态的改变方式不同,可分为同 步时序逻辑电路和异步时序逻辑电路两种,在 图4.5中,当CLK1与CLK2为相同信号时,该 电路为同步电路;当CLK1与CLK2为不同信号 时,该电路为异步电路。
output q;
reg
q;
always@(posedge clk or posedge rst)
begin
if(rst==1’b1)
q<=1’b0;
else if(en==1’b1)
q<=data;
else ;
end
endmodule
带同步复位、上升沿触发的触发器
module dff_synrst(data,rst,clk,q); input data,rst,clk; output q; reg q; always@(posedge clk) begin if(rst==1’b1) q<=1’b0; else q<=data; end
本设计要求用仿真和测试两种手段来验证 计数器的功能。实验时,可以通过修改十进 制计数器的设计得到六进制、100进制计数器。
三、设计要求
(1) 完成各模块的Verilog HDL设计编码; (2) 进行功能仿真; (3) 下载并验证计数器功能; (4) 如果60进制计数器要求用6进制和10进制
计数器搭建电路,请画出设计连接图,并 完成设计编码和验证。
else q<=data; end endmodule
带异步复位和置位、上升沿触发的触发器
module dff_asynrst(data,rst,set,clk,q);
1模型
时序电路按其状态的改变方式不同,可分为同 步时序逻辑电路和异步时序逻辑电路两种,在 图4.5中,当CLK1与CLK2为相同信号时,该 电路为同步电路;当CLK1与CLK2为不同信号 时,该电路为异步电路。
output q;
reg
q;
always@(posedge clk or posedge rst)
begin
if(rst==1’b1)
q<=1’b0;
else if(en==1’b1)
q<=data;
else ;
end
endmodule
带同步复位、上升沿触发的触发器
module dff_synrst(data,rst,clk,q); input data,rst,clk; output q; reg q; always@(posedge clk) begin if(rst==1’b1) q<=1’b0; else q<=data; end
本设计要求用仿真和测试两种手段来验证 计数器的功能。实验时,可以通过修改十进 制计数器的设计得到六进制、100进制计数器。
三、设计要求
(1) 完成各模块的Verilog HDL设计编码; (2) 进行功能仿真; (3) 下载并验证计数器功能; (4) 如果60进制计数器要求用6进制和10进制
计数器搭建电路,请画出设计连接图,并 完成设计编码和验证。
else q<=data; end endmodule
带异步复位和置位、上升沿触发的触发器
module dff_asynrst(data,rst,set,clk,q);
组合逻辑电路

E 为使能端,表示低电平有效。
列真值表 分析逻辑功能
输入
E A1 A0 1 任意
输出 F
0
E 为选通端、低电平有效。 0 0 0 D0
操作端A1A0为00、01、
0 0 1 D1
10、11时,分别选中D0、
0 1 0 D2
D1、D2、D3到输出F 。
0 1 1 D3
4选1数据选择器。
由传输门构成的4选1数据选择器
设两个四位二进制数分别为C3C2C1C0和 D3D2D1D0,输出为S3S2S1S0
S3S2S1S0 A3 A2 A1A0 B3B2B1B0 CI
M=0时 B3B2B1B0 M (D3D2D1D0 )
S3S2S1S0 C3C2C1C0 D3D2D1D0 0
M=1时 B3B2B1B0 M (D3 ?D2 D1 D0 )
0 1 1 1 1 0 F1 101110
110110
111010 1 1 1 1 1 1 F2
其他
A B CD
00
ABCD中:
F1 A多BC数为AB1D时,ACFD1=B1C;D 表F决2 电A全B路C部D:为1时,F2 = 1。
多数通过和一致通过
常用组合电路及其分析
1 加法器
由5个逻辑门组成的2 输入、2 输出逻辑
这种加法运算称为“半加〞运算,完成半加
运算的电路称为“半加器〞。
半加器逻辑符号如图
A
Σ
S
B
CO C
两个二进制数相加时,
还需要考虑低位的进位, A i
Bi
称为“全加〞运算。 C i-1
Σ
Si
CI CO C i
完成全加运算的电路称为“全加器〞
数字逻辑(欧阳星明)第四章

16
第四章
组合逻辑电路
4.3.2 设计举例 例1 设计一个三变量“多数表决电路”。
解 分析:“多数表决电路”是按照少数服从多数的原则 对某项决议进行表决,确定是否通过。 令 逻辑变量A、B、C --- 分别代表参加表决的3个成员, 并约定逻辑变量取值为0表示反对,取值为1表示赞成; 逻辑函数 F --- 表示表决结果。F取值为0表示决议被否定, F取值为1表示决议通过。 按照少数服从多数的原则可知,函数和变量的关系是:当3 个变量 A、B、C中有 2 个或 2个以上取值为 1 时,函数F 的值为 1, 其他情况下函数F的值为0。
2
第四章
组合逻辑电路
4. 1 基 本 概 念
一.定义 组合逻辑电路:若逻辑电路在任何时刻产生的稳定输出 值仅仅取决于该时刻各输入值的组合,而与过去的输入值无 关,则称为组合逻辑电路。 二.结 构 组合逻辑电路的结构框图如下图所示。
输 X1 入X 2 信 号 Xn
组合 逻辑电路
信 号 Fm
F1 输 F2 出
第四章
组合逻辑电路
第
四
章
组
合
逻
辑
电
路
1
第四章
组合逻辑电路
数字系统中的逻辑电路按其结构可分为组合逻辑电路和 时序逻辑电路两大类型。 组合逻辑电路既可完成各种复杂的逻辑功能,又是时序 逻辑电路的组成部分,应用十分广泛。 本章知识要点: 组合逻辑电路分析和设计的基本方法; 组合逻辑电路设计中几个常见的实际问题及其处理; 组合逻辑电路中的竞争与险象问题。
图中, X1,X2 , … , Xn 是电路的 n 个输入信号, F1,F2,… , Fm 是电路的m个输出信号。输出信号是输入信号的函数。
第四章
组合逻辑电路
4.3.2 设计举例 例1 设计一个三变量“多数表决电路”。
解 分析:“多数表决电路”是按照少数服从多数的原则 对某项决议进行表决,确定是否通过。 令 逻辑变量A、B、C --- 分别代表参加表决的3个成员, 并约定逻辑变量取值为0表示反对,取值为1表示赞成; 逻辑函数 F --- 表示表决结果。F取值为0表示决议被否定, F取值为1表示决议通过。 按照少数服从多数的原则可知,函数和变量的关系是:当3 个变量 A、B、C中有 2 个或 2个以上取值为 1 时,函数F 的值为 1, 其他情况下函数F的值为0。
2
第四章
组合逻辑电路
4. 1 基 本 概 念
一.定义 组合逻辑电路:若逻辑电路在任何时刻产生的稳定输出 值仅仅取决于该时刻各输入值的组合,而与过去的输入值无 关,则称为组合逻辑电路。 二.结 构 组合逻辑电路的结构框图如下图所示。
输 X1 入X 2 信 号 Xn
组合 逻辑电路
信 号 Fm
F1 输 F2 出
第四章
组合逻辑电路
第
四
章
组
合
逻
辑
电
路
1
第四章
组合逻辑电路
数字系统中的逻辑电路按其结构可分为组合逻辑电路和 时序逻辑电路两大类型。 组合逻辑电路既可完成各种复杂的逻辑功能,又是时序 逻辑电路的组成部分,应用十分广泛。 本章知识要点: 组合逻辑电路分析和设计的基本方法; 组合逻辑电路设计中几个常见的实际问题及其处理; 组合逻辑电路中的竞争与险象问题。
图中, X1,X2 , … , Xn 是电路的 n 个输入信号, F1,F2,… , Fm 是电路的m个输出信号。输出信号是输入信号的函数。
第4章组合逻辑电路的分析与设计课件备课讲稿

① 根据给定的逻辑电路,从输入端开始,逐级推导 出输出端的逻辑函数表达式。
② 根据输出函数表达式列出真值表。 ③ 用文字概括出电路的逻辑功能。 ④ 改进设计,寻找最佳方案(未必进行)。
第4章 组合逻辑电路
第4章 组合逻辑电路
【例4-1】 分析图4-2所示组合逻辑电路的逻辑功能。
A
&
B
P1
& P2
① 表达式
Hale Waihona Puke G 3 B 3G G2 1
B3 B2
B2 B1
G 0 B 1 B 0
第4章 组合逻辑电路
① 表达式
G 3 B 3
G
G
2 1
B3 B2
B2 B1
G 0 B 1 B 0
② 真值表
③ 分析功能
自然二进制码至格雷码的转 换电路。
自然二进制码 格雷码
B3B2B1B0 G3G2G1G0 0000 0 0 0 0 0001 0 0 0 1 0010 0 0 1 1 0011 0 0 1 0 0100 0 1 1 0 0101 0 1 1 1 0110 0 1 0 1 0111 0 1 0 0 1000 1 1 0 0 1001 1 1 0 1 1010 1 1 1 1 1011 1 1 1 0 1100 1 0 1 0 1101 1 0 1 1 1110 1 0 0 1 1111 1 0 0 0
&
F
C
&
P3
图 4-2
第4章 组合逻辑电路
解:①根据给出的逻辑图, 逐级推导出输出端的逻辑函数表达式:
P1=AB
P2=BC P3=AC
FA•B B•A C C A B C AC
A
② 根据输出函数表达式列出真值表。 ③ 用文字概括出电路的逻辑功能。 ④ 改进设计,寻找最佳方案(未必进行)。
第4章 组合逻辑电路
第4章 组合逻辑电路
【例4-1】 分析图4-2所示组合逻辑电路的逻辑功能。
A
&
B
P1
& P2
① 表达式
Hale Waihona Puke G 3 B 3G G2 1
B3 B2
B2 B1
G 0 B 1 B 0
第4章 组合逻辑电路
① 表达式
G 3 B 3
G
G
2 1
B3 B2
B2 B1
G 0 B 1 B 0
② 真值表
③ 分析功能
自然二进制码至格雷码的转 换电路。
自然二进制码 格雷码
B3B2B1B0 G3G2G1G0 0000 0 0 0 0 0001 0 0 0 1 0010 0 0 1 1 0011 0 0 1 0 0100 0 1 1 0 0101 0 1 1 1 0110 0 1 0 1 0111 0 1 0 0 1000 1 1 0 0 1001 1 1 0 1 1010 1 1 1 1 1011 1 1 1 0 1100 1 0 1 0 1101 1 0 1 1 1110 1 0 0 1 1111 1 0 0 0
&
F
C
&
P3
图 4-2
第4章 组合逻辑电路
解:①根据给出的逻辑图, 逐级推导出输出端的逻辑函数表达式:
P1=AB
P2=BC P3=AC
FA•B B•A C C A B C AC
A
第4章 时序逻辑电路

建立时间tsetup:输入信号D在时钟边沿到达前需稳定的时间
保持时间thold :输入信号D在时钟边沿到达后需继续稳定的时间
20
2.4 D触发器
带使能端的D触发器:通过使能端EN信号来控制是否在时钟信号的触
发边沿进行数据的存储。
2选1
多路复用器
EN有效(=1) 选择外部D输入
EN无效(=0) 保持触发器当前的输出
D锁存器状态表、状态图和特征方程
状态转移表
D
Q*
0
1
0
1
D锁存器的时序图
特征方程:Q* = D(C=1)
状态图
D=1
D=0
0
1
D=1
D=0
D
C
Q
18
2.4 D触发器
由一对主、从D锁存器构成
主
D触发器符号
CLK
从
主锁存器
从锁存器
L
写入
不变
上升沿
锁存
开始写入
H
不变
写入
从锁存器只在时钟CLK的上升沿到来时采样主锁存器的输出QM的
• 输出逻辑模块G :输出函数(现态和外部输入的逻辑函数)
Mealy型:输出依赖于当前状态和当前输入信号
Moore型:输出仅依赖于当前状态,和当前输入信号无关
输出=G(现态,输入)
标准脉冲信号
属于Mealy型时序逻辑电路
6
1.2 时序逻辑电路基本结构
Moore型:输出信号仅依赖于当前状态。
输出=G(现态)
在置位态下,若R输入变为高电平,则经过两级门延迟变为复位态
EDA-基本逻辑电路设计

输入 输出
a 0 0 1 1
b 0 1 0 1
y 0 0 0 1
组合逻辑电路设计/简单门电路 2输入“与门”电路 组合逻辑电路设计 简单门电路/ 输入“与门” 简单门电路 输入 逻辑表达式方法 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MYAND2 IS PORT(A,B : IN STD_LOGIC; Y : OUT STD_LOGIC); END MYAND2; ARCHITECTURE ART OF MYAND2 IS BEGIN Y<=A AND B; END ART;
组合逻辑电路设计/译码器和编码器 3×8译码器 组合逻辑电路设计 译码器和编码器/ × 译码器 译码器和编码器 程序设计——查表法 查表法 程序设计
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DEC38 IS PORT (A : IN STD_LOGIC_VECTOR( 2 DOWNTO 0) ; Y : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0)) ; END DEC38 ; ARCHITECTURE ART OF DEC38 IS BEGIN WITH A SELECT Y<= "00000001" WHEN "000", "00000010" WHEN "001", "00000100" WHEN "010", "00001000" WHEN "011", "00010000" WHEN "100", "00100000" WHEN "101", "01000000" WHEN "110", "10000000" WHEN "111", "11111111" WHEN OTHERS ; END ART;
a 0 0 1 1
b 0 1 0 1
y 0 0 0 1
组合逻辑电路设计/简单门电路 2输入“与门”电路 组合逻辑电路设计 简单门电路/ 输入“与门” 简单门电路 输入 逻辑表达式方法 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MYAND2 IS PORT(A,B : IN STD_LOGIC; Y : OUT STD_LOGIC); END MYAND2; ARCHITECTURE ART OF MYAND2 IS BEGIN Y<=A AND B; END ART;
组合逻辑电路设计/译码器和编码器 3×8译码器 组合逻辑电路设计 译码器和编码器/ × 译码器 译码器和编码器 程序设计——查表法 查表法 程序设计
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DEC38 IS PORT (A : IN STD_LOGIC_VECTOR( 2 DOWNTO 0) ; Y : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0)) ; END DEC38 ; ARCHITECTURE ART OF DEC38 IS BEGIN WITH A SELECT Y<= "00000001" WHEN "000", "00000010" WHEN "001", "00000100" WHEN "010", "00001000" WHEN "011", "00010000" WHEN "100", "00100000" WHEN "101", "01000000" WHEN "110", "10000000" WHEN "111", "11111111" WHEN OTHERS ; END ART;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10‘b10_0000_0000:out=9;
endcase
end endmodule
第4章组合与时序逻辑电路设计
仿真结果如图:
可见输出完全由输入决定,为组合逻辑电路。
下面的译码器设计电路功能正好与编码器相反设计过程。
in0
out0
in1
out1 out2
BCD码 译 码
out3
器
in2 in3 in4
行为描述描述 module gate2(F,A,B,C,D); input A,B,C,D; output F; reg F;
input A,B,C,D; output F; assign F=~(A&B)|(B&C&D); endmodule
always @(A,B,C,D)
F<=~(A&B)|(B&C&D);
10000000 0 0 0 0 0 0
01000000 0 0 0 0 0 1
00100000 0 0 0 0 1 0
00010000 0 0 0 0 1 1
00001000 0 0 0 1 0 0
00000100 0 0 0 1 0 1
00000010 0 0 0 1 1 0
00000001 0 0 0 1 1 1
endmodule
必须将所有输入信号均
列出,这种方法适合复
第4章组合与时序逻辑电路设计
杂电路描述。
3、典型组合电路设计
⑴多位二进制加法器设计
由于位数较多采用结构描述和层次调用相对复杂,所以直接采用行为描述 进行设计。
例4.1 8位二进制加法器设计
第4章组合与时序逻辑电路设计
仿真结果
这种描述设计比较抽象但简单,无需了解内部是怎样的逻辑实现方式。
in5 in6 in7
in8
in9
第4章组合与时序逻辑电路设计
例4.3 也可以通过以下函数调用方法实现:
module bcd_enc(in,out);
input[9:0]in; output[3:0]out;
assign out=func_enc(in);
//函数调用
function [3:0] func_enc;
平为有效输入,out0~out3对
in5 in6
in7
应输出的BCD码。
in8 in9
第4章组合与时序逻辑电路设计
out0
BCD码 out1
3
BCD编码器真值表
输入端口
输出端口
in0 in1 in2 in3 in4 in5 in6 in7 in8 in9 out0 out1 out2 out3
00000000 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 第4章组合与时序逻辑电路设计
0
0
1
由BCD码真值表可得其输入与输出的逻辑关系为: out0=in8+in9 out1=in4+in5+in6+in7 out2=in2+in3+in6+in7 out3=in1+in3+in5+in7+in9
第4章组合与时序逻辑电路设计
⑵BCD编解码器设计
BCD码是一种二进制数字编码形式,利 用4位二进制单元存储一位十进制的数码, 使得二进制与十进制转换得以快速进行。 BCD码有多种编码方式,现采用8421码编 码。
如图in0~in9代表对应0~9共
in0 in1
10个数字输入端,输入高电
in2 in3 in4
①传统逻辑电路设计方法
实际逻辑 问题
真值表
逻辑 表达式
化简 变换
最简(或最合理) 逻辑表达式
逻辑图
传统方法通常采用逻辑电路图输入方式,由底层到高层进行设计。缺点 是效率低,设计设计时间长,容易出错。前面章节介绍的各种算数路径电路、 数字选择电路等均是典型组合电路例子,下面通过程序输入法设计较复杂组 合逻辑电路。
门级结构描述
module gate1(F,A,B,C,D);
F1
input A,B,C,D;
output F;
wire F1,F2;// 中间变量可以省略定义 nand(F1,A,B); //调用门元件
F2
and(F2,B,C,D); or(F,F1,F2);
数据流描述
endmodule
module gate2(F,A,B,C,D);
②Verilog HDL逻辑电路设计方法
只需根据实际的逻辑功能用Verilog HDL语言对其进行描述就可以,然 后仿真得到结果,观察是否符合实际逻辑功能。
常用三种描述方法是:结构描述法、数据流和行为描述方法。
第4章组合与时序逻辑电路设计
简单组合电路设计方法
(可采用结构描述、数据流描述和行为描述)
可以根据上述输入与输出的逻辑关系采用结构描述和数据 流描述实现该BCD编码器逻辑电路功能。
第4章组合与时序逻辑电路设计
例4.2 BCD码编码器程序
module BCD_Enc(in,out);
input[9:0] in;
output[3:0] out; reg[3:0]out;
always @(in)
第4章 组合与时序逻辑电路设计
第4章组合与时序逻辑电路设计
主要内容
◆ 一、基本组合电路设计 ◆ 二、基本时序电路设计
第4章组合与时序逻辑电路设计
一、 基本组合电路设计
1、组合逻辑电路概念:
是由门电路组合而成的具有某种功能的电路,电路中没有记忆单元,没有反馈 电路,输入决定输出。
每个输出变量是输入变量的逻辑函
//函数定义
input[9:0] in;
case(in)
10'b00_0000_0001:func_enc=0;
//always过程语句
begin
case(in)
10‘b00_0000_0001:out=0; 10‘b00_0000_0010:out=1; 10‘b00_0000_0100:out=2; 10‘b00_0000_1000:out=3; 10‘b00_0001_0000:out=4; 10‘b00_0010_0000:out=5; 10‘b00_0100_0000:out=6; 10‘b00_1000_0000:out=7; 10‘b01_0000_0000:out=8;
x1
数,每个时刻的输出状态仅与当时
输入有关,与输入的原状态无关。
x2
y1 f 1 ( x1 , x 2 , xi )
xi
y 2 f 2 ( x1 , x 2 , xi )
y1
组合
y2
逻辑
电路
yj
y j f j ( x1 , x 2 , xi )
第4章组合与时序逻辑电路设计
2、组合逻辑电路设计方法
endcase
end endmodule
第4章组合与时序逻辑电路设计
仿真结果如图:
可见输出完全由输入决定,为组合逻辑电路。
下面的译码器设计电路功能正好与编码器相反设计过程。
in0
out0
in1
out1 out2
BCD码 译 码
out3
器
in2 in3 in4
行为描述描述 module gate2(F,A,B,C,D); input A,B,C,D; output F; reg F;
input A,B,C,D; output F; assign F=~(A&B)|(B&C&D); endmodule
always @(A,B,C,D)
F<=~(A&B)|(B&C&D);
10000000 0 0 0 0 0 0
01000000 0 0 0 0 0 1
00100000 0 0 0 0 1 0
00010000 0 0 0 0 1 1
00001000 0 0 0 1 0 0
00000100 0 0 0 1 0 1
00000010 0 0 0 1 1 0
00000001 0 0 0 1 1 1
endmodule
必须将所有输入信号均
列出,这种方法适合复
第4章组合与时序逻辑电路设计
杂电路描述。
3、典型组合电路设计
⑴多位二进制加法器设计
由于位数较多采用结构描述和层次调用相对复杂,所以直接采用行为描述 进行设计。
例4.1 8位二进制加法器设计
第4章组合与时序逻辑电路设计
仿真结果
这种描述设计比较抽象但简单,无需了解内部是怎样的逻辑实现方式。
in5 in6 in7
in8
in9
第4章组合与时序逻辑电路设计
例4.3 也可以通过以下函数调用方法实现:
module bcd_enc(in,out);
input[9:0]in; output[3:0]out;
assign out=func_enc(in);
//函数调用
function [3:0] func_enc;
平为有效输入,out0~out3对
in5 in6
in7
应输出的BCD码。
in8 in9
第4章组合与时序逻辑电路设计
out0
BCD码 out1
3
BCD编码器真值表
输入端口
输出端口
in0 in1 in2 in3 in4 in5 in6 in7 in8 in9 out0 out1 out2 out3
00000000 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 第4章组合与时序逻辑电路设计
0
0
1
由BCD码真值表可得其输入与输出的逻辑关系为: out0=in8+in9 out1=in4+in5+in6+in7 out2=in2+in3+in6+in7 out3=in1+in3+in5+in7+in9
第4章组合与时序逻辑电路设计
⑵BCD编解码器设计
BCD码是一种二进制数字编码形式,利 用4位二进制单元存储一位十进制的数码, 使得二进制与十进制转换得以快速进行。 BCD码有多种编码方式,现采用8421码编 码。
如图in0~in9代表对应0~9共
in0 in1
10个数字输入端,输入高电
in2 in3 in4
①传统逻辑电路设计方法
实际逻辑 问题
真值表
逻辑 表达式
化简 变换
最简(或最合理) 逻辑表达式
逻辑图
传统方法通常采用逻辑电路图输入方式,由底层到高层进行设计。缺点 是效率低,设计设计时间长,容易出错。前面章节介绍的各种算数路径电路、 数字选择电路等均是典型组合电路例子,下面通过程序输入法设计较复杂组 合逻辑电路。
门级结构描述
module gate1(F,A,B,C,D);
F1
input A,B,C,D;
output F;
wire F1,F2;// 中间变量可以省略定义 nand(F1,A,B); //调用门元件
F2
and(F2,B,C,D); or(F,F1,F2);
数据流描述
endmodule
module gate2(F,A,B,C,D);
②Verilog HDL逻辑电路设计方法
只需根据实际的逻辑功能用Verilog HDL语言对其进行描述就可以,然 后仿真得到结果,观察是否符合实际逻辑功能。
常用三种描述方法是:结构描述法、数据流和行为描述方法。
第4章组合与时序逻辑电路设计
简单组合电路设计方法
(可采用结构描述、数据流描述和行为描述)
可以根据上述输入与输出的逻辑关系采用结构描述和数据 流描述实现该BCD编码器逻辑电路功能。
第4章组合与时序逻辑电路设计
例4.2 BCD码编码器程序
module BCD_Enc(in,out);
input[9:0] in;
output[3:0] out; reg[3:0]out;
always @(in)
第4章 组合与时序逻辑电路设计
第4章组合与时序逻辑电路设计
主要内容
◆ 一、基本组合电路设计 ◆ 二、基本时序电路设计
第4章组合与时序逻辑电路设计
一、 基本组合电路设计
1、组合逻辑电路概念:
是由门电路组合而成的具有某种功能的电路,电路中没有记忆单元,没有反馈 电路,输入决定输出。
每个输出变量是输入变量的逻辑函
//函数定义
input[9:0] in;
case(in)
10'b00_0000_0001:func_enc=0;
//always过程语句
begin
case(in)
10‘b00_0000_0001:out=0; 10‘b00_0000_0010:out=1; 10‘b00_0000_0100:out=2; 10‘b00_0000_1000:out=3; 10‘b00_0001_0000:out=4; 10‘b00_0010_0000:out=5; 10‘b00_0100_0000:out=6; 10‘b00_1000_0000:out=7; 10‘b01_0000_0000:out=8;
x1
数,每个时刻的输出状态仅与当时
输入有关,与输入的原状态无关。
x2
y1 f 1 ( x1 , x 2 , xi )
xi
y 2 f 2 ( x1 , x 2 , xi )
y1
组合
y2
逻辑
电路
yj
y j f j ( x1 , x 2 , xi )
第4章组合与时序逻辑电路设计
2、组合逻辑电路设计方法