FPGA小白学习日志二:利用LED实现2选1多路选择器

  在上一篇文章中,主播利用炒菜的比喻帮大家介绍了LED工程的建立,所以在读这一篇文章前,大家可以简要回顾以下LED工程的建立流程。本篇内容,主播主要向大家介绍数据选择器工程的实现方法。

  在开始之前,我们先来了解一下数据选择器是什么:所谓数据选择器,就是从多个输入的逻辑信号中选择一个逻辑信号输出,实现数据选择功能的逻辑电路就是数据选择器。我们用来打个比方,现在我们手中有两张电影票A和B,但这时我们是不知道到底哪张电影票是允许我们进入电影院的,这时候我们就要去问检票员,检票员说A,那就可以进;否则,B就可以进。通过这个比喻,我们就能理解数据选择器的大体思路了:这里的电影票A与B就相当于输入信号in1与in2,检票员就相当于数据选择信号sel(英文select),电影院就相当于输出信号out,注意这里的输出信号out只有一个。因此,我们就可以在Visio中设计出2-1数据选择器:

                           

  同样,我们给出2-1数据选择器的真值表:

            

  我们来分析以下这个真值表:当选择信号sel为0时,对应输入信号in1的通道开启,此时,无论输入信号in2怎么取值,输出信号out永远与输入信号in1相同。那反过来讲,选择信号sel为1时,对应输入信号in2的通道开启,此时,无论输入信号in1怎么取值,输出信号out永远与输入信号in2相同。

  接下来,我们新建工程,具体的步骤在上一章有讲,这里我们就不说了。我们来看看用Verilog语言怎么实现2-1数据选择器:

                            

  我们来分析一下这段代码的语法,in1、in2、sel信号前面都有加“wire”,而out前面却加了“reg”,那么wire和reg到底是什么,他们起什么作用呢?这里主播查阅了锆石科技的《HELLO FPGA》文档:reg和wire都是数据类型,其中reg是寄存器类型,wire是连线型类型。这里主播再打个比方,wire相当于导线,他只能传递信号,但不能记住信号,所以输入信号要使用wire类型;而reg相当于寄存器,他能够记住输入信号,而在always@(*)模块中,我们的输出信号out要持续循环“sel =1 →out = in2,sel =0 →out = in1”这个逻辑进程,所以输出信号就要使用reg寄存器类型,他不断记住输入信号,又根据逻辑进程不断输出信号。

  解释完了代码,我们就来打开RTL视图,验证电路的正确性:

                  

  可以看出,RTL视图和我们在Visio中的设计完全一样。接着我们再来仿真,具体的仿真步骤主播就不说了,这里直接放波形图进行分析;

   我们取第一组红线内的波形图:

  在这组红线内的波形图中,sel信号恒为0,无论in2信号怎么变(输入信号in2从1-0-1),输出信号out波形图是不是恒等于输入信号in1。

  再取第二组分析:

  此时在这组红线内的波形图中,sel信号恒为1,无论in1信号怎么变,输出信号out波形图是不是恒等于输入信号in2了。

  举了这两组的例子,相信大家不仅能会分析波形了,也能从波形图中验证我们RTL视图的正确性。大家有时间呢也可以自己做一下仿真取不同情况分析。不过主播在这里要提醒大家一句啊,在进行仿真前,大家打开“Assignment--Settings”的时候,尤其是“Tool name”选项卡中,一定要注意我们选的是“Modelsim”而不是“Modelsim-Altera”:

  不然就会出现“Can'tIaunchtheModelSim-Alterasoftware”报错:

              

  仿真完之后呢我们就要去分配引脚了,在上一篇文章呢,主播在引脚分配这里出错了,这里就回归到原理图带大家一起读引脚。首先我们打开官方EP4C最小系统板的原理图,找到按键引脚分配图:

                          

  图中我们可以看出,KEY1按键被分配到pin90引脚,KEY2按键被分配到pin89引脚,RESET按键被分配到pin88引脚。由于本工程中我们需要用到3个信号,这里我们就把KEY1按键发出的信号标记为输入信号in1,KEY2按键发出的信号标记为输入信号in2,RESET按键发出的信号标记为选择信号sel。

  再来看LED引脚分配图:

   

  LED0被分配到IO_73引脚,LED1被分配到IO_75引脚,LED2被分配到IO_74引脚。这里我们就选择LED1,将其作为输出信号out。但是我们在引脚分配的页面是找不到IO_75引脚的,这时候我们找到U5-5模块,找到IO_75引脚对应的pin75:

                        

  这样我们的引脚就配置好了:

                                 

  大家注意,在分配好引脚以后呢,还要对未使用管脚进行设置,一定一定要记得烧录到板子之前要进行一次全编译,这不仅是在提醒大家,也是在提醒主播。最后呢我们就来看一下效果图:       

  不按RESET按键时,sel信号持续为0,此时按与不按KEY1,LED1是没有任何反应的,那么按下KEY2,LED1亮,松开KEY2, LED1不亮。

                                         

  长按RESET按键时,sel信号持续为1,此时按与不按KEY2,LED1是没有任何反应的,那么按下KEY1,LED1亮,松开KEY1, LED1不亮。

                                       

  好了,以上这就是本篇文章的所有内容了,还请大家多多支持主播!

