EDA实验----四选一多路选择器设计(QuartusII)

目录

一.实验目的

二.实验仪器设备

三.实验原理:

四.实验要求

 五.实验内容及步骤

1.实验内容

2.实验步骤

六.实验报告

七.实验过程

1.创建Verilog文件,写代码

2.波形仿真

3.作出电路图

 4.烧录文件


一.实验目的

1.了解4选1的工作原理和实现的方法。
2.实现4选1多路选择器。
3.学会用于Verilog语言进行程序设计。

二.实验仪器设备

1.PC机一台
2.FPGA实验开发系统一套。 

三.实验原理:

4选1对应的功能真值表如下图:

        当选择输入AB为LL时,Y输出D0, 当AB为LH时,Y输出D1, 当AB为HL时,Y输出D2,当AB为HH时,Y输出D3。

四.实验要求

1.预习教材中的相关内容。
2.阅读并熟悉本次实验的内容。
3.用Verilog语言完成4选1多路选择器电路设计。

 五.实验内容及步骤

1.实验内容

分别采用case语句表达式、assign语句表达式、条件赋值语句表达式、条件语句表达式(if)设计4选1多路选择器。选择其中一种方法下载到板子验证即可,其余在仿真验证。

2.实验步骤

(1).开机,进入QUARTUSⅡ软件系统。
(2).建立工程。主芯片为Cyclone2系列EP2C20Q240C8N型号。工程名为
MUX41a。
(3).新建一个Verilog HDL File文件,命名为MUX41a.v。
(4).使用Verilog语言编写4选1多路选择器。
(5).保存文件。
(6).将MUX41a.v文件设置为工程的顶层文件并编译。
(7).创建仿真文件University Program VWF,添加所需的变量并进行功能仿
真。
(8).分析仿真结果
(9).配置管脚(四个按键分别是(153,95,154,31),拨码开关接(212,213),
LED接(218))
(10).编译综合下载验证。

六.实验报告

1.总结Verilog设计多路选择器使用的最基本与核心的语法知识。
2.对仿真的结果进行分析。
3.讨论自己在设计过程中遇到的问题、解决的过程以及收获体会。

七.实验过程

点击New project……创建新工程

 然后设置项目的路径和名称(自己设置就好了)

选择相对应的芯片类型(看自己情况选择) 

 创建完成!

1.创建Verilog文件,写代码

点击New,创建文件

 选择Verilog文件,创建

然后就是写代码,写完之后就进行保持文件,把文件的名称跟模块的名称改成一样。(必须一致)

代码如下: 

module MUX41a(A,B,C,D,S1,S0,Y);input A,B,C,D,S1,S0;output Y;wire AT=S0?D:C;wire BT=S0?B:A;wire Y=(S1?AT:BT);
endmodule

 写好了之后就进行保存  然后,把这个文件设置为顶层文件,右键点击这个.v文件,然后如下图所示,点击设置顶层文件

最后就是编译运行,如图所示,没有显示报错,就说明代码是没问题的。 

2.波形仿真

 同样的,还是去点击新建文件

选择创建仿真文件: 

如图所示,鼠标双击下图红色箭头指向的位置,导入输入输出接口。

点击下图箭头指向的位置,导入接口设置。 

进去之后,点击List,显示接口,然后把接口右移到当前仿真文件当中,最后点击OK就行了。

然后就是设置输入的波形,依次如下操作:

 设置完成了之后,就进行编译运行

仿真结果如下:

 然后对比相关逻辑,如果仿真无误就可以去画电路图了。

3.作出电路图

创建block文件,如图所示:

然后就是,点开左下方file文件,鼠标右键Verilog文件,然后生成子模块文件,如图所示: 

然后就是点开block文件,然后点击选择元器件,点开project文件夹,这里我们就会看到,有一个生成的元器件,也就是我们前面Verilog语言编程的元器件。

 然后就可以去画电路图了。电路图如下所示:

