分类

  • 数据选择器
  • verilog实现
  • testbench

数据选择器

数据选择器,可根据给定的输入地址代码,从一组输入信号中选出指定的一个,送至输出端
四选一数据选择器,从四个端口中任意选择一个,送至输出端。设定四个端口为din[0]、din[1]、din[2]、din[3],表示四个端口需要两个选择信号(22 =4),设为del[0]、del[1],将输出信号设为dout。

verilog实现

代码如下

module MUX(
din,
sel,
dout);input[3:0] din;//四个端口,故位宽为4
input[1:0] sel;//两个选择信号,故位宽为2
output dout;
reg dout;always @(*)beginif(sel==2'b00)dout=din[0];if(sel==2'b01)dout=din[1];if(sel==2'b10)dout=din[2];if(sel==2'b11)dout=din[3];endendmodule

testbench

代码如下

`timescale 1ns/1ns
module MUX_test;   //MUX_test为测试文件名字reg [3:0]din;      //输入信号对应reg类型
reg [1:0]sel;
wire dout;         //输出信号对应wire类型MUX u_MUX(        //MUX为被例化的模块名,u_MUX为例化模块名.din(din),    //括号外为被例化的端口名,括号内为例化端口名.sel(sel),.dout(dout));//以下四个always颇为巧妙,具体看下方解释
always # 10 din[0]=~din[0];
always # 20 din[1]=~din[1];
always # 40 din[2]=~din[2];
always # 80 din[3]=~din[3];initialbeginsel=1'b0;din=4'b0;#160 $stop;end
always #10 sel=sel+1;//din的值10ns变换一次,故而将sel的每一个值延时10nsendmodule

四个always实现了din四个端口的值从0000变化到了1111,如下表所示

时间变化 信号变化 din
0 0000
10ns din[0]取反 0001
20ns din[0]取反,din[1]取反 0010
30ns din[0]取反 0011
40ns din[0]取反,din[1]取反,din[2]取反 0100
50ns din[0]取反 0101
60ns din[0]取反,din[1]取反 0110
70ns din[0]取反 0111
80ns din[0]取反,din[1]取反,din[2]取反,din[3]取反 1000
90ns din[0]取反 1001
100ns din[0]取反,din[1]取反 1010
110ns din[0]取反 1011
120ns din[0]取反,din[1]取反,din[2]取反 1100
130ns din[0]取反 1101
140ns din[0]取反,din[1]取反 1110
150ns din[0]取反 1111

使得din的值有多种取值并无多意,只想体现del的选择功能,无论din的值如何,由del的值决定输出哪个端口,也可以将din的值固定为一个值,也可以体现选择功能。

del的值与端口号的对应如下:

del dout
00 din[0]
01 din[1]
10 din[2]
11 din[3]

假定某时din的值为1101,而此时del的值为10,故而din[2]为输出端口,输出的值与din的值无关,但波形图一致(输出与被选端口的波形)。

波形图如下:

对准一个时间段,可观察到被选定的端口号的波形,与输出波形一致。

以上均为学习笔记,若有错误,欢迎大家指出,一定积极讨论并予以改正

【FPGA初级】4选一数据选择器的verilog实现(含testbench与波形)相关推荐

  1. FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)

    目录 一.验证与门 二.验证与非门 三.验证二选一数据选择器 四.验证2-4译码器 五.验证半加器 六.验证全加器 0.初始化定义 1.第一个半加器 2.第二个半加器 3.得到最终进位Co 代码 0决 ...

  2. FPGA(1)--VHDL--6选1数据选择器

    文章目录 一.实验目的 二.实验内容 三.实验设计 四.实验结果及仿真 五.实验思考与总结 一.实验目的 掌握用VHDL语句进行组合电路设计的方法,并熟悉程序的编译.调试与波形图的仿真. 二.实验内容 ...

  3. VHDL四选一数据选择器和基本触发器的设计

    主要内容: 本设计主要是利用超高速硬件描述语言VHDL对四选一数据选择器和基本触发器电路进行编程实现. 四选一数据选择器应该具备的功能:在选择信号的作用下,从输入通道中选择某一个通道的数据作为输出. ...

  4. Verilog二选一数据选择器

    //二选一数据选择器module mux2_1(a0,a1,s,f) input a0,a1,s; output f;//默认是wire(线)变量 assign f=(s)?a1:a0;//assig ...

  5. Quartus II使用说明(Verilog HDL二选一数据选择器 )

    <可编程数字逻辑电路设计>课程中Quartus II软件的使用说明 VHDL和Verilog HDL不一样. 1.新建文件夹,里面包含5个子文件夹(doc/img/prj/rtl/test ...

  6. 4片74151扩展为32选1数据选择器

    在做较为复杂的电路设计时, 比如设计过程包含对于5变量逻辑函数的实现, 此时若用大量的逻辑门来实现, 那无疑是耗时耗力的: 若直接用32选1数据选择器进行实现, 则只需对照真值表来接线即可, 这样免去 ...

  7. Verilog——74HC151八选一数据选择器并扩展为16选1数据选择器

    Verilog--74HC151八选一数据选择器并扩展为16选1数据选择器 74HC151的仿真 设计思路 采用行为级建模,根据74HC151八选一数据选择器的功能表编程即可. 代码实现 设计模块 / ...

  8. Verilog VHDL三种建模描述方式——2选1数据选择器

    标题Quartus II 标题 Verilog VHDL三种建模描述方式--2选1数据选择器 1,结构化描述方式: 是使用实例化低层次模块的方法,即调用其他已经定义过的低层次模块对整个电路的功能进行描 ...

  9. # Quartusll采用IF设计二选一数据选择器及仿真

    Quartusll采用IF设计二选一数据选择器及仿真 软件Quartusll9.1 没有软件的小可爱先来领取资源哈~~(9版本以后就不自带仿真) 链接:https://pan.baidu.com/s/ ...

  10. VHDL实验一:2选1数据选择器(绘制原理图)

    一.实验要求 2选1数据选择器 输入信号:两个数据源a和b,选择端s.输出信号:选择输出端y.利用选择端s对输出端进行控制.达到2选1数据选择器的效果. 二.实验内容 1.二选一数据选择器的原理图: ...

最新文章

  1. eureka需要替换吗_iOS第三方库Eureka实现定制动画详解(二):万变不离其宗-Row组件...
  2. 舵机的脉冲指令的频率对于舵机运动影响
  3. Spring 与 Spring Boot 中的事件机制
  4. k8s实践7:ipvs结合iptables使用过程分析
  5. 从mysql读取数据保存成excel_小程序读取excel表格数据,并存储到云数据库
  6. 朴素容斥原理[ZJOI2016][bzoj4455]小星星
  7. Python与机器视觉(三)图像保存
  8. 性能测试之JMeter函数助手详解
  9. 组织架构适配下的敏捷开发
  10. 好用的Java开发IDEA插件汇总推荐
  11. CPU cache侧信道攻击
  12. 井字棋游戏 Matlab
  13. 驾考 曲线行驶 s弯
  14. C++20新特性个人总结
  15. linux 批量删除任务,Linux-Shell脚本学习心得之批量创建、删除用户
  16. 熊猫人表情包python 代码,Python熊猫替换特殊字符
  17. OPENGL简介---反走样
  18. TOPSIS--优劣解距离法
  19. golang与手机如何实现一些自动化操作?
  20. Python可以做哪些神奇好玩的事情?

热门文章

  1. PR菜鸟入门 -- PR下载安装
  2. 亲测有效 抖音视频如何批量去水印下载原视频2020-09-16
  3. 关于 TCP协议和HTTP关系 | TCP的三次握手和四次挥手
  4. Android破解学习之路(十五)—— 【Unity3D】洛菲斯的呼唤(Lophis roguelike)无限金币(道具)的实现 破解
  5. TCTrack: Temporal Contexts for Aerial Tracking
  6. python学习笔记(1) - python操作mysql数据库【持续更新中...】
  7. php swool 聊天室,swoole简单的聊天室demo(修正版)
  8. GD32实战14__RTC
  9. STM32 硬件I2C读写AT24C02/08
  10. windows下无npcap驱动导致golang获取网卡失败问题