FPGA:二选一选择器

1、需求

使用XILINX的XC7A35TFFG484-2开发板,完成二选一选择器的设计。

2、分析

二选一选择器如下所示:
在这里插入图片描述
观察可知有三个输入端,一个输出端,其逻辑原理为:当sel为高电平时,out=a,当sel为低电平时,out=b。

3、工程创建以及Verilog代码的编写

a)打开Vivado软件,创建一个新工厂,名为mux2_test
b)在setting中点击Add sources,接下来选择第二个:Add or create design sources。创建设计文件。再点击create file,如果之前已经写好可以直接导入。接下来一直点击OK,YES,Finish即可。
c)在左上的sources出多了一个mux2_test.v文件,点击打开,开始编写verilog代码。
在这里插入图片描述

module mux2_test(a,b,sel,out    //输入输出端口
);
input a;        // 端口类型定义
input b;
input sel;
output out;
assign out=(sel==1)?a:b;   // 三目运算符,sel为1,则out=a,否则out=b
endmodule

d)创建testbench文件
即写测试文件,可以理解为将我们的硬件放在一个测试桌上,然后要对齐进行测试输入。同上点击add source后选择第三项Add or create simulation sources,命名为mux2_test_tb。接下来在左侧sources打开对应的testbench文件后编写即可。

