HNU FPGA课设项目上手指南
1.介绍
本文章旨在帮助HNU的同学更优雅的完成数电的FPGA课设(使用DE2-115),文章将涉及完成FPGA项目需要掌握的知识,资源分享以及一些关于完成项目的经验指导。大家快快搬好小板凳,准备发车吧(doge)。
2.基础知识学习指导
Verilog
想要完成FPGA的项目,那必不可少的就是
Verilog
这个硬件描述语言,可以说Verilog
是一切一切的基础,下面将给出如何更好的学习Verilog
视频推荐:【三天入门verilog速成】 https://www.bilibili.com/video/BV1iv4y1F7Km
看完这个视频,基本上就可以上手写代码了,当然建议看完以后再根据UP主的PPT自己再整体过一遍,这样就差不多了,下面这个链接是PPT的百度网盘链接
链接:https://pan.baidu.com/s/1mnE-7S4ymgYH8GBsk41v8w?pwd=i81l
提取码:i81l
Quartus下载
quartus 18.1
下载链接:https://pan.baidu.com/s/1i0sjRkMIFU693LjjbEePOA
提取码:delp
链接放这了,老师分享的,有需要的自取,本篇教程也都是根据quartus 18.1
来写的
Quartus使用
Quartus
是一款非常强大的写FPGA的软件,如果是第一次接触FPGA就不用考虑那么多了,无脑选择Quartus
即可。
下面是完成项目时在Quartus
里会用到的板块,基本涵盖了所有的需求.
- 新建项目
这两个地方都是新建项目,针对DE2-115
的建项目中需要注意的点,在后面会提到,会将整个流程带大家走一遍
- 创建verilog文件
如图,按顺序点击,即可创建Verilog
文件,保存时注意要保存到创建好的项目的目录里去,不然非常容易乱.
- 创建波形仿真文件及使用指南
同样是上面的操作,在这个小窗口里往下翻,点开如图所示的文件,即可看到下面的界面.
若要添加信号,则可跟随下面的图示来操作
到这边选择List
,有的信号下面会一一显示出来,选择需要的信号添加即可.
添加完信号后,可指定各个输入信号input
的波形,选择好信号后,点击上图里面的C
图标,即可给出脉冲。
当全部输入信号的制定好以后,点击Simulation
即可启动仿真
注:我这里是因为没有打开项目,所以是灰色的。
- 引脚分配
写好代码后,如果想要部署到相应的FPGA的板子上,那么就需要分配引脚.
点开如图所示的按钮,即可进入到分配引脚的界面,如下图
可在Location
里分配到实际的引脚里,下面是DE2-115
的引脚对应表.
上面是常用的引脚分配,如果想要了解更多,可以看我下面分享的这个pdf文档
链接:https://pan.baidu.com/s/1in7MwdqZ6lGI_f-FRDiMsg?pwd=eqtx
提取码:eqtx
- 图生成
Quartus
中提供了非常方便的图生成工具,如果自己的老师有要求的话,可以根据下面的步骤来生成对应自己代码的图
点开即可查看图,如下
还可点开模块看里面的细节,如下
- 烧录
代码整个写完,引脚也分配完,编译通过后,就到了烧录到板子上验证的时候了,如下操作
首先应该确认自己的电脑有没有CH340
和USB-BLASTER
的驱动。
安装方式如下,如果已经有了就可以跳过
CH340
这个去网上搜一个都行,或者点下面的这个链接下载。CH340
USB-BLASTER
这个驱动的安装需要保证先装好了Quartus
,然后看这个链接里的教程安装即可[1. Quartus软件和USB-Blaster驱动安装 — 野火]FPGA Verilog开发实战指南——基于Altera EP4CE10 征途Mini开发板 文档 (embedfire.com)
两个驱动都装好后,点击Quartus
里的这个按钮,即可进入到烧录界面
如下图,如果驱动安装没问题,有如下画面
最后,点击Start
开始烧录即可
一般情况下,这样烧录进去的代码,fpga断电重启后就会没有,想了解详细的原因的可以看这篇文章。
- 编译
前面讲了好多,好像忘讲怎么编译了,编译其实非常简单,如下
点击一下图中的按钮(也可点击快捷键Ctrl+L
),即可开始编译,正常来说编译的时间都挺长的,如果不想等那么长时间,只是想看看有没有问题,那么点击快捷键Ctrl+K
即可
编译成功后,有如下画面
3.基本项目创建流程
这里我就截老师的ppt里的内容了,按照步骤一步步来准没问题
按照上面的步骤建立好文件后,就可以开始写代码了
HNU FPGA课设项目上手指南的更多相关文章
- FPGA课设-基于Xilinx Basys2开发板的除法器设计
介绍一下Basys开发板: Basys2 FPGA开发板是一个电路设计实现平台,任何人都可以通过它来搭建一个真正的数字电路.Basys2是围绕着一个Spartan-3E FPGA芯片和一个Atmel ...
- Android SDK上手指南:示例项目
Android SDK上手指南:示例项目 2013-12-26 15:40 核子可乐译 51CTO 字号:T | T Android SDK示例项目中的应用能够执行种种功能,例如各类用户界面元素.数据 ...
- 谷歌内部流出Jetpack Compose最全上手指南,含项目实战演练!
简介 Jetpack Compose是在2019Google i/O大会上发布的新的库.Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速度. ...
- X下轻量级桌面WindowMaker上手指南
layout: post title: 轻量级桌面WindowMaker上手指南 tags: x11, cygwin, raspi --- 最近工作上需要在远程Linux上运行一个桌面(我需要跑Net ...
- Resharper上手指南
原文http://www.cnblogs.com/renji/archive/2007/12/11/resharper.html Resharper上手指南 我是visual studio的忠实用户, ...
- 计算机网络课设之基于UDP协议的简易聊天机器人
前言:2017年6月份计算机网络的课设任务,在同学的帮助和自学下基本搞懂了,基于UDP协议的基本聊天的实现方法.实现起来很简单,原理也很简单,主要是由于老师必须要求使用C语言来写,所以特别麻烦,而且C ...
- Android SDK上手指南:下一步学习方向
Android SDK上手指南:下一步学习方向 2014-02-28 11:01 核子可乐 译 51CTO 字号:T | T 到目前为止,我们已经介绍过的知识足以帮助大家从非常理想的起点开始进行And ...
- NewLife.XCode 上手指南2018版(一)代码生成
目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...
- JAVA课设个人博客--多源数据教学管理系统
JAVA课设个人博客--多源数据教学管理系统 1.团队课程设计博客链接 https://www.cnblogs.com/hq9-/p/10278470.html 2. 个人负责模块或任务说明 主要模块 ...
- Gatsby上手指南 - 让你的静态网站用react来高逼格的写
注意:Gatsby V2版本安装及使用问题请移步<Gastby V2安装过程中常见问题>,此文较旧,主要针对V1版Gatsby而介绍 前言 一直以来都是用之前比较流行的静态网站生成器Hex ...
随机推荐
- 遍历列表、元组或字符串的函数enumerate
这两天在处理遇到的问题,循环遍历列表中的字典并输出到excel中 查阅资料发现了一个正和我意的函数 所以周一一上班我就开始试一试 然而发现 enumerate函数只适用于列表.元组或字符串的函数 语法 ...
- Windows编程----内核对象竟然如此简单?
什么是内核对象 内核对象本质上就是内存中的一块内存 ,这块内存由操作系统进行管理和分配,任何应用程序都无法直接操作这块内存区域.至于内核对象的作用,我们暂且不说,这里只需要直到它是内存中的一块内存. ...
- Docker镜像的内部机制
Docker镜像的内部机制 镜像就是一个打包文件,里面包含了应用程序还有它运行所依赖的环境,例如文件系统.环境变量.配置参数等等. 环境变量.配置参数这些东西还是比较简单的,随便用一个 manifes ...
- Oracle操作审计
因为信安的要求,要对Oracle加审计.看了一下,原来是有开的,类型为DB: SQL> show parameter audit; NAME TYPE VALUE --------------- ...
- 痞子衡嵌入式:记录为i.MXRT1060更换较大容量Flash(IS25LP064A_IS25LP128F)导致二级App异常启动问题解决全过程(上篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是为i.MXRT1060更换较大容量Flash导致二级App异常启动问题. 痞子衡最近在支持一个 RT1062 国外客户项目,客户在项目预 ...
- CSAPP学习笔记——chapter8 异常控制流
CSAPP学习笔记--chapter8 异常控制流 简介 异常控制流(Exceptional Control Flow,ECF)是在计算机系统中处理不寻常或异常情况的一种机制.它允许系统跳出正常的顺序 ...
- docker容器运行,交互式与守护式的区别
一.使用交互式运行容器,容器运行后直接进入到容器内部,退出容器内部后,容器直接关闭
- @Scheduled 定时任务自定义
简介 @Scheduled 定时任务自定义可以通过SchedulingConfigurer实现. SchedulingConfigurer 是 Spring Framework 中的一个接口,用于配置 ...
- zookeeper选主机制
Zookeeper选主机制 一.Server工作状态 每个Server在工作过程中有四种状态: LOOKING:竞选状态,当前Server不知道leader是谁,正在搜寻. LEADING:领导者状态 ...
- python之“if __name__=="__main__"”的代表的意思和用法
创建下方脚本A def print_sum(a): print(a) print_sum(20) if __name__=="__main__": print("test ...