当前位置: 首页 > news >正文

FPGA 第6讲 简单组合逻辑多路选择器

时间:2024.11.11-11.14

一、学习内容

1.组合逻辑

       组合逻辑是VerilgHDL设计中一个重要组成部分。从电路本质上讲,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路,也没有反馈电路。

2.多路选择器

       多路选择器是数据选择器的别称。在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。

3. 实验目标
       设计并实现 2 选 1 多路选择器,主要功能是通过选通控制信号 S 确定选通 A 路或 B 路作为信号输出。当选通控制信号 S 为 1 时,信号输出为 A 路信号;当选通控制信号 S 为 0时,信号输出为 B 路信号。

       开发板的按键未按下时为高电平、按下后为低电平;LED 灯则为低电平点亮。

二、实验

1.准备工作

新建文件夹存放工程

2.利用visio绘制和波形图

蓝色的线代表有效信号。

3. 代码编写

在rtl文件夹里新建.v文件进行编写代码

3.1编写代码

方法一:使用always进行组合逻辑的编写,同时使用if-else条件分支语句进行多路选择器的实现
module mux2_1      //模块名称与文件名尽量保持一致
(input   wire    [0:0]  in_1,  //输入信号1input   wire           in_2;  //输入信号2input   wire           sel,   //选通信号output  reg           out     //输出信号);
//用always给变量赋值,()里面是敏感条件,*表示通配符,在此处表示任何一个信号只要有电平变化都要执行这条语句
//此处*相当于sel,in_1,in_2
always@(*)if(sel==1'b1)out = in_1;elseout = in_2;
endmodule

方法二:使用always-case进行代码编写

方法三:使用assign中的三目运算符进行编写代码

3.2实验工程的创建

在Quartus里创建工程,添加.v文件,进行编译,编译成功后进行仿真文件的书写

3.3编写仿真文件

在sim文件夹里创建.v文件,进行仿真文件的编写

`timescale 1ns/1ns
module tb_mux2_1();
//仿真文件就是要对我们被仿真的模块进行一个输入信号的模拟
reg    in_1;
reg    in_2;
reg    sel;
//进行输出信号的命名,将输出信号引出,便于信号的观察
wire   out;
//initial语句上电只执行一次,它的结构一般是initial-begin-end
//在仿真文件中,begin-end之间的内容都是顺序执行的,在没有延时的情况下,几乎没有差别,看上去像并行执行
//在rtl语句中,begin-end相当于括号的作用,在同一个always块中,如果给多个变量赋值,要使用begin-end
initialbeginin_1  <= 1'b0;in_2  <= 1'b0;sel   <= 1'b0;end
//对三个输入信号进行随机数的赋值
//每隔10ns对in_1进行一次赋值,赋值的是一个随机的数(0/1)
always #10 in_1 <= {$random}%2;           //$random随机数的产生,系统函数
always #10 in_2 <= {$random}%2;
always #10 sel  <= {$random}%2;//为了便于观察,需要添加一些系统函数
initialbegin$timeformat(-9,0,"ns",6);   //显示时间格式是ns,10的-9次方,0表示小数点后的位数(精确度)//""里写的内容要和-9处写的对应,6表示打印的最小数字字符是6个$monitor("@time %t:in1=%b in2=%b sel=%b out=%b",$time,in_1,in_2,sel,out);  //监测的系统函数,便于观察end//实例化:在仿真文件中调用我们被仿真的文件
mux2_1    mux2_1_inst  //模块名   实例化名称(如果实例化了多次,可以在实例化名称后面加数字,例如mux2_1_inst3)
(
//此处的.代表连接. in_1(in_1),  //输入信号1. in_2(in_2),  //输入信号2. sel (sel),   //选通信号. out (out)    //输出信号);endmodule

3.4仿真波形验证

添加文件后,在modelsim里面进行仿真波形的验证 

3.5上板验证

引脚约束后,连接开发板,进行上板验证

三、实验结果

 波形图

打印结果

四、知识点和小技巧

1.模块名称与文件名尽量保持一致

2.代码编写规范

输入一定是wire类型;

一位宽可以不写,也可以写成[0:0];

输出可以是wire或reg类型,用always赋值的变量是reg型;

最后一条信号后面不需要加,

*表示通配符;

每个模块只能有一组module和endmodule,所有的模块要在这两个之间进行编写

3.设置时间格式的系统函数$timeformat

$timeformat(-9,0,"ns",6);   //显示时间格式是ns,10的-9次方,0表示小数点后的位数(精确度)//""里写的内容要和-9处写的对应,6表示打印的最小数字字符是6个

4.获取随机数的系统函数$random

//对三个输入信号进行随机数的赋值
//每隔10ns对in_1进行一次赋值,赋值的是一个随机的数(0/1)
always #10 in_1 <= {$random}%2;           //$random随机数的产生,系统函数
always #10 in_2 <= {$random}%2;
always #10 sel  <= {$random}%2;

相关文章:

FPGA 第6讲 简单组合逻辑多路选择器

时间&#xff1a;2024.11.11-11.14 一、学习内容 1.组合逻辑 组合逻辑是VerilgHDL设计中一个重要组成部分。从电路本质上讲&#xff0c;组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数&#xff0c;与其他时刻的输入状态无关&#xff0c;无存储电路&#xff0c;也没…...

Android Studio开发学习(五)———LinearLayout(线性布局)

一、布局 认识了解一下Android中的布局&#xff0c;分别是: LinearLayout(线性布局)&#xff0c;RelativeLayout(相对布局)&#xff0c;TableLayout(表格布局)&#xff0c; FrameLayout(帧布局)&#xff0c;AbsoluteLayout(绝对布局)&#xff0c;GridLayout(网格布局) 等。 二、…...

大模型(LLMs)RAG 版面分析------文本分块面

一、为什么需要对文本分块&#xff1f; 使用大型语言模型&#xff08;LLM&#xff09;时&#xff0c;切勿忽略文本分块的重要性&#xff0c;其对处理结果的好坏有重大影响。 考虑以下场景&#xff1a;你面临一个几百页的文档&#xff0c;其中充满了文字&#xff0c;你希望对其…...

Web3游戏先锋 Big Time Studios 重磅推出 $OL 通证,赋能 Open Loot 游戏平台

作为 Web3 游戏领域的领军者&#xff0c;Big Time Studios 不仅创造了热门游戏《Big Time》&#xff0c;还开发了 Open Loot 平台&#xff0c;至今交易量已超过 5 亿美元。如今&#xff0c;Open Loot 平台的活跃用户可以获得 $OL 代币&#xff0c;这是该平台推出的首个实用型代…...

Linux—ln(link files)命令使用方法(How to create links on Linux)

Linux—ln&#xff08;link files&#xff09;命令使用方法 在 Linux 系统中工作时&#xff0c;需要在不同的目录中使用相同的文件时&#xff0c;不必在每个目录下都复制一份文件&#xff0c;这样不仅浪费磁盘空间&#xff0c;还会导致文件管理上的混乱。 ln(link files) 便是…...

学习日记_20241110_聚类方法(K-Means)

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…...

解决Oracle DECODE函数字符串截断问题的深度剖析20241113

解决Oracle DECODE函数字符串截断问题的深度剖析 在使用Oracle数据库进行开发时&#xff0c;开发者可能会遇到一些令人困惑的问题。其中&#xff0c;在使用DECODE函数时&#xff0c;返回的字符串被截断就是一个典型的案例。本文将以学生管理系统为背景&#xff0c;深入探讨这个…...

开源模型应用落地-语音转文本-whisper模型-AIGC应用探索(二)

一、前言 语音转文本技术具有重要价值。它能提高信息记录和处理的效率,使人们可以快速将语音内容转换为可编辑、可存储的文本形式,方便后续查阅和分析。在教育领域,可帮助学生更好地记录课堂重点;在办公场景中,能简化会议记录工作。同时,该技术也为残障人士提供了便利,让…...

PHP框架 单一入口和多入口以及优缺点

在PHP框架中&#xff0c;单一入口和多入口是两种不同的应用架构设计方式&#xff0c;以下是关于这两者及其优缺点的详细解释&#xff1a; 一、单一入口 定义&#xff1a; 单一入口&#xff08;Single Entry Point&#xff09;指的是应用程序通过一个统一的文件&#xff08;通…...

PhpSpreadsheet导出图片

PhpSpreadsheet导出图片 //导出public function pdf($ids){$jzInfo $this->model->where(id,$ids)->find();try {//巡检人员$staff_ids \app\admin\model\inspection\Plan::where(id,$jzInfo[plan_id])->value(staff_id);$staff_names \app\admin\model\inspect…...

AI 提示词(Prompt)入门 十:最佳实践|详细询问,提供细节!

1、原则解释 当与 ChatGPT 交流时&#xff0c;提供具体和详细的信息非常重要。 这样做可以帮助 ChatGPT 更准确地理解你的需求和上下文&#xff0c;从而生成更相关和有用的回答 明确的信息可以包括具体的问题背景、相关领域的说明、你所期望的答案类型等。 2、如何实践 明…...

web应用安全和信息泄露预防

文章目录 1&#xff1a;spring actuator导致的信息泄露1.1、Endpoint配置启用检测1.2、信息泄露复现1.3、防御 2&#xff1a;服务端口的合理使用3&#xff1a;弱口令&#xff08;密码&#xff09;管理4&#xff1a;服务端攻击4.1、短信业务&#xff0c;文件上传等资源型接口1、…...

《人工智能深度学习的基本路线图》

《人工智能深度学习的基本路线图》 基础准备阶段 数学基础&#xff1a; 线性代数&#xff1a;深度学习中大量涉及矩阵运算、向量空间等概念&#xff0c;线性代数是理解和处理这些的基础。例如&#xff0c;神经网络中的权重矩阵、输入向量的运算等都依赖于线性代数知识。学习内容…...

基于Java Springboot宠物猫售卖管理系统

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据库&#xff1a;…...

力扣-Hot100-链表其三【算法学习day.36】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非常非常高滴&am…...

iOS逆向入门:使用theos注入第三方依赖库

背景 theos是一个跨平台的软件开发框架&#xff0c;常用于管理&#xff0c;开发和部署iOS项目&#xff0c;同时也是开发iOS越狱插件的主要工具。和MonkeyDev不同的是&#xff0c;它不依赖于xcode&#xff0c;可以在多个操作系统上运行。一个完整的iOS越狱开发流程包括&#xf…...

JavaScript 原型

JavaScript 的原型&#xff08;Prototype&#xff09;是其面向对象编程模型的核心概念之一&#xff0c;它决定了对象如何继承属性和方法。通过理解 JavaScript 的原型&#xff0c;你可以更好地理解对象之间的关系以及如何扩展对象功能。 核心概念 [[Prototype]]&#xff08;内部…...

力扣 LeetCode 20. 有效的括号(Day5:栈与队列)

解题思路&#xff1a; 使用栈 只有三种情况 1. ( [ { } ] ( ( 左括号多了 -> 最后栈中经过抵消会剩下括号 2. [ { ( ] } ] 括号不匹配 -> return false 3. [ { } ] ( ) ) ) 右括号多了 -> 未遍历完时&#xff0c;栈提前为空&#xff0c;…...

git使用及上线流程(仅为我工作中常用)

推荐软件或者直接终端 ⚠️注意&#xff1a;在确保远程和本地分支都可使用的情况下 git常见使用命令 ls---查看所有目录 pwd---本机密码 cd 目录名---进入目录 Touch ---创建文本文件 git status---查看状态 git branch---查看分支 git pull---拉取远程最新代码 git checkou…...

React Native 全栈开发实战班 - 打包发布之热更新

在完成 React Native 应用的开发与性能优化后&#xff0c;下一步就是将应用打包并发布到各大应用市场&#xff0c;如 Apple App Store 和 Google Play Store。本章节已经详细介绍了打包与发布的流程&#xff0c;包括 Android 和 iOS 平台的配置、打包步骤、签名配置以及发布到应…...

2024年11月16日 星期六 重新整理Go技术

今日格言 坚持每天进步一点点~ 一个人也可以是一个团队~ 学习全栈开发, 做自己喜欢的产品~~ 简介 大家好, 我是张大鹏, 今天是2024年11月16日星期六, 很高兴在这里给大家分享技术. 今天又是休息的一天, 做了很多的思考, 整理了自己掌握的技术, 比如Java, Python, Golang,…...

力扣第 55 题 跳跃游戏

力扣第 55 题 跳跃游戏&#xff08;Jump Game&#xff09;。题目要求判断一个非负整数数组中&#xff0c;是否能够从第一个位置跳跃到最后一个位置。每个元素表示从当前位置最多可以跳跃的步数。 解题思路 我们可以用 贪心算法 来解决这个问题。贪心的核心思想是始终维护当前…...

Golang | Leetcode Golang题解之第564题寻找最近的回文数

题目&#xff1a; 题解&#xff1a; func nearestPalindromic(n string) string {m : len(n)candidates : []int{int(math.Pow10(m-1)) - 1, int(math.Pow10(m)) 1}selfPrefix, _ : strconv.Atoi(n[:(m1)/2])for _, x : range []int{selfPrefix - 1, selfPrefix, selfPrefix …...

Spring Boot汽车资讯:科技与速度的交响

3系统分析 3.1可行性分析 通过对本汽车资讯网站实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本汽车资讯网站采用SSM框架&#xff0c;JAVA作为开发语言&#…...

从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望

作者&#xff1a;金峰&#xff08;项良&#xff09;、朱永林、赵世振&#xff08;寰奕&#xff09; 公司简介 杭州热联集团股份有限公司成立于 1997 年 10 月&#xff0c;是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务&…...

移动零

移动零 1、题目描述2、解答思路 1、题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 2、解答思路 已知数组后端若干元素为0&…...

C#编写的日志记录组件 - 开源研究系列文章

以前编写过一个日志记录组件的博文&#xff0c;这次发布一个修改过的完善版本。 1、 项目目录&#xff1b; 2、 源码介绍&#xff1b; 1) 实现&#xff1b; 2) 使用&#xff1b; 后面的参数为级别设置&#xff0c;只有大于这个级别的才进行日志记录&#xff0c;限制了日志记录的…...

猎板PCB罗杰斯板材的应用案例

以下是几个猎板 PCB 与罗杰斯板材结合的具体案例&#xff1a; 案例一&#xff1a;5G 通信基站天线 PCB 在 5G 通信基站的天线系统中&#xff0c;对高频信号的传输和处理要求极高。猎板 PCB 采用罗杰斯板材&#xff0c;凭借其稳定的低介电常数&#xff08;如 RO4003C 板材&…...

使用esp32c3开发板通过wifi连网络web服务器

实验基本拓扑就是&#xff1a; esp32c3开发板通过Wifi模块连上局域网&#xff0c;局域网一台服务器通过FastAPI提供8000端口的web服务&#xff0c;在esp32c3开发板中烧录micropython固件&#xff0c;在python交互模式下&#xff0c;连上Wifi模块&#xff0c;并使用socket模块获…...

供应链管理、一件代发系统功能及源码分享 PHP+Mysql

随着电商行业的不断发展&#xff0c;传统的库存管理模式已经逐渐无法满足市场需求。越来越多的企业选择“一件代发”模式&#xff0c;即商家不需要自己储备商品库存&#xff0c;而是将订单直接转给供应商&#xff0c;由供应商直接进行发货。这种方式极大地降低了企业的运营成本…...

专业的网站设计/网上怎么推广公司产品

在企业管理器中删除数据库时提示框中有一选项&#xff1a;为数据库删除备份并还原历史记录&#xff0c;如下图&#xff0c;是什么意思&#xff1f; 我们先看两个图。 在还原数据库时&#xff0c;通过“数据库”或“文件组或文件”还原时&#xff0c;我们就可以看到我们曾经的备…...

福建网站模板/永久免费客服系统

/*这题的思路让我觉得很巧妙&#xff0c;所以...虽然小白书 P175 &#xff0c;已经有详细到能看懂的解释了&#xff0c;但我还是用自己的话&#xff0c;把书上的解析复述一遍:简化&#xff1a;先判断解的存在性&#xff0c;有解再找解类比&#xff1a;可将敌人类比为圆&#x…...

阿里云个人怎么免费做网站/新闻摘抄2022最新20篇

简单谈谈Server2008的NAP<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />刚才看到一个讨论NAP的帖子&#xff0c;感觉这里好像不少人对NAP还不是很了解。我就用我的理解给简单介绍一下吧。什么是NAP&#xff1f;NAP-Network Acc…...

网站建设项目说明书模板/广州网站优化软件

---一个人的世界难免孤寂&#xff0c;走走停停&#xff0c;总悄然无声息 幸好&#xff0c;世界上还有一个她&#xff0c;能够分享彼此的欢乐和哀愁&#xff0c;与她在一起的日子&#xff0c;便是最美好的时光。 你有没有这样的一样知己&#xff0c;她与你一起走过青春年少&…...

中核工建设集团OA网站/今日国际新闻头条新闻

接着上面的博客写 pwd /etc/kubernetes echo "head -c 16 /dev/urandom | od -An -t x | tr -d ,kubelet-bootstrap,10001,\"system:kubelet-bootstrap\"" > token.csv cat token.csv 也可以使用上面的命令在工作中生成随机字符串 head -c 16 /dev/ura…...

在网站插入微博静态的网页出的来到服务器出不来/百度的广告推广需要多少费用

大家好&#xff0c;这里是学设计的小豆芽&#xff0c;上一篇文章给大家讲到了如何查&#xff0c;看图片尺寸大小及如何修改图片尺寸的相关问题&#xff0c;今天和大家聊聊有关图片压缩的相关的问题&#xff0c;主要包含以下这4个方面。1&#xff0c;如何压缩图片&#xff08;jp…...