`timescale 1ns/1ps  //单位1ns,精度1ps
module mux2_test_tb();
// 例化,可理解为贴标签
reg a;
reg b;
reg sel;
wire out;   //这里相当于是对测试桌上的线声明类型
mux2_test mux2_test_inst0(.a(a),.b(b),.sel(sel),.out(out)
);
initial begin
a=0;b=0;sel=0;  //三输入八种情况,每次延迟200纳秒,主要是为了仿真的时候容易分辨 
#200;
a=0;b=0;sel=1;
#200;
a=0;b=1;sel=0;
#200;
a=0;b=1;sel=1;
#200;
a=1;b=0;sel=0;
#200;
a=1;b=0;sel=1;
#200;
a=1;b=1;sel=0;
#200;
a=1;b=1;sel=1;
#200;
$stop;   //让其自动停止,不过这里是1600纳秒,一般默认自动仿真到1000ns
end  
endmodule

e)按F11,即run synthesis,进行综合,编译后再运行Run lmplementation,最后点击Run Simulation,进行时序仿真。默认运行1000ns,点击运行图标可以让他继续运行。时序图如下所示:
在这里插入图片描述

可发现符合二选一多路器的逻辑。
f)查看RTL图
点击RTL,可生产对应的数字电路图,如下所示
在这里插入图片描述
g)引脚分配
根据提供的引脚分配表,如下所示
在这里插入图片描述在这里插入图片描述
将拨码开关SW2,SW1,SW0分配给sel,a,b,将led0分配给out
在这里插入图片描述
h)生成比特流文件,点击Generate Bitstream,生成后点击Open Hardware Manager
,打开硬件管理器,点击左上open target,打开开发板后点击Auto connect。再点击program device,即写入设备后即可在开发板上运行。如下所示
在这里插入图片描述

上拨b,即b为1,此时sel为0,out=b=1。
在这里插入图片描述
a同理

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/380827.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解Linux网络(三):TCP对象创建

深入理解Linux网络(三):TCP对象创建 TCP对象创建inet_createsock_init_data TCP对象创建 常见的三句TCP编程: int main() {int sk socket(AF_INET, SOCK_STREAM, 0);connect(sk, ...)recv(sk, ...) }简单的两三⾏代码&#xff…

深度学习程序环境配置

深度学习环境配置 因为之前轻薄本没有显卡跑不起来,所以换了台电脑重新跑程序,故记录一下配置环境的步骤及常见错误 本人数学系,计算机部分知识比较匮乏,计算机专业同学可以略过部分内容 深度学习环境配置 深度学习环境配置 CUD…

组内第一次会议

会议内容 1、科研平台使用 增删改查对文件 cp -r /root/mmdetection/dataset/ /root/user/wbzExperiment/mmdetection/ rm -r /root/user/yolov5-master tar -czvf test03.tar.gz test03/ unzip abc.zip 上传文件、解压文件:要在自己的目录中,进入…

2-38 基于matlab的蚁群算法优化无人机uav巡检

基于matlab的蚁群算法优化无人机uav巡检,巡检位置坐标可根据需求设置,从基地出发,返回基地,使得路径最小。可设置蚁群数量,信息素系数。输出最佳路线长度。程序已调通,可直接运行。 2-38 蚁群算法优化无人…

springcloud-config客户端启用服务发现报错找不到bean EurekaHttpClient

背景 在对已有项目进行改造的时候,集成SpringConfigStarter,编写完bootstrap.yml,在idea 启动项中编辑并新增VM options -Dspring.cloud.config.discovery.enabledtrue,该版本不加spring不会从configService获取信息,…

深入理解Android中的缓存与文件存储目录

🌟 引言 在Android应用开发中,合理管理应用的数据存储至关重要。应用可能需要保存各种类型的数据,从简单的配置信息到多媒体文件,甚至是缓存数据以提高性能和用户体验。Android提供了多个内置目录来满足这些需求,但它…

《JavaSE》------20.语法实践项目【图书管理系统】

目录 前言 一、图书管理系统成果展示 1.1 管理员: 1.2 普通用户: 二、 图书管理系统框架的搭建 2.1 book包 2.1.2 BookList类 2.2 operation包 2.2.0 IOperation接口 2.2.1 AddOperatoon类 2.2.2 FindOperation类 2.2.3 DelOperation类 2.2…

前端基础之JavaScript学习——函数的使用

大家好我是来自CSDN的前端寄术区博主PleaSure乐事,今天我们继续有关JavaScript的学习,使用的编译器为vscode,浏览器为谷歌浏览器。 函数的声明与使用 声明 在JavaScript当中函数的声明和其他语言类似,使用如下格式即可声明&…

语义分割——为什么单通道8bit灰度图像能显示多种色块???

目录 一、问题二、解答2.1 标签图的实际存储格式2.2 标签图的显示颜色2.3 颜色映射示例 三、应用颜色映射3.1 OpenCV显示标签图3.2 Matplotlib显示标签图 四、总结 一、问题 大家在做语义分割时不知道有没有这样的疑惑,使用打标签工具后,标签图是单通道…

基于Python+Django,开发的一个在线教育系统

一、项目简介 使用Python的web框架Django进行开发的一个在线教育系统! 二、所需要的环境与组件 Python3.6 Django1.11.7 Pymysql Mysql pure_pagination DjangoUeditor captcha xadmin crispy_forms 三、安装 1. 下载项目后进入项目目录cd Online-educ…

Bubbliiiing 的 Retinaface rknn python推理分析

Bubbliiiing 的 Retinaface rknn python推理分析 项目说明 使用的是Bubbliiiing的深度学习教程-Pytorch 搭建自己的Retinaface人脸检测平台的模型,下面是项目的Bubbliiiing视频讲解地址以及源码地址和博客地址; 作者的项目讲解视频:https:…

【网络安全科普】勒索病毒 防护指南

勒索病毒简介 勒索病毒是一种恶意软件,也称为勒索软件(Ransomware),其主要目的是在感染计算机后加密用户文件,并要求用户支付赎金以获取解密密钥。这种类型的恶意软件通常通过电子邮件附件、恶意链接、下载的软件或漏洞…

基于重要抽样的主动学习不平衡分类方法ALIS

这篇论文讨论了数据分布不平衡对分类器性能造成的影响,并提出了一种新的有效解决方案 - 主动学习框架ALIS。 1、数据分布不平衡会影响分类器的学习性能。现有的方法主要集中在过采样少数类或欠采样多数类,但往往只采用单一的采样技术,无法有效解决严重的类别不平衡问题。 2、论…

Fast-Retry 高性能百万级任务重试框架介绍及使用

一、Fast-Retry 在本专栏的前面文章中我们介绍了 Spring 家族的 重试框架,本篇文章再给大家介绍一个高性能百万级任务重试框架 Fast-Retry 。它是一个高性能任务重试框架,可以支持百万级别任务的并发重试处理。与 Spring-Retry 不同,Fast-Re…

【JavaEE进阶】——Spring事务和事务传播机制

目录 🚩事务 🎈为什么需要事务? 🎈事务的操作 🚩Spring 中事务的实现 🎈数据准备 🎈Spring 编程式事务(了解) 🎈Spring 声明式事务 Transactional 🍭Transactional 详解 &…

阵列信号处理学习笔记(二)--空域滤波基本原理

阵列信号 阵列信号处理学习笔记(一)–阵列信号处理定义 阵列信号处理学习笔记(二)–空域滤波基本原理 文章目录 阵列信号前言一、阵列信号模型1.1 信号的基本模型1.2 阵列的几何构型1.3 均匀直线阵的阵列信号基本模型 总结 前言…

服务攻防-框架安全(漏洞复现)

关闭靶场 sudo docker-compose down 运行此靶场 sudo docker-compose up -d 查看启动环境 sudo docker ps 运行dockers容器 docker exec -it 64052abd288b /bin/bash thinkphp框架 thinkphp 2 - rce漏洞复现 docker exec -it 731dbae0e0b5 /bin/bash 集成化工具扫描 可以命令…

初学 Linux 必知必会的 X 个知识点

文章目录 一、Linux 系统与 Windows 系统的差别二、Linux 命令行初识1. 终端界面2. 路径的含义3. 命令结构说明4. 常见的 Linux 命令4-1. 文件和目录操作4-2. 网络相关命令 5. 使用命令行时的小技巧5-1. 使用 TAB 键补全5-2. 巧用通配符 *5-3. 命令行历史功能 三、文件的详细信…

linux在ssh的时候询问,yes or no 如何关闭

解决: 在~/.ssh/config文件中添加如下配置项: Host *StrictHostKeyChecking no

深度洞见|探索与突破:大模型在中国市场的实践

1 大模型产业应用的发展趋势 // 人工智能产业进入高速发展期,创造多个技术、市场、监管的里程碑 自2022年ChatGPT问世后,生成式AI(大模型)进入高速发展期,标志着AI经济新纪元的到来。大模型技术的快速迭代不仅促进了…