FPGA入门:二选一多路选择器

embedded/2024/10/21 11:31:49/

FPGA入门学习第一例:二选一多路选择器

设计需求

设计一个二选一多路选择器模块,包含三个输入信号(a/b/sl),一个输出信号(out)。
sl = 1时,out = a;当sl = 0时,out = b
示意图如下所示:
在这里插入图片描述
真值表如下图所示:
在这里插入图片描述

设计代码

module mux2(input a,      /* 1 bit 输入信号 */input b,      /* 1 bit 输入信号 */input sl,     /* 1 bit 输入信号 */output out    /* 1 bit 输出信号 */
);/* 输出信号赋值:* 当 sl == 1 时,out = a* 当 sl == 0 时,out = b */
assign out = (sl==1) ? a : b;endmodule

仿真代码

`timescale 1ns / 1ns  /* 时间单位和时间精度都设置为 1ns  */module mux2_tb();/* 输入/输出定义 */reg in_a;reg in_b;reg in_sel;wire out;/* 二选一多路选择器模块实例化,并将仿真信号与模块内部信号连接* 模块.a <==> in_a* 模块.b <==> in_b* 模块.sl <==> in_sel* 模块.out <==> out */mux2 mux2_inst(.a(in_a),.b(in_b),.sl(in_sel),.out(out));/* 产生激励信号 */initial beginin_a = 0; in_b = 0; in_sel = 0;#200;  /* 延迟200ns */in_a = 0; in_b = 0; in_sel = 1;#200;in_a = 0; in_b = 1; in_sel = 0;#200;in_a = 0; in_b = 1; in_sel = 1;#200;in_a = 1; in_b = 0; in_sel = 0;#200;in_a = 1; in_b = 0; in_sel = 1;#200;in_a = 1; in_b = 1; in_sel = 0;#200;in_a = 1; in_b = 1; in_sel = 1;#200;$stop;  /* 停止仿真 */endendmodule

ModelSim仿真波形

在这里插入图片描述
分析波形可以看出,模块的执行结果与真值表一致。


http://www.ppmy.cn/embedded/94623.html

相关文章

【Linux SQLite数据库】一、SQLite交叉编译与移植

SQLite 是一个用 C 语言编写的开源、轻量级、快速、独立且高可靠性的 SQL 数据库引擎&#xff0c;它提供了功能齐全的数据库解决方案。SQLite 几乎可以在所有的手机和计算机上运行&#xff0c;它被嵌入到无数人每天都在使用的众多应用程序中。此外&#xff0c;SQLite 还具有稳定…

jenkins一键推送到远程服务器并用docker容器启动

1.安装jenkins 我后端使用的是宝塔面板来安装的容器化jenkins,要选中允许外部访问&#xff0c;安装完之后没有那个选项了&#xff0c;一开始安装的时候要选中不使用域名和后面的允许外部访问。Jenkins 版本为&#xff1a; 2.462.1 2.配置Jenkins 2.1 Git plugin 安装完毕之…

SpringCloud 微服务nacos和eureka

Spring是微服务架构&#xff0c;是一种经过良好架构设计的分布式架构方案。 微服务架构有如下特性 单一&#xff1a;微服务拆分粒度小&#xff0c;每一个服务都对应唯一的业务能力&#xff0c;做到单一职责&#xff0c;避免重复业务开发 面向服务&#xff1a;微服务对外暴漏…

CC攻击解决方案,如何处理CC攻击

在数字化时代&#xff0c;网站作为企业与用户交流的重要窗口&#xff0c;其安全性和稳定性至关重要。然而&#xff0c;CC攻击&#xff08;Challenge Collapsar Attack&#xff09;这一网络威胁如同网络世界中的“洪水猛兽”&#xff0c;时刻威胁着网站的正常运行。今天我们就来…

仲阳天王星运维实习一面

自我介绍&#xff1f; 略谈谈你对“仲阳天王星”的理解&#xff1f; 略实习时间怎么安排&#xff0c;后续时间是怎么规划的&#xff1f; 略给你一个装满水的8升满壶和两个分别是5升、3升的空壶&#xff0c;请想个办法&#xff0c;使得其中一个水壶恰好装4升水&#xff0c;每一步…

无字母数字_$ webshell之命令执行

题解分析&#xff1a; 代码案例 当然&#xff0c;这道题的限制&#xff1a; webshell长度不超过35位 不包含字母数字&#xff0c;还不能包含$和_ 所以&#xff0c;如何解决这个问题&#xff1f; shell下可以利用.来执行任意脚本 Linux文件名支持用glob通配符代替 第一点.…

网关与AWS云心跳周期,网关断电或者网络不稳定的离线机制

当mqtt连线建立时, 需要指定keep alive参数,当 iot core在1.5倍 keep alive timeout时长内都没收到任何来自设备端的操作, 例如 ping, subscribe, publish &#xff0c;则会主动将连线中断。如果iot core检测到tcp 连接中断, 会立即中断&#xff1b;如果未检测到则会等到1.5倍 …

微信小程序 checkbox 实现双向绑定以及特殊交互处理

wxml文件代码如下&#xff1a; <!--页面顶部 引入wxs文件--> <wxs module"tools" src"../../filter/tools.wxs"></wxs> ... <checkbox-group bindchange"checkboxChange"><label class"weui-cell weui-check__…