verilog实现8路数据选择器

上传人:mg****85 文档编号:34168495 上传时间:2018-02-21 格式:DOC 页数:8 大小:270KB
返回 下载 相关 举报
verilog实现8路数据选择器_第1页
第1页 / 共8页
verilog实现8路数据选择器_第2页
第2页 / 共8页
verilog实现8路数据选择器_第3页
第3页 / 共8页
verilog实现8路数据选择器_第4页
第4页 / 共8页
verilog实现8路数据选择器_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《verilog实现8路数据选择器》由会员分享,可在线阅读,更多相关《verilog实现8路数据选择器(8页珍藏版)》请在金锄头文库上搜索。

1、串行数据检测器实验报告一、实验目的及要求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 位)或输入数据发生变化

2、时,输出数据也相应地变化。* 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; /

3、输出声明为寄存器类型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: mo

4、ut = 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_

5、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 位的选择开关,寄存型类型re

6、g ncs; /1 位的寄存器型使能信号/-产生测试信号-initialbeginncs=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

7、#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; /每执行一次后改变一次选择开关的值,加 1end#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

8、(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.该 8 路数据选择器成功通过了综合和布局布线,分析发现,前仿真结果逻辑正确。 2.分析后仿真结果发现,电路延时较为严重,本次选择的数据数据在下一次数据来到之后才输出,需要对代码进行进一步优化。六、教师评语签名:成绩日期:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号