VerilogHDL程序设计与仿真作业4:

——实现74HC151的8选1数据选择器功能以及用两片74HC151组成一个16选1数据选择器

文章目录

  • VerilogHDL程序设计与仿真作业4:
      • ——实现74HC151的8选1数据选择器功能以及用两片74HC151组成一个16选1数据选择器
    • 一、实验目的
    • 二、实现74HC151的8选1数据选择器功能
      • 1、设计思路
      • 2、实现代码
      • 3、测试代码
      • 4、仿真
    • 三、用两片74HC151组成一个16选1数据选择器
      • 1、设计思路
      • 2、实现代码
      • 3、测试代码
      • 4、仿真

一、实验目的

  • 实现74HC151的8选1数据选择器功能
  • 用两片74HC151组成一个16选1数据选择器

二、实现74HC151的8选1数据选择器功能

1、设计思路

  • 结合74HC151的真值表以及逻辑符号,采用行为级建模即可实现74HC151的8选1数据选择器功能。

  • 逻辑符号与引脚图

  • 74HC151的真值表

2、实现代码

//文件名称:_74HC151.v
//fuchaoxinHUST11202020
module _74HC151(D,S,E_,Y,Y_);
input [7:0] D;
input [2:0] S;
input E_;
output reg Y;
output reg Y_;
/*说明:
输入端:[2:0] S是选择信号 E—_是使能信号;
输出端:Y和Y_是输出的两个信号;
E_=1时,Y=0,Y_=1;
E_=0时,Y等于D[0]到D[7],Y_等于!D[0]到!D[7]。
*/always @(*) beginif (E_==0) begincase(S[2:0])3'b000: Y=D[0];3'b001: Y=D[1];3'b010: Y=D[2];3'b011: Y=D[3];3'b100: Y=D[4];3'b101: Y=D[5];3'b110: Y=D[6];3'b111: Y=D[7];          endcaseendelse Y=0;// E_=1时,Y=0,Y_=1;Y_ = ~Y;//按位取反得到Y_
end
endmodule

3、测试代码

