verilog实现8路数据选择器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
verilog实现8路数据选择器

《串行数据检测器》 一、实验目的及要求 1.掌握用always语句实现组合逻辑电路; 2.学习测试模块中随机数的产生和应用; 3.每路输入数据与输出数据均为4位2进制数,当选择开关(至少3位) 或输入数据发生变化时,输出数据也相应地变化。 二、实验设备(环境)及要求 1.实验设备:PC机一台 2.环境要求:安装Modelsim仿真软件以及Synplify Pro综合工具 三、实验内容与步骤 1.根据实验要求编写源代码mux_8.v如下 /** * @File mux_8.v * @Synopsis 每路输入数据与输出数据均为4位2进制数,当选择开关 * (至少3位)或输入数据发生变化时,输出数据也相应地变化。 * @Author @ * @Version 1 * @Date 2010-11-05 */ /* Copyright(C) 2010- * By * All right reserved */ module mux_8(addr, in1, in2, in3, in4, in5,in6,in7,in8,mout,ncs); input [2:0] addr; //输入的地址端,3位选择开关 input [3:0] in1,in2,in3,in4,in5,in6,in7,in8; //8路数据端输入 input ncs; //使能信号 output [3:0] mout; //一路输出 reg [3:0] mout; //输出声明为寄存器类型 always @(addr or in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8 or ncs) //8路输入或者选择开关或者使能信号发生变化则条件触发 begin if(!ncs) //低电平使能 case(addr) 3b000: mout = in1; //选择开关的3位对应000时,输出等于in1输入; 3b001: mout = in2; //选择开关的3位对应001时,输出等于in1输入; 3b010: mout = in3; //选择开关的3位对应010时,输出等于in1输入; 3b011: mout = in4; //选择开关的3位对应011时,输出等于in1输入; 3b100: mout = in5; //选择开关的3位对应100时,输出等于in1输入; 3b101: mout = in6; //选择开关的3位对应101时,输出等于in1输入; 3b110: mout = in7; //选择开关的3位对应110时,输出等于in1输入; 3b111: mout = in8; //选择开关的3位对应111时,输出等于in1输入; endcase else mout = 0; //使能信号高电平时输出一直为0; end endmodule 2.编写测试模块test_mux_8.v如下 /** * @File test_mux_8.v * @Synopsis 这是8路数据选择器mux_8的测试模块 * @Author 陈昊, @ * @Version 1 * @Date 2010-11-05 */ /* Copyright(0) 2010- * By * All right reserved */ `timescale 1ns/1ns module test_mux_8; wire[3:0] mout; //声明输出为线网型,4位 reg [3:0] in1,in2,in3,in4,in5,in6,in7,in8; //声明8路输入信号 reg [2:0] addr; //3位的选择开关,寄存型类型 reg ncs; //1位的寄存器型使能信号 //-------------------------------------------------------------产生测试信号------------------------------------------------------ initial begin ncs=0; //在初始化模块里将使能信号置为0,让选择器正常工作 in8={$random}%16; //使用系统任务$random产生一个0至15之间的数 in1={$random}%16; //并赋予输

文档评论(0)

qiaogao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档