0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Quartus.II使用简介与第一个工程实例

工程师 来源:网络整理 作者:h1654155205.5246 2019-03-07 15:41 次阅读

Quartus.II使用简介与第一个工程实例

基于QuartusII通过实验板上的KEY1按钮控制FPGA核心板上的第一个LED灯。本实验比较简单,使用本站FPGA开发板或者CPLD开发板以及其它FPGA开发板都可进行实验。下面实验目的:通过该实例学习,可以了解FPGA的基本开发流程,熟识quartusII软件基本功能的使用。

基本原理:利用一个常开按钮(实验板上的KEY1)作为输入(常开时输入1,闭合时输入0),经过一个反相器后输出到核心板的第一个LED。KEY1常开时,LED亮,按下(闭合)实验板上的KEY1,该LED熄灭。

1、建立工程

运行QuatrusII软件(以下简称Q2),建立工程,FileàNew Project Wizad如点击New Project Wizard 后弹出指定工程名的对话框,在Diectory, Name, Top-Level Entity中如下图填写:

Quartus.II使用简介与第一个工程实例

按Next按钮,出现添加工程文件的对话框:

在这里我们先不用管它,直接按Next进行下一步,选择FPGA器件的型号:

Quartus.II使用简介与第一个工程实例

在Family下拉筐中,我们选择Cyclone系列FPGA,然后在“Available devices:”中根据核心板的FPGA型号选择FPGA型号,注意在Filters一栏选上“Show Advanced Devices”以显示所有的器件型号。执行下一步出现对话框:

这里是选择其它EDA工具的对话框,我们用Q2的集成环境进行开发,因此这里不作任何改动。按Next进入工程的信息总概对话框:

按Finish按钮即建立一个空项目。

Quartus.II使用简介与第一个工程实例

2、建立顶层图

执行FileàNew,弹出新建文件对话框:

选择“Block Diagram Schematic File”按OK即建立一个空的顶层图,缺省名为“Block1.bdf”,我们把它另存为(FileàSave as),接受默认的文件名,并将“Add file to current project”选项选上,以使该文件添加到工程中去。如图所示:

Quartus.II使用简介与第一个工程实例

3、添加逻辑元件(Symbol)

双击顶层图图纸的空白处,弹出添加元件的对话筐:

在Libraries里寻找所需要的逻辑元件,如果知道逻辑元件的名称的话,也可以直接在Name一栏敲入名字,右边的预览图即可显示元件的外观,按OK后鼠标旁边即拖着一个元件符号,在图纸上点击左键,元件即安放在图纸上。在图纸上分别添加非门(not)、输入(input)、输出(output)三个symbol,如图所示:

Quartus.II使用简介与第一个工程实例

连线,将鼠标移到symbol连线端口的那里,鼠标变成图示模样:按下左键拖动鼠标到另一个symbol的连线端。本例中,这三个symbol的连线如下图所示:

分别双击input和output symbol的名字“pin_name”、“pin_name1”,将它们的名字改为Key1,LED1:

Quartus.II使用简介与第一个工程实例

4、 分配管脚

芯片分配管脚可以用QuartusII软件里的“AssignmentsàPins”菜单,也可以用tcl脚本文件。用Tcl文件进行配置可重用性好,易于管理,因此本文介绍用tcl的方法。对于另一种方法,可以参考QuartusII软件的帮助文档。在工程目录下建立一个name为Setup.tcl的file。FileàNew,选择other files页面:

Quartus.II使用简介与第一个工程实例

有关tcl文件的更详尽内容可参考QuartusII的帮助文档,对于我们所选用的FPGA开发板SOPC开发板来说,由于不同型号的FPGA核心板的管脚与实验板上的引脚也不同,因此不同的核心板对应的.tcl文件也不同(关于核心板引脚与实验板引脚对应的详细情况可以参照相关电路原理图)。在实际项目中,该文件也可以根据具体管脚分配要求来改写。

对应于EP1C6FPGA开发板,EP1C12FPGA开发板:

#Setup.tcl

# Setup pin setting

set_global_assignment -name RESERVE_ALL_UNUSED_PINS “AS INPUT TRI-STATED”

set_global_assignment -name ENABLE_INIT_DONE_OUTPUT OFF

set_location_assignment PIN_1 -to led1

set_location_assignment PIN_122 -to key1

保存到工程目录下,并注意在保存对话框选上“Add file to current project”选项。然后打开Tools -》 Tcl Scripts,选中刚才编辑的Script文件:Setup,并点击Run,如下图:

注意:建立工程时如果路径名有中文字符或者路径名有空格字符,则tcl Script文件将运行不了。例如,本例建立的工程“FPGA_led_test”目录是: C:alteraquartus51myq2projectsFPGA_led_test

如果是:C:alteraquartus51my q2projectsFPGA_led_test

在该目录下运行工程里的setup.tcl就会出错。如果使用Tools -》 Tcl Scripts,后没有弹出“tcl Script”对话框可以试一下关了QII,再重新打开。使用TCL文件分配管脚是很方便的,用户可以直接从相关例子工程中复制需要管脚分配表到自己的工程中,省时又方便。

Quartus.II使用简介与第一个工程实例

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • quartus
    +关注

    关注

    16

    文章

    171

    浏览量

    74628
收藏 人收藏

    评论

    相关推荐

    ADS1299在DAISY-CHAIN模式下只能配置第一个AD吗,那后面几个都是要怎么配置寄存器,都和第一个样吗?

    大家: 1ADS1299在DAISY-CHAIN 模式下只能配置第一个AD么,那后面几个都是要怎么配置寄存器,都和第一个样么? 2 手册上写了有关时钟配置的问题,ADS1299在
    发表于 12-20 06:47

    DAC8734只能把第一个接收到的数字数据输出,有哪些原因导致的呢?

    一个发送的数据时序没问题。但DAC8734只能把第一个接收到的数字数据输出,我用的是TI公司自己的DAC8734EVM。可能有哪些原因导致的呢?是上电顺序的原因吗?
    发表于 12-19 09:17

    ADS131A04在复位后以READY字进行响应,在第一个帧中接收到的响应不正确,为什么?

    帧,则在第一个帧中接收到的响应不正确,而后续响应是正确的。为什么复位后第一个帧中的 READY 响应不正确?
    发表于 11-25 08:11

    LMK1C1104第一个cycle在CLKOUT中丢失,为什么?

    LMK1C1104: CLKIN的第一个cycle在CLKOUT中丢失,详情请参照关联问题
    发表于 11-11 07:12

    【xG24 Matter开发套件试用体验】第一个LED测试工程

    /SiliconLabs/gecko_sdk/releases/tag/v4.4.4 开始第一个点灯工程 查看电路图,LED0引脚PA04: 2.创建LED测试工程: 首先使用Type-C连接xG24设备
    发表于 09-02 23:48

    【xG24 Matter开发套件试用体验】4-第一个例程2

    在上篇中没能把例程创建成功【xG24 Matter开发套件试用体验】3-第一个例程 这里继续把过程记录如下: 1分析问题 问题可能出在的位置只会是simplicity studio安装或SDK安装
    发表于 08-02 08:35

    与屏幕起发送的第一个UART数据时出现初始崩溃,但仅在第一次闪存时出现,为什么?

    =0x00000000, depc=0x0 000000 ets 2013-01-8,第一个原因:2,开机模式:(1,7) ets 2013-01-8,第一个原因:4,开机模式:(1,7)
    发表于 07-09 07:39

    读取寄存器的值,第一个bit读取不到是为什么?

    遇到以下的问题,读取寄存器中的值,查看寄存器是“0x80000e23”,但是读取之后第一个位没有读取到,只读取到“0xe23”,用来接收寄存器的值的变量类型是(volatile uint32)
    发表于 05-28 06:04

    stm32串口dma发送数据,发送的数据直为数组的第一个字节81为什么?

    uint8_t tx[8]={1,2,3,4,5,6,7,8}; HAL_UART_Transmit_DMA( huart1, tx, 8); 发送的数据直为数组的第一个字节 81 不知道怎么回事求支招
    发表于 05-14 06:18

    STM8L105 DMA方式发送串口数据偶尔丢第一个字节是为什么?

    有人在STM8L105上用过DMA方式发送串口数据的吗? 我隔几百毫秒发送串数据到串口2, 有时候第一个字节的数据会丢失掉。各位有没有遇到过这个情况?
    发表于 05-06 07:55

    STM32L031断电重启后,数据只能收到第一个字节是哪里出了问题?

    开通DMA,利用空闲中断接收数据。奇怪的现象是:在调试器调试时,数据收发都正常,但是断电重启后,数据只能收到第一个字节。不知道问题出在什么地方,
    发表于 03-28 06:14

    求助,用CubeMX配置占空比30%的PWM输出第一个波形不准确是为什么?

    我用的是G0的芯片配置,通过抓波发现第一个波形永远与我配置的占空比不准确,但是除了第一个周期不准确外,后面的都没问题。
    发表于 03-18 07:55

    招就行—鸿蒙OS 编写第一个页面

    在 Java UI 框架中,提供了两种编写布局的方式:在XML中声明UI布局和在代码中创建布局。这两种方式创建出的布局没有本质差别,为了熟悉两种方式,我们将通过 XML 的方式编写第一个页面,通过
    的头像 发表于 01-26 18:01 766次阅读
    <b class='flag-5'>一</b>招就行—鸿蒙OS 编写<b class='flag-5'>第一个</b>页面

    Harvard FairSeg:第一个用于医学分割的公平性数据集

    为了解决这些挑战,我们提出了第一个大规模医学分割领域的公平性数据集, Harvard-FairSeg。该数据集旨在用于研究公平性的cup-disc segmentation,从SLO眼底图像中诊断青光眼,如图1所示。
    的头像 发表于 01-25 16:52 547次阅读
    Harvard FairSeg:<b class='flag-5'>第一个</b>用于医学分割的公平性数据集

    世界上第一个石墨烯半导体的“石墨烯”究竟是什么?

    有媒体报道称有研究团队创造了世界上第一个由石墨烯制成的功能半导体(Functional Graphene Semiconductor)。
    的头像 发表于 01-23 11:26 1233次阅读