//文件名称:Test_74HC151.v
//fuchaoxinHUST11202020
`timescale 10ns/1ns
module Test_74HC151;
reg [7:0] D;
reg [2:0] S;
reg E_;
wire Y;
wire Y_;_74HC151 U0(D,S,E_,Y,Y_);//实例化元件initial $monitor($time,":\t D=%b, S=%b, E_=%b, Y=%b, Y_=%b \n", D, S, E_, Y, Y_); //监视器的显示内容
initial begin
//无法正常选择E_=1; S[2:0]=3'b000; D[7:0]=8'b00000001;#5E_=1; S[2:0]=3'b001; D[7:0]=8'b00000010;#5
//正常进行选择E_=0; S[2:0]=3'b010; D[7:0]=8'b00000100;#5E_=0; S[2:0]=3'b011; D[7:0]=8'b00001000;#5E_=0; S[2:0]=3'b100; D[7:0]=8'b00010000;#5E_=0; S[2:0]=3'b101; D[7:0]=8'b00100000;#5$stop;//停止模拟仿真
end
endmodule

4、仿真

  • 波形

  • 监控器

三、用两片74HC151组成一个16选1数据选择器

1、设计思路

  • 结合74HC151_2的原理图,采用行为级、门级建模即可实现利用两片74HC151的16选1数据选择器功能。

  • 原理图

2、实现代码

//文件名称:_74HC151.v
//文件名称:_74HC151_2.v
//fuchaoxinHUST11202020
module _74HC151(D,S,E_,Y,Y_);
input [7:0] D;
input [2:0] S;
input E_;
output reg Y;
output reg Y_;
/*说明:
输入端:[2:0] S是选择信号 E_是使能信号;
输出端:Y和Y_是输出的两个信号;
E_=1时,Y=0,Y_=1;
E_=0时,Y等于D[0]到D[7],Y_等于!D[0]到!D[7]。
*/always @(*) beginif (E_==0) begincase(S[2:0])3'b000: Y=D[0];3'b001: Y=D[1];3'b010: Y=D[2];3'b011: Y=D[3];3'b100: Y=D[4];3'b101: Y=D[5];3'b110: Y=D[6];3'b111: Y=D[7];          endcaseendelse Y=0;// E_=1时,Y=0,Y_=1;Y_ = ~Y;//按位取反得到Y_
end
endmodule
//一片74HC151module _74HC151_2(D,A,D_0,Y,Y_);
input D;            //使能信号D与选择信号[2:0]A
input [2:0] A;     //A[2]=C, A[1]=B, A[0]=A
input [15:0] D_0; //输入信号
output Y,Y_;     //输出信号
/*说明:
输入端:;D为输入的使能信号,D=0,片1工作,D=1,片2工作;
ABC按顺序输入,分别为两片74HC151的选择信号S;数组D分别赋值给两片74HC151,作为他们各自的输入D数组;
输出端:两片74HC151分别输出自己的Y1、Y2与Y1_、Y2_,再经过或门处理,得到实际的输出Y与Y_;
*///中间变量定义
wire [7:0] D_1,D_2;
wire [2:0] S_1,S_2;
wire Y1,Y2,Y1_,Y2_;//EI_1=EO_2 两者共用一个变量 已有EI=EI_2 EO=EO_1//输入部分
genvar i;
for(i=7;i>=0;i=i-1)  assign D_1[i] = D_0[i];
for(i=15;i>=8;i=i-1) assign D_2[i-8] = D_0[i];
for(i=2;i>=0;i=i-1)  assign S_1[i] = A[i];
for(i=2;i>=0;i=i-1)  assign S_2[i] = A[i];//同时执行两片74HC151,得到各自的输出值
_74HC151 U1(D_1,S_1,D,Y1,Y1_);
_74HC151 U2(D_2,S_2,~D,Y2,Y2_);//输出部分
or G0(Y,Y1,Y2);
or G1(Y_,Y1_,Y2_);//先输入,经过第一级电路处理后得到第一次输出,再次用OR门处理得到输出值endmodule
//用两片74HC151组成16选1的数据选择器

3、测试代码

//文件名称:Test_74HC151_2.v
//fuchaoxinHUST11202020
`timescale 10ns/1ns
module Test_74HC151_2;
reg D; //D=0,片1工作,D=1,片2工作。
reg [2:0] A;
reg [15:0] D_0;
wire Y,Y_;_74HC151_2 U0(D,A,D_0,Y,Y_);//实例化元件initial$monitor($time,":\t D=%b, A=%b, D_0=%b, Y=%b, Y_=%b \n", D, A, D_0, Y, Y_); //监视器的显示内容
initial begin
//第一片74HC151工作D=0; A[2:0]=3'b001; D_0[15:0]=16'b0000_0000_0000_0010;#5D=0; A[2:0]=3'b010; D_0[15:0]=16'b0000_0010_0000_0100;#5D=0; A[2:0]=3'b011; D_0[15:0]=16'b0000_0010_0000_1000;#5//第二片74HC151工作D=1; A[2:0]=3'b100; D_0[15:0]=16'b0001_0000_0000_0000;#5D=1; A[2:0]=3'b101; D_0[15:0]=16'b0010_0000_0000_0000;#5D=1; A[2:0]=3'b110; D_0[15:0]=16'b0100_0000_0000_0000;#5$stop;//停止模拟仿真
end
endmodule

4、仿真

  • 波形

  • 监视器