画好了电路图就进行引脚的绑定操作。如图所示,点开上面红色箭头指向的东西,然后下面就是去对每一个输入输出引脚去进行绑定。(根据实际情况需求去绑定)

 绑定完成了之后就是去编译运行,运行无错后就可以进行烧录操作了。如图所示,点击此处编译运行。

 4.烧录文件

点开此处。

这里我们会看到,下面有一个芯片,这个也就是我们写好了的sof文件,然后就是通过你的电脑接口去连接到开发板,如果你看到上面有一个No Hardware的时候,你点击旁边的按钮进行接口设置,设置为USB接口即可。最后点击start就可以进行烧录了。 

 最后就在开发板去进行检查吧。

以上就是本期的全部内容了,我们下一次见!

分享一张壁纸:

 

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

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

相关文章

获取windows 操作系统 是 win7 还是 win10 32位 或者是 64 位

import platform# 获取操作系统信息 system_info platform.system()# 检测操作系统版本 if "Windows" in system_info:version_info platform.version()if "10" in version_info:print("Windows 10")elif "7" in version_info:print…

如何在苹果iOS系统ipa应用中获取当前版本号和Bundle ID

在iOS应用开发过程中,了解如何获取和使用应用的当前版本号、Bundle ID和其他相关信息是至关重要的。无论是在应用内显示这些信息,还是在编写一些版本依赖的逻辑时,掌握这些知识点都将帮助开发者进行更有效的管理和维护。本文将详细介绍如何在…

解读Sketching the Future (STF):零样本条件视频生成

Diffusion Models视频生成-博客汇总 前言:基于草图的视频生成目前是一个基本无人探索过的领域,videocomposer做过一些简单的探索。Sketching the Future从零样本条件视频生成出发,出色的完成了这一任务。这篇博客就解读一下《Sketching the Future (STF): Applying Conditio…

HarmonyOS应用开发-视频播放器与弹窗

Viedo组件 在手机、平板或是智慧屏这些终端设备上,媒体功能可以算作是我们最常用的场景之一。无论是实现音频的播放、录制、采集,还是视频的播放、切换、循环,亦或是相机的预览、拍照等功能,媒体组件都是必不可少的。以视频功能为…

Python中连接池的分析和应用

连接池(Connection Pool)是在系统初始化的时候,将网络连接作为对象存储在内存中,当用户需要进行连接时,从连接池中取一个已经建立好的空连接对象,使用完后不关闭连接,将连接放回连接池&#xff…

【Vue原理解析】之虚拟DOM

Vue.js是一款流行的JavaScript框架,它采用了虚拟DOM(Virtual DOM)的概念来提高性能和开发效率。虚拟DOM是Vue.js的核心之一,它通过在内存中构建一个轻量级的DOM树来代替直接操作真实的DOM,从而减少了对真实DOM的操作次…

暖手宝上架亚马逊美国站UL499报告测试标准要求

暖手宝是运用物理及化学原理研制的自动取暖保健用品。该产品以其自动生热,有趣,实用等新颖独特的优势,深受欢迎——暖手宝具有自动取暖,理疗保健等多种功能。只要插上电源等上10分钟左右就能发热,最后一种是通过锂电池…

【华为OD题库-015】报文重排序-Java

题目 对报文进行重传和重排序是常用的可靠性机制&#xff0c;重传缓冲区内有一定数量的子报文&#xff0c;每个子报文在原始报文中的顺序已知&#xff0c;现在需要恢复出原始报文。 输入描述 输入第一行为N,表示子报文的个数&#xff0c;0<N < 1000。 输入第二行为N个子报…

多线程 浏览器渲染引擎 图形用户界面(GUI,Graphical User Interface)应用程序

目录 多线程浏览器渲染引擎图形用户界面&#xff08;GUI&#xff0c;Graphical User Interface&#xff09;应用程序 &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01; ⭐️ 收藏&#xff0c;你的青睐是我努力的方向&#xff01; ✏️ 评论&#xff0c;你的…

