实验五 组合逻辑电路设计剖析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
always @(a,b) begin if (a==b) begin
x<=1'b1;y<=1'b0;z<=1'b0;end else if (a<b) begin
y<=1'b1;x<=1'b0;z<=1'b0;end else begin
z<=1'b1;x<=1'b0;y<=1'b0;end end
这个二进制半加器电路仿真结果说明so与co的输出完全由输入决定,输出同 步随输入而变,这就是组合电路特征。
2、组合逻辑电路设计方法
⑴传统逻辑电路设计方法
实际逻辑 问题
真值表
逻辑 表达式
化简 变换
最简(或最合理) 逻辑表达式
逻辑图
⑵Verilog HDL逻辑电路设计方法
只需根据实际的逻辑功能用Verilog HDL语言对其进行描述,然后仿真 得到结果,观察是否符合实际逻辑功能。
endmodule
module comp2_1(x,y,z,a,b); input a ,b; output x,y,z;
assign x=(a==b); assign y=(a<b); assign z=(a>b); endmodule
2、编解码器设计
是一种二进制数字编码形式,利用4个二 进制单元存储一位十进制的数码,使得二进 制与十进制转换得以快速进行。BCD码有多 种编码方式,现采用8421码编码。
EDA课程实验五
组合逻辑电路设计
EDA课组
一、实验目的:
1、掌握组合逻辑电路设计原理及特点; 2、学习使用组合逻辑电路设计方法;
二、实验内容
1、 设计几种典型组合逻辑电路系统; 2、通过仿真软件进行验证仿真 。
三、实验原理
1、组合逻辑电路概念:
是由门电路组合而成的具有某种功能的电路,电路中没有记忆单元,没有反馈 电路,输入决定输出。
not N1(out1,out2,in); //1个输入in,2个输出 out1,out2非门
module bj (a,b,x,y,z);
input a,b;output x,y,z;wire not_a,not_b,F,G;
not(not_b,b); not(not_a,a);
and(F,not_a,not_b); and(G,a,b);
建立工程及文件comp2_1,方法同前面实验。
module comp2_1(x,y,z,a,b); input a ,b;
output x,y,z; assign x=(a==b)?1:0;//条件操作符?
assign y=(a<b)?1:0;
assign z=(a>b)?1:0; endmodule
BCD码编码器程序:采用行为描述实现编码逻辑电路功能
100000 0 0 0 0 0 0 0
0
010000 0 0 0 0 0 0 0
1
001000 0 0 0 0 0 0 1
0
000100 0 0 0 0 0 0 1
1
000010 0 0 0 0 0 1 0
0
000001 0 0 0 0 0 1 0
1
000000 1 0 0 0 0 1 1
0
000000 0 1 0 0 0 1 1
1
000000 0 0 1 0 1 0 0
0
000000 0 0 0 1 1 0 0
1
由BCD码真值表可得其输入与输出的逻辑关系为:
out0=in8+in9 out1=in4+in5+in6+in7 out2=in2+in3+in6+in7 out3=in1+in3+in5+in7+in9
可以根据上述输入与输出的逻辑关系采用结构描述和数据 流描述实现该BCD编码器逻辑电路功能。
组合逻辑电路可采用结构描述、数据流描述和行为描述方法实现, 一般采用后面两种方法,特殊情况采用结构描述。
三、实验步骤
1、设计一个二进制数字比较器,比较输入数据a与b的大 小,并分别输出到x,y和z。
输入
输出
a
b
x(a=b) y(a<b) z(a>b)
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
ቤተ መጻሕፍቲ ባይዱ
0
0
由上面真值表可知其逻辑关系为:
or(x,F,G);
and(y,not_a,b); and(z,a,not_b);
endmodule
可以通过逻辑电路图输入进行设计,下面通过Verilog HDL软件进行电 路功能描述来完成设计。
⑴数据流描述: 常采用如下连续赋值语句:assign[delay] LHS_net=RHS_expression;
*也可以采用逻辑表达式进行编写
assign x=(~a&~b)| (a&b) assign y=~a&b assign z= a&~b
可以观察到图中输入状态完全决定输出状态!输出同步跟 随输入而变!
⑵行为描述: 常采用如下方式语句
always @(输入参数)
module comp2_2(x,y,z,a,b); input a ,b; output x,y,z; reg x,y,z;
每个输出变量是输入变量的逻辑函
x1
数,每个时刻的输出状态仅与当时
输入有关,与输入的原状态无关。
x2
y1
组合
y2
逻辑
y1 f 1 ( x1, x2 , xi )
电路
xi
yj
y2 f 2 ( x1, x2 , xi )
y j f j ( x1, x2 , xi )
下面观察已做过的实验特点
这个数字选择电路仿真结果说明y的输出完全由输入决定,输出同步随输入而 变,这就是组合电路特征。
如图in0~in9代表对应0~9共
in0 in1
10个数字输入端,输入高电
in2 in3 in4
平为有效输入,out0~out3对
in5 in6
in7
应输出的BCD码。
in8 in9
out0
BCD码 out1

out2


out3
BCD编码器真值表
输入端口
输出端口
in0 in1 in2 in3 in4 in5 in6 in7 in8 in9 out0 out1 out2 out3
x ab ab, y ab, z ab
⑴结构描述:
采用内部逻辑实例化调用方式描述 x ab ab, y ab, z ab
调用门元件的格式为:
门元件名字 <例化的门名字>(<端口列表>)
其中普通门的端口列表按下面的顺序列出:
(输出,输入1,输入2,输入3……);
比如: and a1(out,in1,in2,in3); //三输入与门 or a2(out,in1,in2,in3); //三输入或门
相关文档
最新文档