实现74HC151的8选1数据选择器功能以及用两片74HC151组成一个16选1数据选择器相关推荐

  1. R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe、按照多列对数据进行全连接

    R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe.按照多列对数据进行全连接 目录

  2. ubuntu自定义安装里怎么选_超市里的五香粉怎么选?看懂配料表,两个小技巧,不怕选不好。...

    点击右上角[关注],可获得本头条号推荐的更多美食干货 五香粉是家庭常用的一种调味料,焖.炖.烧.煮.卤都常备使用,如今市场上的五香粉品牌也是相当繁多,质量也是参差不齐,有时买到的五香粉烧制的菜肴根本就 ...

  3. matlab怎么编写数据处理程序,【悬赏--已结束】求编写一个基于Matlab的数据处理程序...

    方案征集活动已经结束,不再接受新的方案投稿.共征集到3个方案,基础方案,LabView方案.以及Matlab GUI方案.详见2楼. 求Matlab编程实现以下功能:基本要求 1.读取8192个字节的 ...

  4. 两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中

    具体的意思请看图片     上边的两个表我们分别称为excel1和excel2,其中excel1中的A列只是excel2中A列的一部分,现在我们想以两个表的A列为匹配ID来使得excel1后边列的数据 ...

  5. mysql 导出表数据到另一张表_yz-Mysql数据库中一个表中的数据导出来到另外一个数据库的表格...

    -----------方式一-------------------------------------------------------------------------------------- ...

  6. html滚屏点击弹出滚屏相应信息_自然人电子税务局扣缴端新增人员信息及申报明细数据下载功能...

    自然人电子税务局扣缴端8月份升级,新增人员信息及申报明细数据下载功能. 扣缴单位安装扣缴端的报税电脑重装后,因没有提前备份或其他原因找不到扣缴端备份文件,无法使用备份文件恢复时,可以使用"历 ...

  7. SQL数据集支持数据参考功能,新增飞书、钉钉、企业微信平台接入支持,DataEase开源数据可视化分析平台v1.15.0发布

    10月10日,DataEase开源数据可视化分析平台正式发布v1.15.0版本. 在这一版本中,DataEase对数据源和数据集两个板块的交互进行了全面优化:数据集方面,SQL数据集新增数据参考功能, ...

  8. MySQL——MySQL的数据查询功能

    MySQL的数据查询功能 SQL查询的7个关键词--以链家二手房数据为例 在实际工作中,使用最多的就是数据库的查询功能了.在数据查询过程中,通常会用到以下7个核心关键词: SELECT <sel ...

  9. 无广告托管应用,免费的应用分发平台,提供下载次数等数据统计,Android、ios应用合并,一个二维码搞定

    前言 省去自建服务器的麻烦,并且提供了下载次数等数据统计,可以随时查看历史版本,一个二维码搞定Android和ios,扫码时可根据机型自动识别,给开发者提供很大便利,不仅免费而且操作非常的简单. 1. ...

  10. 大数据早报:百度开源移动端深度学习框架 中国联通成立大数据公司(9.26)

    数据早知道,上36dsj看早报! 来源36大数据,作者:奥兰多 『深度学习』百度开源移动端深度学习框架mobile-deep-learning 2017 年 9 月 25 日,百度在 GitHub 开 ...

最新文章

  1. 扔掉Swagger,试试这款功能强大,零注解侵入的API接口文档生成工具!
  2. php域名黑名单,thinkphp 6 IP 黑名单功能
  3. docker容器内部无法ping通域名?
  4. 两个for还是一个for?
  5. python-leepcode-作用解析 - 5-27
  6. 【Arduino】HX711 拉力计称重模块 两个模块同时使用
  7. seo 伪原创_SEO干货——文章到底如何伪原创?
  8. java 注解数组初始化_Java 之 注解的定义
  9. 前端学习(2361):下拉刷新的学习
  10. 信息学竞赛计算机基础知识,信息学奥赛-计算机基础知识.doc
  11. 数据的统计分析与描述
  12. 云服务器在哪里创建网站目录,如何在云服务器创建根目录
  13. BP神经网络:feedforwardnet版回归预测
  14. 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
  15. 使用FreeImage保存彩图,灰度图
  16. QT利用UDP实现简单群聊系统
  17. 逻辑清晰四个实用原则(金字塔原理)
  18. HTML5制作诗歌锦集,轻叩诗歌的大门作文锦集6篇
  19. (转)牛牛牌型判定(五小牛 五花牛 炸弹 银牛 牛牛 有牛没牛)
  20. 精细化运营探索:基于响应模型场景化应用

热门文章

  1. linux生成密钥公钥,linux 生成密钥和公钥,实现免密登录
  2. 状态压缩DP 图文详解(一)
  3. YbtOJ 状压DP问题课堂过关 例1 种植方案【状压DP】
  4. excel常用快捷键
  5. android 断点下载的实现,自己动手实现一个Android断点下载
  6. 微信小程序云开发入门详细教程
  7. 数据库安全关键技术之数据库脱敏技术详解
  8. python移动文件_python 复制/移动文件
  9. 神舟刷蓝天w650dbios_神舟z6kp5D1记录一次艰难的刷蓝天bios,总算成功了
  10. 神州计算机u盘启动,神舟台式机bios怎么设置从u盘启动