【FISCO BCOS】十九、区块链浏览器部署

目录 一、环境依赖 检查环境 1.检查java 二、拉取安装脚本 获取部署安装包 ​编辑 解压安装包 进入目录 三、修改配置 四、部署服务 五、状态检查 检查前后端进程 1.检查后端server进程 2.检查前端的nginx进程 检查进程端口 六、使用区块链浏览器 1.配置群组…

EDA实验-----3-8译码器设计(QuartusII)

目录 一. 实验目的 二. 实验仪器 三. 实验原理及内容 1.实验原理 2.实验内容 四&#xff0e;实验步骤 五. 实验报告 六. 注意事项 七. 实验过程 1.创建Verilog文件&#xff0c;写代码 ​编辑 2.波形仿真 3.连接电路图 4.烧录操作 一. 实验目的 学会Verilog HDL的…

【Java 进阶篇】Java与JQuery:探秘事件绑定、入口函数与样式控制

在现代的Web开发中&#xff0c;Java和JQuery是两个不可或缺的角色。Java为我们提供了强大的后端支持&#xff0c;而JQuery则是前端开发的得力助手。本篇博客将围绕Java和JQuery&#xff0c;深入探讨事件绑定、入口函数和样式控制&#xff0c;带你进入前端开发的奇妙世界。 Jav…

ROS基础—vscode创建工作空间

1、创建ROS工作空间 首先打开ubuntu的终端&#xff0c;接着依次输入如下的命令行&#xff1b; mkdir -p xxx_ws/src(必须得有 src) cd xxx_ws catkin_make当然我一般是新建一个叫做demo的工作空间&#xff0c;如 mkdir -p demo04_ws/src 2、启动vscode cd xxx_ws code . …

粉够荣获淘宝联盟区域理事会常务理事,携手共铸淘客新生态

淘宝联盟区域理事会于2021年成立&#xff0c;首届成立成都、广州、武汉&#xff0c;服务近2000个领军淘宝客企业&#xff0c;作为区域生态与官方交流重要枢纽&#xff0c;理事会举办近百场交流分享会&#xff0c;带动淘客跨域跨业态交流成长。 2023年9月7日第二届淘宝联盟理事…

Unity中关于Lerp()方法的使用

在Unity中&#xff0c;Lerp()方法用于在两个值之间进行线性插值。 它的语法有&#xff1a; public static float Lerp(float a, float b, float t);//在两个float类型的值a和b之间进行线性插值 public static Vector2 Lerp(Vector2 a, Vector2 b, float t);//在两个Vector2类…

【Maven教程】(十):使用 Hudson 进行持续集成—— 从Hudson的安装到任务创建 ~

Maven 使用 Hudson 进行持续集成 1️⃣ 持续集成的作用、过程和优势2️⃣ Hudson 简介与安装3️⃣ 准备 Subversion 仓库4️⃣ Hudson 的基本系统设置5️⃣ 创建 Hudson 任务5.1 Hudson 任务的基本配置5.2 Hudson 任务的源码仓库配置5.3 Hudson 任务的构建触发配置5.4 Hudson …

debian 添加开机启动项

有的时候&#xff0c;经常有自己需要的程序&#xff0c;官方并没有提供添加开机启动的方法&#xff0c;但我们却需要让他们开机启动&#xff08;比如探针类、飞机类、服务类程序等&#xff09;。可能有的人会说&#xff0c;可以使用 /etc/rc.local 啊。是可以使用这个&#xff…

AI:86-基于深度学习的人体姿态估计与运动分析

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

Leetcode—2469.温度转换【简单】

2023每日刷题&#xff08;二十六&#xff09; Leetcode—2469.温度转换 实现代码 /*** Note: The returned array must be malloced, assume caller calls free().*/ double* convertTemperature(double celsius, int* returnSize) {double* ans (double *)malloc(sizeof(do…