verilog组合逻辑实验报告

2020-06-21 15:57

组合逻辑实验报告

无02 季涛2010012107

一多路选择器

实验目的

掌握组合逻辑基本设计方法;掌握多路选择器的基本原理。

设计方案

如图为二选一多路选择器的基本结构,根据真值表推出逻辑表达式为y=~s&a|s&b。 卡诺图如下图所示:

s/AB 0 1

00 01 1 11 1 1 10 1 冒险分析:根据两级网络的冒险检测和消除理论我们得知,如果初始输入值和最终输入

值能够被同一个本原蕴含想覆盖就不会出现毛刺,当输入变化跨越了多个本原蕴含项就会产生毛刺。

由卡诺图上可以看出,当AB=11,从s=0到s=1状态跳变时,这个过程没有包含在上面的逻辑表示式中,因此电路会产生冒险。

消除冒险的根本策略是添加冗余的本原蕴涵项。在这道题里,只要在逻辑表达式中加上a&b这一项即可。当然我们这里只考虑了单个输入发生变化的问题,因为在实际应用中,输入是按一定顺序变化的,即使有多个输入发生变化也是如此。 还有一种方案就是利用采样脉冲消除冒险。在这里就不多说了。

在此基础上可以设计出四选一的多路选择器,也就是实例化两个二选一多路选择器,然后再对这两个选择器的输出进行一次二选一。

代码

二选一多路选择器:

module mux_2_1(a,b,s,y,leda,ledb,leds);

input a,b,s;

output y,leda,ledb,leds;

wire s1,a1,a2; buf b1(leda,a); buf b2(ledb,b); buf b3(leds,s);

not not1(s1,s);

endmodule 管脚约束:

NET \NET \NET \NET \NET \NET \NET \

四选一多路选择器:

module mux_4_1(a,b,c,d,s1,s2,y,leda,ledb,ledc,ledd,leds1,leds2 );

input a,b,c,d,s1,s2;

output y,leda,ledb,ledc,ledd,leds1,leds2; wire ledy1,ledy2; wire y1,y2;

and and1(a1,s1,a); and and2(a2,s,b); or or1(y,a1,a2);

mux_2_1 m1(a,b,s1,y1,leda,ledb,leds1); mux_2_1 m2(c,d,s1,y2,ledc,ledd,leds1); mux_2_1 m3(y1,y2,s2,y,ledy1,ledy2,leds2);

endmodule 管脚约束:

NET \NET \NET \NET \NET \NET \NET \

NET \NET \NET \NET \NET \NET \

仿真结果

上图为四选一多路选择器的modelsim仿真结果。符合实验要求。

综合和硬件调试情况

调试结果符合预期,没有问题

二译码器

实验目的

掌握组合逻辑设计方法;掌握译码器设计原理。


verilog组合逻辑实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新广州版七年级下册英语课文与翻译

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: