FPGA实验1:简单逻辑电路

一、实验目的及要求

  1. 学习Create-SOPC实验平台的使用方法;
  2. 熟悉Quartus II 软件平台和使用 VHDL 语言设计电路的方法;
  3. 学习简单逻辑电路的设计、仿真和硬件测试。

二、实验原理

运用Quartus II 集成环境下的VHDL文本设计方法设计半加器,进行波形仿真、引脚分配并下载到实验设备上进行逻辑功能验证。

三、实验内容和步骤

  1. 创建个人实验文件夹(最好使用英文字母命名不要用中文或数字名称)如:D:\example
  2. 运行 Quartus Ⅱ软件。
  3. 创建一个VHDL设计文件:File -> New,在 Device Design Files 中选择VHDL File。在程序编辑窗输入VHDL程序并保存;在弹出对话框中输入文件名(必须和程序中实体名相同)并使下方小框内出现“√”,点击保存会弹出“是否创建新工程”提示信息如图1-1所示。
  4. 创建一个新工程:点击图1-1中“是”可进入创建工程向导(也可以File -> New project Wizard进入向导),此时看到的默认工程名、顶层实体名都为h_adder(其中工程名可换名但顶层实体名必与编写的程序实体名一致),如图1-2。点击NEXT,再在弹出窗中点击NEXT,选择目标器件:Cyclone 系列 EP1C20F324C8 芯片。这个是9.0版本的,其他高于9.0版本的可能就没有这个芯片。

  5. 编译:选择 Processing->Start Compilation命令,对此工程进行逻辑分析、综合适配、时序分析等。如果设计正确则完全通过各种编译,如果有错误则根据报错信息返回 h_adder.vhd 进行修改,直至完全通过编译为止。
  6. 创建一个仿真波形文件: File -> New,在 Other Files 中选择Vector Waveform File

  7. 以扩展名为.VWF,文件名与编译的文件名相同,保存创建的仿真波形文件,如h_adder.vwf。
  8. 输入引脚:Name 栏中点击鼠标右键,选择 “Insert Node or Bus”,在其对话框中点击 “Node Finder” 按钮,弹出 “Node Finder” 对话框,Named:*;Filter :Pin:all,点击“List”,列出所有引脚,在其中选择需要仿真的引脚

  9. 对所有input引脚赋初值(所有可能出现的信号组合状态都要求存在),对所有output引脚赋随机值后,保存仿真波形文件

  10. 开始仿真:选择 Processing->Start Simulation若仿真没有出错,则在完成仿真后,可以看到仿真结果波形,观察输入、输出波形逻辑关系是否是与设计要求相符,波形仿真无误后进行下步操作。
  11. 选择 Assignments -> Assignments Editor,在Assignments Editor 窗口中选择 Pin 标签页,再按下表分配引脚,如图所示:
  12. 引脚名称

    引脚编号

    连接网络

    引脚名称

    引脚编号

    连接网络

    a

    PIN_N14

    KEY2

    co

    PIN_N15

    LED2

    b

    PIN_V11

    KEY3

    so

    PIN_U11

    LED3

  13. 重编译:选择 Processing->Start Compilation命令,重新编译,完成后形成可配置到FPGA的 h_adder.sof 文件和配置到外部存储器的h_adder.pof文件。

  14.编程下载:使用Create-SOPC2000实验系统及SOPC 开发板,将ByteBlaster II 下载电缆插入SOPC 开发板的JTAG 下载接口中。仔细检查确保接线无误后打开电源。在Quartus II 软件中,选择Tools/Programmer 菜单,出现如图1-8所示的编程配置界面。在”Mode”中选择JTAG,点击”Add File”按钮添加需要配置的SOF 文件,选中Program/Configure,点击”Start”按钮就可以对芯片进行配置。

  15.测试:配置完成后按动KEY2和KEY3,改变a、b 的输入电平观察输出结果验证设计是否正确。

四、实验代码

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

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

相关文章

LInux工具(2)

目录 1.关于底行模式的一个设置 1.1设置行号 1.2取消行号 2.简单vim配置 2.1简单认识 2.2配置选项 2.3其他说明 3.库的引入 3.1背景知识 3.2对应指令 3.3相关介绍 3.4.o文件和库的链接 3.5静态库的安装和测试 3.6动静态库对比 1.关于底行模式的一个设置 1.1设置行…

黑马点评-Postman卡住sending Requst原因解决

不知道为什么,用这个c1e1d5的token就会一直卡死,但是换了一个token就解决了,目前不知道为什么 解决了,原来是这个请求下面的函数发生了死循环!!太瓜皮了我超! 把num写成了count,导…

函数(递归)

递归:程序调用自身编程技巧称为递归。 在学习递归前需要粗略的了解一下内存,内存分为三类,分别是栈区、堆区和静态区。对于栈区来说,每调用一次函数都会为本次函数开辟一块空间,然而栈区也是有空间限制的,随…

Golang | Leetcode Golang题解之第242题有效的字母异位词

题目&#xff1a; 题解&#xff1a; func isAnagram(s, t string) bool {if len(s) ! len(t) {return false}cnt : map[rune]int{}for _, ch : range s {cnt[ch]}for _, ch : range t {cnt[ch]--if cnt[ch] < 0 {return false}}return true }

Temporal-Kit 及 Ebsynth-流程

https://www.youtube.com/watch?vBL77HVIviJM 预处理 Ebsynth-流程

全国区块链职业技能大赛第八套区块链产品需求分析与方案设计

任务1-1:区块链产品需求分析与方案设计 医疗健康平台中涉及到医院、医生、患者等参与方,他们需要在区块链医疗健康平台中完成账户注册、身份上链、挂号就诊、查询病例等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于医疗健康平台系统架构,以…

PyTorch实战:深度解析Tensor归一化技巧与应用

PyTorch Tensor 归一化&#xff1a;理解、应用及实现 在机器学习和深度学习中&#xff0c;数据预处理是一个关键的步骤。其中&#xff0c;对于某些情况下&#xff0c;特别是生产的环境&#xff0c;数据归一化是一项必不可少的任务。 在 PyTorch 中&#xff0c;对于 Tensor 的…

【SpringBoot配置文件application.yaml】笔记

详细内容见官方文档Common Application Properties 使用application.yaml进行简单配置 第一步&#xff1a;创建WebDemo第二步&#xff1a;创建application.yaml配置文件注意&#xff1a; 第三步&#xff1a;验证自己创建的yaml文件是否生效测试&#xff1a;思考&#xff1a;如…

算法刷题笔记 八数码(C++实现)

文章目录 题目描述基本思路实现代码 题目描述 在一个33的网格中&#xff0c;1∼8这8个数字和一个x恰好不重不漏地分布在这33的网格中。例如&#xff1a; 1 2 3 x 4 6 7 5 8 在游戏过程中&#xff0c;可以把x与其上、下、左、右四个方向之一的数字交换&#xff08;如果存在&…

MT7628指定分区备份固件

为了避免升级过程突然断电&#xff0c;或者其他不良操作导致的路由器“变砖”。在MT7628使用过程中&#xff0c;我们可以对固件进行备份。 MT7628原厂SDK有关于双备份的选项&#xff0c;选择对应选项后&#xff0c;可对固件进行备份。下面以SKYLAB的SKW92A模组为例进行测试说明…

【专项刷题】— 快排

1、颜色分类 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 创建三个指针&#xff0c;然后把数组分为三个区域遍历代码&#xff1a; class Solution {public void swap(int[] nums, int i, int j){int t nums[i];nums[i] nums[j];nums[j] t;}public void sortCo…

百度网盘Android一二面凉经(2024)

百度网盘Android一二面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《百度网盘Android一二面凉经(2024)》。 面试职位: 网盘主端研发组_Android高级研…

细说MCU用定时器控制单路DAC模块设计和输出锯齿波的实现方法

目录 一、参考工程 二、仅提供不同的配置 1、用定时器控制DAC输出 2、配置定时器参数 三、代码修改 四、 运行并观察显示效果 一、参考工程 本工程依赖作者的文章&#xff1a;细说MCU用单路DAC模块设计和输出锯齿波的实现方法-CSDN博客 https://wenchm.blog.csdn.net/ar…

Python 如何对上万、百万、亿级数据去重?

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 今天我们要一起探索一个让数据工程师、数据科学家和开发者们都头疼的问题&#xff1a;如何对海量数据进行去重。随着数据量的不断增长&#xff0c;我们在处理数据时&#xff0c;去重操作…

要么利用规则,要么打破规则

在这个充满规则和标准的世界里&#xff0c;我们常常被告知要如何生活、如何成功。但事实上&#xff0c;这些规则和标准往往限制了我们的潜力和创造力。本文将探讨如何不被外界规则所束缚&#xff0c;活出自己的风采。 规则的双刃剑 规则和标准可以为社会带来秩序&#xff0c;…

JavaScript进阶之构造函数数据常用函数

目录 一、深入对象1.1 创建对象的三种方式1.2 构造函数1.3 实例成员&静态成员 二、内置构造函数2.1 Object2.2 Array2.3 String常见实例方法2.4 Number 一、深入对象 1.1 创建对象的三种方式 利用对象字面量创建对象利用new object创建对象 const obj new Object({})利用…

SAP 如何修改统驭科目类型

在SAP中&#xff0c;科目设置错了统驭科目类型并且记账了要如何修改&#xff1f; 例如&#xff1a;前期应收账款对应的统驭科目类型前期设置成了供应商&#xff0c;并且供应商用该科目过来账&#xff0c;现在需要调整&#xff0c;想要将供应商调整到客户&#xff0c;科目为当前…

Java | Leetcode Java题解之第268题丢失的数字

题目&#xff1a; 题解&#xff1a; class Solution {public int missingNumber(int[] nums) {int n nums.length;int total n * (n 1) / 2;int arrSum 0;for (int i 0; i < n; i) {arrSum nums[i];}return total - arrSum;} }

ros2--QOS--通信质量

在ros2通信编程中&#xff0c;总有一个和qos相关的参数&#xff1a; publisher: template<typename MessageT, typename AllocatorT, typename PublisherT> std::shared_ptr<PublisherT> Node::create_publisher(const std::string & topic_name,const rclcp…

Linux安装Redis5.0镜像、Mysql8.0镜像

docker 安装Redis &#xff08;全网最详细&#xff1a;附带配置文件&#xff09;_docker pull redis-CSDN博客 Docker实用-安装Mysql8 - 简书 改动&#xff1a; 指定&#xff1a;docker pull mysql:8.0 docker run -d -p 3306:3306 \ --restartalways \ --privilegedtrue \…