Read more

2026权威评测:毕业论文AIGC降重盘点,附免费试用

2026权威评测:毕业论文AIGC降重盘点,附免费试用

ZEEKLOG摘要: 2026年高校全面启用AIGC检测,传统同义词替换的降重方式已彻底失效!毕业论文“AIGC痕迹”究竟怎么破?本文基于真实学术场景,深度盘点5款主流AI学术工具,从原创性、降痕能力、服务保障等维度的实测数据出发,为你提供一份最靠谱的选型避坑指南。 一、 引言:“查重”退潮,“查痕”当道,你的论文还安全吗? 作为在ZEEKLOG深耕“AI效率工具”与“学术科研”板块多年的老博主,最近收到了大量本硕博同学的私信求助。来到2026年,学术圈的游戏规则已经发生巨变。 据最新发布的虚拟数据《2026中国高校学术诚信白皮书》显示:今年因“AIGC生成痕迹过高”被退回重写的毕业论文比例高达37.2%。知网、万方、格子达等主流平台已经完成了第三代AI检测大模型的迭代。 这就导致了一个绝对的核心痛点:过去市面上的传统降重工具,只是在玩“同义词替换”的文字游戏,不仅语法生硬,且在最新的查测系统中AIGC疑似度往往直接飙升至60%以上。学生们花了钱降重,反而因为“AI味太重”面临学术不端的指控,返工率极高。

AIGC带来数据革命:R语言如何成为数据科学家的秘密武器?

AIGC带来数据革命:R语言如何成为数据科学家的秘密武器?

文章目录 * 一、R语言的基础特性 * 1.1 R语言的起源与发展 * 1.2 R语言的核心优势 * 二、R语言在AIGC中的应用场景 * 2.1 数据预处理与清洗 * 2.2 文本分析与生成 * 2.3 机器学习与模型构建 * 2.4 数据可视化与报告生成 * 三、R语言在AIGC中的具体案例 * 3.1 金融数据分析与预测 * 3.2 医疗数据分析与建模 * 3.3 社交媒体数据分析与情感分析 * 四、R语言在AIGC中的未来展望 * 4.1 与深度学习框架的集成 * 4.2 与云计算平台的集成 * 4.3 与自动化工具的集成 * 《R语言统计分析与可视化从入门到精通宣传文案》 * 亮点 * 内容简介 * 作者简介 * 目录

FPGA软件安装及环境的配置-基于QuartusII_13.0

FPGA软件安装及环境的配置-基于QuartusII_13.0

解压和安装前先退出360、电脑管家等所有杀毒软件,且WIN10需要关闭“设置-更新与安全-Windows安全中心-病毒和威胁防护-管理设置-实时保护-关”,防止误杀破解工具,导致激活失败。 壹、QuartusII_13.0软件的安装         针对Altera系列编译器,为何选择QaurtusII_13.0版本? * 该版本是众多初学者习惯使用的版本,操作界面比较传统,且众多教程都针对这一版本,初学者更容易接受; * 遇到相关问题需要查阅资料,网上资源较多; * QuartusII_13.0在众多版本中综合、布局布线速度较快,节约工程编译时间。 1.1 Quartus 软件的安装 1. 软件安装位置默认C盘。文件夹名称不能包含中文、空格、特殊字符,可使用下划线。 2. 以“管理员身份运行” “QaurtusII_13.0 QuartusSetup-13.0.1.232.exe”,开始软件安装。 3. 软件安装完成。只勾选第一选项,

VSCode中GitHub Copilot的大模型体系、订阅策略与 Agent 模式模型管理机制

一、引言 随着大语言模型(Large Language Models, LLMs)在软件工程领域的广泛应用,智能编程助手逐渐成为现代开发工具链的重要组成部分。其中,由 GitHub 推出的 GitHub Copilot 已成为最具影响力的 AI 编程辅助工具之一,并深度集成于 Visual Studio Code 等主流开发环境。 早期版本的 Copilot 主要依赖单一模型进行代码补全,而近年来其架构已经演进为 多模型(multi-model)驱动的智能编程平台。该平台不仅支持来自多个 AI 厂商的大模型,还通过 Agent 模式、模型路由与按需调用机制提升复杂软件开发任务的自动化程度。 本文将系统介绍以下四个方面: 1. VS Code 中 GitHub Copilot 的 大模型支持体系 2. Copilot 的 订阅策略与计费机制