第4章组合与时序逻辑电路设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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、组合逻辑电路设计方法
可以根据上述输入与输出的逻辑关系采用结构描述和数据 流描述实现该BCD编码器逻辑电路功能。
第4章组合与时序逻辑电路设计
例4.2 BCD码编码器程序
module BCD_Enc(in,out);
input[9:0] in;
output[3:0] out; reg[3:0]out;
always @(in)
①传统逻辑电路设计方法
实际逻辑 问题
真值表
逻辑 表达式
化简 变换
最简(或最合理) 逻辑表达式
逻辑图
传统方法通常采用逻辑电路图输入方式,由底层到高层进行设计。缺点 是效率低,设计设计时间长,容易出错。前面章节介绍的各种算数路径电路、 数字选择电路等均是典型组合电路例子,下面通过程序输入法设计较复杂组 合逻辑电路。
//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;
②Verilog HDL逻辑电路设计方法
只需根据实际的逻辑功能用Verilog HDL语言对其进行描述就可以,然 后仿真得到结果,观察是否符合实际逻辑功能。
常用三种描述方法是:结构描述法、数据流和行为描述方法。
第4章组合与时序逻辑电路设计
简单组合电路设计方法
(可采用结构描述、数据流描述和行为描述)
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
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;
行为描述描述 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);
第4章 组合与时序逻辑电路设计
第4章组合与时序逻辑电路设计
主要内容
◆ 一、基本组合电路设计 ◆ 二、基本时序电路设计
第4章组合与时序逻辑电路设计
一、 基本组合电路设计
1、组合逻辑电路概念:
是由门电路组合而成的具有某种功能的电路,电路中没有记忆单元,没有反馈 电路,输入决定输出。
每个输出变量是输入变量的逻辑函
平为有效输入,out0~out3对
in5 in6
in7
应输出的BCD码。
in8 in9
第4章组合与时序逻辑电路设计
out0
BCD码 out1
编
out2
码 器
out3
BCD编码器真值表
输入端口
输出端口
in0 in1 in2 in3 in4 in5 in6 in7 in8 in9 out0 out1 out2 out3
//函数定义
input[9:0] in;
case(in)
10'b00_0000_0001:func_enc=0;
endmodule
必须将所有输Leabharlann Baidu信号均
列出,这种方法适合复
第4章组合与时序逻辑电路设计
杂电路描述。
3、典型组合电路设计
⑴多位二进制加法器设计
由于位数较多采用结构描述和层次调用相对复杂,所以直接采用行为描述 进行设计。
例4.1 8位二进制加法器设计
第4章组合与时序逻辑电路设计
仿真结果
这种描述设计比较抽象但简单,无需了解内部是怎样的逻辑实现方式。
第4章组合与时序逻辑电路设计
⑵BCD编解码器设计
BCD码是一种二进制数字编码形式,利 用4位二进制单元存储一位十进制的数码, 使得二进制与十进制转换得以快速进行。 BCD码有多种编码方式,现采用8421码编 码。
如图in0~in9代表对应0~9共
in0 in1
10个数字输入端,输入高电
in2 in3 in4
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
10‘b10_0000_0000:out=9;
endcase
end endmodule
第4章组合与时序逻辑电路设计
仿真结果如图:
可见输出完全由输入决定,为组合逻辑电路。
下面的译码器设计电路功能正好与编码器相反设计过程。
in0
out0
in1
out1 out2
BCD码 译 码
out3
器
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);