实验题目:简单组合逻辑电路
学生姓名:叶子昂
学生学号:PB20020586
完成时间:2021年10月28日
- 指导书
- 熟悉Logism的基本用法
- 进一步熟悉Logisim更多功能
- 用Logisim设计组合逻辑电路并进行仿真
- 初步学习Verilog语法
- 个人
- 学习综合利用两种工具设计实现逻辑电路
- 体会verilog语言特性,了解其与编程语言的不同
- 有Windows系统的电脑,能连接校园网
- Logisim仿真工具
- Vivido软件
- vlab.ustc.edu.cn平台
- 使用真值表用Logisim自动生成电路
- 用表达式生成电路图
- Verilog HDL入门
-
例一:(简单模块)
module test ( input in, output out, output out_n ); assign out=in; assign out_n=~in; endmodule
-
例二:(位拼接)
module add( input a,b, output sum,cout ); assign{cout,sum}=a+b; endmodule
-
例三(模块例化)
module full_add ( input a,b,cin, output sum,cout ); wire s,carry1,carry2; add add_inst1(.a(a),.b(b),.sum(s),.cout(carr1)); add add_inst2(.a(s),.b(cin),.sum(sum),.cout(carr2)); assign cout=carry1|carry2; endmodule
-
首先列出表达式
a,b,c分别为A2到A0
d,e,f分别为G1到G3
x到t即为Y7到Y0
x=~a + ~b + ~c + ~d + e + f y=~a + ~b + ~c + ~d + e + f z=~a + ~c + b + ~d + e + f u=~a + c + b + ~d + e + f v=~b + ~c + a + ~d + e + f w=~b + c + a + ~d + e + f s=~b + c + a + ~d + e + f t=c + b + a + ~d + e + f
-
输入Logisim中自动生成电路如下:
-
使用Logisim画出1bit位宽的二选一数据选择器
-
根据电路图按要求用verilog实现
module selsct ( input a,b,sel, output cout ); wire s,carry1,carry2; not(s,sel); and(carry1,s,a); and(carry2,sel,b); or(cout,carry1,carry2); endmodule
-
画出由二选一选择器构成四选一选择器的电路图
-
例化题目三中的二选一选择器
module top_module( input a,b,c,d,sel1,sel2, output out ); wire temp1,temp2; selsct instance1(a,b,sel1,temp1); selsct instance2(c,d,sel1,temp2); selsct instance3(temp1,temp2,sel2,out); endmodule
-
根据真值表列出逻辑表达式
y2=i[7] | i[6] | i[5] | i[4]
y1=i[7] | i[6] | ~i[5]&~i[4]&i[3] | ~i[5]&~i[4]&i[2]
y0=i[7] | ~i[6]&i[5] | ~i[6]&~i[4]&i[3] | ~i[6]&~i[4]&~i[2]&i[1]
-
用verilog代码实现
module preinfor ( input [7:0] i, output [2:0] y ); assign y2=i[7] | i[6] | i[5] | i[4]; assign y1=i[7] | i[6] | ~i[5]&~i[4]&i[3] | ~i[5]&~i[4]&i[2]; assign y0=i[7] | ~i[6]&i[5] | ~i[6]&~i[4]&i[3] | ~i[6]&~i[4]&~i[2]&i[1]; endmodule
-
根据verilog代码得到逻辑表达式
s1=~a&~b&c | ~a&b&~c | a&~b&~c | a&b&c;
s2=~a&b&c | a&~b&c | a&b&~c | ~a&~b&~c;
-
输入Logisim得到电路图以及真值表
-
从真值表可以看出当输入有0个或2个为1时 s1为0 s2为1 而当输入有1个或3个为1时 s1为1 s2为0 从而得知该电路功能为判断输入为高电平信号的个数(或奇偶性)。
-
- 通过本次实验我进一步了解和熟悉了Logisim的功能,学会了通过Logisim自动生成和分析电路,能够利用Logisim设计实现组合逻辑电路并进行仿真。
- 初步了解了verilog并通过实验和oj平台掌握了verilog的基本语法,能够用其描述一些简单的电路,能够将实现的模块实例化并简单的应用
-
本次实验进一步应用Logisim和简单讲解使用verilog,较为简单
-
本次实验分块明确,讲解清楚,任务量适中
-
希望能加入如运算优先级,关键词含义之类的讲解