牛客刷题<19>使用3-8译码器实现逻辑函数
题目:使用3-8译码器①实现逻辑函数_牛客题霸_牛客网
思路:此方法可适合于任何逻辑函数,需要将L=(~A)·C+A·B 逻辑式转换为最小项的形式。
实现逻辑表达式
38译码器的输出实际上包含了输入A2 A1 A0组成的所有最小项,而该逻辑表达式作为组合电路,其输出最终可化简为最小项的形式。
由于译码器的输出为最小项取反,而逻辑函数可以写成最小项之和的形式,故可以利用附加的门电路和译码器实现逻辑函数。
由逻辑表达式可得出,输出L的逻辑表达式用最小项表示为:
L = m1+m3+m6+m7
由于译码器的输出为最小项取反,下面需要将表达式中的最小项转换为最小项取反的形式。根据反演定理,转换结果如下:
L = (m1’m3’m6’m7’)’;
‘表示取反。
由上式可知,采用与非门即可实现该电路的组合逻辑输出。
`timescale 1ns/1nsmodule decoder_38(input E1_n ,input E2_n ,input E3 ,input A0 ,input A1 ,input A2 ,output wire Y0_n , output wire Y1_n , output wire Y2_n , output wire Y3_n , output wire Y4_n , output wire Y5_n , output wire Y6_n , output wire Y7_n
);
wire E ;
assign E = E3 & ~E2_n & ~E1_n;
assign Y0_n = ~(E & ~A2 & ~A1 & ~A0);
assign Y1_n = ~(E & ~A2 & ~A1 & A0);
assign Y2_n = ~(E & ~A2 & A1 & ~A0);
assign Y3_n = ~(E & ~A2 & A1 & A0);
assign Y4_n = ~(E & A2 & ~A1 & ~A0);
assign Y5_n = ~(E & A2 & ~A1 & A0);
assign Y6_n = ~(E & A2 & A1 & ~A0);
assign Y7_n = ~(E & A2 & A1 & A0);endmodulemodule decoder0(input A ,input B ,input C ,output wire L
);wire Y0_n;wire Y1_n;wire Y2_n;wire Y3_n;wire Y4_n;wire Y5_n;wire Y6_n;wire Y7_n;decoder_38 U0(.E1_n(1'b0),.E2_n(1'b0),.E3(1'b1),.A0(C),.A1(B),.A2(A),.Y0_n(Y0_n),.Y1_n(Y1_n),.Y2_n(Y2_n),.Y3_n(Y3_n),.Y4_n(Y4_n),.Y5_n(Y5_n),.Y6_n(Y6_n),.Y7_n(Y7_n));assign L = ~(Y1_n & Y3_n & Y6_n & Y7_n);
endmodule
Y1_n相当于~m1
此方法是A、B、C分别对应接入3-8译码器的A2、A1、A0,所以最小项是1、3、6、7
如果C、B、A分别对应接入3-8译码器的A2、A1、A0,所以最小项是3、4、6、7,就变成下面的解法
`timescale 1ns/1nsmodule decoder_38(input E1_n ,input E2_n ,input E3 ,input A0 ,input A1 ,input A2 ,output wire Y0_n , output wire Y1_n , output wire Y2_n , output wire Y3_n , output wire Y4_n , output wire Y5_n , output wire Y6_n , output wire Y7_n
);
wire E ;
assign E = E3 & ~E2_n & ~E1_n;
assign Y0_n = ~(E & ~A2 & ~A1 & ~A0);
assign Y1_n = ~(E & ~A2 & ~A1 & A0);
assign Y2_n = ~(E & ~A2 & A1 & ~A0);
assign Y3_n = ~(E & ~A2 & A1 & A0);
assign Y4_n = ~(E & A2 & ~A1 & ~A0);
assign Y5_n = ~(E & A2 & ~A1 & A0);
assign Y6_n = ~(E & A2 & A1 & ~A0);
assign Y7_n = ~(E & A2 & A1 & A0);endmodulemodule decoder0(input A ,input B ,input C ,output wire L
);wire [7:0] Y;assign L = ~Y[3] + ~Y[4] + ~Y[6] + ~Y[7];decoder_38 inst(.E1_n(0),.E2_n(0),.E3 (1),.A0(A),.A1(B),.A2(C),.Y0_n(Y[0]),.Y1_n(Y[1]),.Y2_n(Y[2]),.Y3_n(Y[3]),.Y4_n(Y[4]),.Y5_n(Y[5]),.Y6_n(Y[6]),.Y7_n(Y[7]));
endmodule
解法三:最容易想到的
`timescale 1ns/1nsmodule decoder_38(input E1_n ,input E2_n ,input E3 ,input A0 ,input A1 ,input A2 ,output wire Y0_n , output wire Y1_n , output wire Y2_n , output wire Y3_n , output wire Y4_n , output wire Y5_n , output wire Y6_n , output wire Y7_n
);
wire E ;
assign E = E3 & ~E2_n & ~E1_n;
assign Y0_n = ~(E & ~A2 & ~A1 & ~A0);
assign Y1_n = ~(E & ~A2 & ~A1 & A0);
assign Y2_n = ~(E & ~A2 & A1 & ~A0);
assign Y3_n = ~(E & ~A2 & A1 & A0);
assign Y4_n = ~(E & A2 & ~A1 & ~A0);
assign Y5_n = ~(E & A2 & ~A1 & A0);
assign Y6_n = ~(E & A2 & A1 & ~A0);
assign Y7_n = ~(E & A2 & A1 & A0);endmodulemodule decoder0(input A ,input B ,input C ,output wire L
);assign L = (~A&C)|(A&B);
endmodule
解法四:简单
`timescale 1ns/1nsmodule decoder_38(input E1_n ,input E2_n ,input E3 ,input A0 ,input A1 ,input A2 ,output wire Y0_n , output wire Y1_n , output wire Y2_n , output wire Y3_n , output wire Y4_n , output wire Y5_n , output wire Y6_n , output wire Y7_n
);
wire E ;
assign E = E3 & ~E2_n & ~E1_n;
assign Y0_n = ~(E & ~A2 & ~A1 & ~A0);
assign Y1_n = ~(E & ~A2 & ~A1 & A0);
assign Y2_n = ~(E & ~A2 & A1 & ~A0);
assign Y3_n = ~(E & ~A2 & A1 & A0);
assign Y4_n = ~(E & A2 & ~A1 & ~A0);
assign Y5_n = ~(E & A2 & ~A1 & A0);
assign Y6_n = ~(E & A2 & A1 & ~A0);
assign Y7_n = ~(E & A2 & A1 & A0);endmodulemodule decoder0(input A ,input B ,input C ,output wire L
);wire y0,y1,y2,y3,y4,y5,y6,y7;decoder_38 inst(0,0,1,C,B,A,y0,y1,y2,y3,y4,y5,y6,y7);assign L = ~y1 + ~y3 + ~y6 + ~y7;
endmodule
在例化时不用写点和括号了
牛客刷题<19>使用3-8译码器实现逻辑函数相关推荐
- 牛客刷题-Java面试题库【动态更新添加题目】(2023.06.19更新)
讲在前面 ✨ 牛客刷题日记–理解为重中之重 刷题一方面是持续的了解到自己哪方面比较欠缺,另一方面也是从各大厂的面试题可以看出当前所需的技术栈的偏重点,持续的巩固基础和查漏补缺,一如代码深似海–学无止境 ...
- 牛客刷题日记(2021-12-8)
牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...
- 【Shell牛客刷题系列】SHELL5 打印空行的行号:一起学习grep命令搭配正则表达式的使用
该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...
- 【牛客刷题专栏】0x27:JZ29 顺时针打印矩阵(C语言编程题)
前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失. 个人刷题练习系列专栏:个人CSDN牛客刷题专栏. 题目来自:牛客/题库 / 在线编程 / 剑 ...
- 牛客刷题日记(2021-11-24)
牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...
- 【字节面试题】牛客刷题偶遇字节后端笔试面经 撸它
想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送,微信随时解答你的疑问 牛客刷题偶遇 字节后端笔试0715 撸它 一共两道编程题. 1. 给 ...
- 最长上升子序列(LIS),牛客刷题
目录: 最长上升子序列(LIS) 1.模板(数据较小) 2.模板(数据较大) 牛客刷题 1. 牛客练习赛107A:如见青山 2.牛客小白月赛65A牛牛去购物 3.牛客小白月赛65B牛牛去购物 4.牛客 ...
- 【Shell牛客刷题系列】SHELL4 输出第5行的内容:回顾head、tail命令和sed、awk命令的使用
该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...
- 【Shell牛客刷题系列】SHELL1 统计文件的行数:学习wc命令和文本三剑客awk、grep、sed命令
该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...
最新文章
- oracle学习笔记5:pl/sql流程控制语句
- Po校园接入云信,多机位“有毒”直播燃爆LIVE
- 百度贴吧个人主页_百度手机App商店社交应用排行榜,微信连续三个月霸占榜首...
- PHP三年15K,程序员月薪15K相亲三年才成功,被拒理由:这个薪资提鞋都嫌弃
- 第一篇博客---JavaSE基础部分回顾总结01概述、基础语法
- ueditor 上传路径 Php_v9切换ueditor后图片上传路径问题 改成绝对路径
- HDOJ 1713 相遇周期 (最大公约数与最小公倍数)
- 入侵检测技术目的-发现黑客
- 强烈推荐大家看这篇文章:iOS开发常用三方库、插件、知名博客等等(特别有用)
- Android 获取手机分辨率
- 邮件撤回方法详解,一键解决发错邮件的尴尬
- 商业价值(PgMP)
- 医疗机构如何成功实施CRM?如下几点是关键因素
- 【工具篇】Unity使用Spine2D动画,代码控制
- 前端课程设计02-购物商城
- R_数据视觉化处理_初阶_02
- Office---Excel操作技巧使用正则表达式
- mac怎么查node版本_Mac更新node版本和npm版本
- IM开发——群组创建业务设计
- wikisql 数据集解释_【Wikidata】维基数据详解
热门文章
- Head First Servlet JSP读书笔记
- js中动态获取页面的高度和宽度的方法总结
- TF内存卡(SDHC)的传输规范
- C语言结构体字节对齐规则
- 使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html...
- 计算机设备管理器里面没有图像,设备管理器里没有图像设备怎么办?
- RSF-Center,集群模式下-协调数据结构
- 图片太大,导致页面加载过慢的处理方法
- 一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。问他赚了多少?
- 网易2011笔试题详解