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中提供了非常方便的图生成工具,如果自己的老师有要求的话,可以根据下面的步骤来生成对应自己代码的图

点开即可查看图,如下

还可点开模块看里面的细节,如下

  • 烧录

代码整个写完,引脚也分配完,编译通过后,就到了烧录到板子上验证的时候了,如下操作

首先应该确认自己的电脑有没有CH340USB-BLASTER的驱动。

安装方式如下,如果已经有了就可以跳过

CH340

这个去网上搜一个都行,或者点下面的这个链接下载。CH340

USB-BLASTER

这个驱动的安装需要保证先装好了Quartus,然后看这个链接里的教程安装即可[1. Quartus软件和USB-Blaster驱动安装 — 野火]FPGA Verilog开发实战指南——基于Altera EP4CE10 征途Mini开发板 文档 (embedfire.com)

两个驱动都装好后,点击Quartus里的这个按钮,即可进入到烧录界面

如下图,如果驱动安装没问题,有如下画面

最后,点击Start开始烧录即可

一般情况下,这样烧录进去的代码,fpga断电重启后就会没有,想了解详细的原因的可以看这篇文章。

关于FPGA的烧写方式总结_fpga烧录-CSDN博客

  • 编译

前面讲了好多,好像忘讲怎么编译了,编译其实非常简单,如下

点击一下图中的按钮(也可点击快捷键Ctrl+L),即可开始编译,正常来说编译的时间都挺长的,如果不想等那么长时间,只是想看看有没有问题,那么点击快捷键Ctrl+K即可

编译成功后,有如下画面

3.基本项目创建流程

这里我就截老师的ppt里的内容了,按照步骤一步步来准没问题

按照上面的步骤建立好文件后,就可以开始写代码了

HNU FPGA课设项目上手指南的更多相关文章

  1. FPGA课设-基于Xilinx Basys2开发板的除法器设计

    介绍一下Basys开发板: Basys2 FPGA开发板是一个电路设计实现平台,任何人都可以通过它来搭建一个真正的数字电路.Basys2是围绕着一个Spartan-3E FPGA芯片和一个Atmel ...

  2. Android SDK上手指南:示例项目

    Android SDK上手指南:示例项目 2013-12-26 15:40 核子可乐译 51CTO 字号:T | T Android SDK示例项目中的应用能够执行种种功能,例如各类用户界面元素.数据 ...

  3. 谷歌内部流出Jetpack Compose最全上手指南,含项目实战演练!

    简介 Jetpack Compose是在2019Google i/O大会上发布的新的库.Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速度. ...

  4. X下轻量级桌面WindowMaker上手指南

    layout: post title: 轻量级桌面WindowMaker上手指南 tags: x11, cygwin, raspi --- 最近工作上需要在远程Linux上运行一个桌面(我需要跑Net ...

  5. Resharper上手指南

    原文http://www.cnblogs.com/renji/archive/2007/12/11/resharper.html Resharper上手指南 我是visual studio的忠实用户, ...

  6. 计算机网络课设之基于UDP协议的简易聊天机器人

    前言:2017年6月份计算机网络的课设任务,在同学的帮助和自学下基本搞懂了,基于UDP协议的基本聊天的实现方法.实现起来很简单,原理也很简单,主要是由于老师必须要求使用C语言来写,所以特别麻烦,而且C ...

  7. Android SDK上手指南:下一步学习方向

    Android SDK上手指南:下一步学习方向 2014-02-28 11:01 核子可乐 译 51CTO 字号:T | T 到目前为止,我们已经介绍过的知识足以帮助大家从非常理想的起点开始进行And ...

  8. NewLife.XCode 上手指南2018版(一)代码生成

    目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...

  9. JAVA课设个人博客--多源数据教学管理系统

    JAVA课设个人博客--多源数据教学管理系统 1.团队课程设计博客链接 https://www.cnblogs.com/hq9-/p/10278470.html 2. 个人负责模块或任务说明 主要模块 ...

  10. Gatsby上手指南 - 让你的静态网站用react来高逼格的写

    注意:Gatsby V2版本安装及使用问题请移步<Gastby V2安装过程中常见问题>,此文较旧,主要针对V1版Gatsby而介绍 前言 一直以来都是用之前比较流行的静态网站生成器Hex ...

随机推荐

  1. 遍历列表、元组或字符串的函数enumerate

    这两天在处理遇到的问题,循环遍历列表中的字典并输出到excel中 查阅资料发现了一个正和我意的函数 所以周一一上班我就开始试一试 然而发现 enumerate函数只适用于列表.元组或字符串的函数 语法 ...

  2. Windows编程----内核对象竟然如此简单?

    什么是内核对象 内核对象本质上就是内存中的一块内存 ,这块内存由操作系统进行管理和分配,任何应用程序都无法直接操作这块内存区域.至于内核对象的作用,我们暂且不说,这里只需要直到它是内存中的一块内存. ...

  3. Docker镜像的内部机制

    Docker镜像的内部机制 镜像就是一个打包文件,里面包含了应用程序还有它运行所依赖的环境,例如文件系统.环境变量.配置参数等等. 环境变量.配置参数这些东西还是比较简单的,随便用一个 manifes ...

  4. Oracle操作审计

    因为信安的要求,要对Oracle加审计.看了一下,原来是有开的,类型为DB: SQL> show parameter audit; NAME TYPE VALUE --------------- ...

  5. 痞子衡嵌入式:记录为i.MXRT1060更换较大容量Flash(IS25LP064A_IS25LP128F)导致二级App异常启动问题解决全过程(上篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是为i.MXRT1060更换较大容量Flash导致二级App异常启动问题. 痞子衡最近在支持一个 RT1062 国外客户项目,客户在项目预 ...

  6. CSAPP学习笔记——chapter8 异常控制流

    CSAPP学习笔记--chapter8 异常控制流 简介 异常控制流(Exceptional Control Flow,ECF)是在计算机系统中处理不寻常或异常情况的一种机制.它允许系统跳出正常的顺序 ...

  7. docker容器运行,交互式与守护式的区别

    一.使用交互式运行容器,容器运行后直接进入到容器内部,退出容器内部后,容器直接关闭

  8. @Scheduled 定时任务自定义

    简介 @Scheduled 定时任务自定义可以通过SchedulingConfigurer实现. SchedulingConfigurer 是 Spring Framework 中的一个接口,用于配置 ...

  9. zookeeper选主机制

    Zookeeper选主机制 一.Server工作状态 每个Server在工作过程中有四种状态: LOOKING:竞选状态,当前Server不知道leader是谁,正在搜寻. LEADING:领导者状态 ...

  10. python之“if __name__=="__main__"”的代表的意思和用法

    创建下方脚本A def print_sum(a): print(a) print_sum(20) if __name__=="__main__": print("test ...