verilog实现8路数据选择器.doc_第1页
verilog实现8路数据选择器.doc_第2页
verilog实现8路数据选择器.doc_第3页
verilog实现8路数据选择器.doc_第4页
verilog实现8路数据选择器.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

串行数据检测器实验报告一、实验目的及要求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路输入或者选择开关或者使能信号发生变化则条件触发beginif(!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输入;endcaseelsemout = 0; /使能信号高电平时输出一直为0;endendmodule2.编写测试模块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/1nsmodule test_mux_8; wire3: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;/并赋予输入 in2=$random%16; in3=$random%16; in4=$random%16; in5=$random%16; in6=$random%16; in7=$random%16; addr=3b000; /让选择开关的3位初始对应为000. repeat(5) /重复下面的语句块5次,赋5次值 begin #10 in8=$random%16; in1=$random%16; in2=$random%16; in3=$random%16; in4=$random%16; in5=$random%16; in6=$random%16; in7=$random%16; addr=addr+1;/每执行一次后改变一次选择开关的值,加1 end #10 $stop; end /- /-实例引用被测试模块- mux_8 example(.addr(addr),.in1(in1),.in2(in2),.in3(in3),.in4(in4),.in5(in5),.in6(in6),.in7(in7),.in8(in8),.mout(mout),.ncs(ncs); /-endmodule3.利用Modelsim编译纠错和仿真4.利用Synplify Pro进行综合5.利用Quartus进行布局布线四、实验结果与数据处理1.Modelsim仿真波形如下,自上向下信号依次为a、b、qOut2.选择Altera STRATIX器件库利用Synplify Pro综合产生的RTL级电路如下3.使用Quatus II进行布局布线结果如下4.使用Modelsim进行后仿真

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论