最近在使用CycloneII的开发板,但是高版本的Quartus不支持II系列的开发,于是只能用Q11了。好久没玩FPGA了,新建工程的过程中遇到了一些问题,这里把这些问题记下了以便以后查看。

Quartus11.0新建工程项目

1 建立一个空项目

  1. 依次点击File->New Project Wizard这是采用向导的方式建立一个新的工程项目。当然也可以直接使用File->New,在菜单中选择New QuartusII Project来新建一个项目。采用向导的方式建立项目会一步步引导选择文件夹和芯片等,因此这里建议使用向导的方式建立项目。
  2. 在点击下一步之后,会出现设置文件夹和项目名称和顶级实体名称的设置界面。这里建议将工程项目名默认和顶层实体名相同。工程的顶层实体名称必须要和设计中的相同不然会报错。

  1. 下一步选择已有的文件添加到当前工程中,如果没有则直接下一步就行。
  2. 选择器件,在选择器件的界面提供了很多的筛选器,比如芯片系列(Device family),封装(Package),引脚数(Pin count)和速度等级(Speed grade).当然也可以不适用筛选器,在已安装中的器件中选择。建议在安装Quartus的时候只安装自己需要使用的器件。

  1. 选择EDA设计工具,如仿真(simulation),时序分析(Timing Analysis)等。一般我们使用独立的ModelSim进行仿真,这里也直接跳过。
  2. 最后一般进行确认,如果觉得有问题可以选择上一步(Back)进行调整,如果没有问题直接点击完成(Finish)。

2 新建一个verilog文件并编写输入输出信号

  1. 选择文件(File)->新建(New),或者使用快捷键(Ctrl+N).选择Verilog HDL File.新建的Verilog文件中的实体(Entity)必须要和在向导中设置的一致否则会报错。默认顶层实体(Top-level entity)和项目名称一致。如果自己修改了而又忘了,可以在Assigments->Settings中General选项卡中查看。
  2. 定义实体的输入输出如下:
module FpgaProA(
// input
input YULIU ,   //开关检测,0 -> 整流开关合上
input Q2_ON ,   //逆变开关输入信号,0 -> 逆变器工作
input BP_ON ,   //0 -> 需要转旁路
input WG1 ,     //0 -> 温度过高
input CLK0 ,        //CLK0
input CLK4 ,        //CLK4
input [6:1] PWM  ,  //PWM输入
input [3:0] XA  ,   //XA地址总线
input XZCS7n ,  //DSP片选
...
);endmodule

需要注意的是,上面是一种推荐的定义输入输出信号的方法。在以前定义输入输出信号还有另外一种形式如下:

module cpld_QQ2812(DSP_Add,DSP_Data,WR,RD,CS1,BUZZER,Key,LED,E,RS,LCD_Data,PA0,PA1,SLOE,PATEND,SLCS,IFCLK,CLKOUT,SLRD,SLWR,FIFO_PROG,FIFO_FULL,FIFO_EMPTY,SPI_CS,ACICS,SIDIN,SICLK,IN,OUT,INT1,NMI,EXINT,NMI1,NMI2,TXB,TXB1,RXB,CANRX,CANTX,CANRX_1,CANTX_1);/*CPLD输入信号的定义*/
input [5:0] DSP_Add;    //DSP对CPLD的地址定义
input WR,RD,CS1;        //读写和CPLD片选定义
input [7:0] Key;        //8个按键定义
input PA0,PA1;
input IFCLK,CLKOUT,FIFO_PROG,FIFO_FULL,FIFO_EMPTY;  //USB控制信号定义
input [15:0] IN;        //外扩16个IO输入定义
input [4:0] EXINT;      //5个外中断定义
...endmodule

上面这种定义输入输出信号的形式并不推荐,建议使用第一种将信号定义和输入输出类型放在一起的方式。
另外一个需要注意的是,在Quartus11中文件的编码格式为ANSI且不可选,而在高版本的Quartus中编码格式为UTF-8无BOM.因此往往在Quartus11中的中文注释在用其他的文件编辑器中打开往往乱码。这里建议使用Notepad++编写.v文件,因为Notepad++中文件的格式是可选的。如果你已经用Quartus11修改了文件并保存了,可以用Notepad++打开.v文件,改成对应的编码格式即可。

3 分配引脚

在分配引脚之前,首先编译一下程序。此时选择Assigments -> Pin Planner打开引脚配置界面。如果之前没有编译过程序,下面不会出现定义引脚的相关信息。

根据硬件设计将相应的引脚进行配置。
如果你之前已经有相似的工程了,也可以直接使用Assigments -> Import Assigments导入已有的引脚文件。如果项目中需要分配的引脚数较多,建议采用这种方式分配引脚。下面具体介绍几种引脚分配方法。
当然也可以直接使用文本编辑器编辑已有的.pin文件。

3.1.txt文件导入

首先编辑一个.txt文件,格式如下所示:

To,Location
//input
YULIU,  PIN_112
Q2_ON,  PIN_113
BP_ON,  PIN_114
...  

然后是由Assigments -> Import Assigments,导入引脚即可。 这种方法简单暴力,强烈推荐。

3.2导入.tcl文件

.tcl文件可以自己用文本编辑器写,也可以首先使用quartus生成一个空白的.tcl文件,然后根据生成的格式编辑,最后在使用上面的方法导入.tcl文件即可。生成空白的.tcl文件方法如下:Assigments -> Pin Planner -> File -> Expert.然后选择文件的格式为.tcl格式即可。

package require ::quartus::project
# 注释
set_location_assignment PIN_112 -to YULIU
set_location_assignment PIN_113 -to Q2_ON
set_location_assignment PIN_114 -to BP_ON

需要注意的是.tcl文件的注释以#开头。然后根据上面的格式继续输入需要编辑的引脚,最后在使用上面的方法导入即可。

3.3导入.csv文件

.csv的文件导入和.tcl文件的导入一样,只是生成空的模板时选择,文件的后缀为.csv即可。这种方法最不推荐。

4 总结及其他注意事项

上面三个步骤完成之后,基本已经建立好模块的框架了,只需添加代码即可。此时编译会出现许多的警告,这些警告大部分都不用理会。如果有兴趣可以在网上进行相应的搜索来解决。这里就不进行相应的介绍了。

转载于:https://www.cnblogs.com/yabin/p/6390206.html

Quartus11中新建工程相关推荐

  1. 11 电路板设计protel DXP中新建工程和PCB图、把原理图和PCB图载入同一个工程和把元件导入PCB图的方法成都自动化开发

    SO单片机开发指南之11 在本单片机开发的系列介绍中,关于电路板设计部分在前面已经介绍了一部分内容了,比如在protel DXP中元件库的设计.电路原理图的绘制等,不过这些只是准备工作而已.这些工作的 ...

  2. XCode5中新建工程后强制使用了ARC,如何去掉?

    打开你的工程,点击目录的工程文件,最顶端蓝色的,然后选择project下你的工程,还是蓝色那项,然后build Settings,然后往下拉,在Apple LLVM 5.0 - Language - ...

  3. 在visual studio 2010中调用ffmpeg

    转自:http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html 最近几天一直在折腾ffmpeg,在网上也查了许多资料,费了不少劲,现在在这里和大家分享一 ...

  4. pycharm中传入命令行参数

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5670821.html 参考网址: http://zhidao.baidu.com/question/5 ...

  5. MFC中使用自定义消息 .

    HTML Tags and JavaScript tutorial MFC中使用自定义消息 MFC中使用自定义消息 消息映射.循环机制是Windows程序运行的基本方式.VC++ MFC 中有许多现成 ...

  6. android菜单更改,Android修改分析:删除设置中菜单

    Android修改分析:删除设置中菜单 设置中的菜单主要分为两种添加方式: `` 1.静态加载 所谓自主添加,就是通过xml文件,自主通过添加布局到Fragment.Activity等加载到设置菜单中 ...

  7. keil c语言循环嵌套,keil软件中C语言嵌套汇编

    一.讲解背景 在单片机学习的过程中,掌握一点汇编语言是非常有必有的,作为低级语言汇编语言在单片机开发中有它不可取代的作用,比如每条指令可以精确的确定延时时间,便于理解非常适合硬件工程师学习.但是要提高 ...

  8. USB扫码枪无焦点输入到指定页面、指定文件框中

    USB扫码枪无焦点输入到指定页面.指定文件框中 USB扫码枪无焦点输入到指定页面.指定文件框中 新建工程添一个MDIParent窗口,两个FORM窗口.第一步添加一个类(ScanerHook),代码如 ...

  9. MDK5 Kil5中STM32工程的建立过程

    分步讲述STM32工程的建立过程 首先新建工程文件夹 2.打开新建的工程文件夹,在文件夹中再新建如下文件夹 其中CMSIS文件夹中存放从STM32官方固件库中拷贝来的文件如下 startup文件夹中存 ...

最新文章

  1. 获取app传入的json值处理
  2. 强大自己,从学习开始!2020年最有内容的订阅号,每一个都是万里挑一!
  3. 一线城市中高端人才月薪超 2 万,电子通信行业应届生薪资涨幅最高
  4. ubuntu 10.10 安装 oracle 11G
  5. python编程入门与案例详解pdf-Python爬虫天气预报实例详解(小白入门)
  6. linux网络_防火墙-iptables基础
  7. 廖雪峰Java1-3流程控制-9break、continue
  8. VTK:PolyData之TransformOrderDemo
  9. 使用HazelCast进行休眠缓存:JPA缓存基础知识
  10. 大数据认知计算在内容安全管控中的应用
  11. 【MySQL】命令行遇到 ‘> 而无法结束语句编辑的解决方案
  12. 中国离婚大数据:离婚/结婚比东北三省和四大直辖市霸榜
  13. 大数据分块_空间数据库基础理论 GIS空间数据处理分析涉及的基本概念
  14. 小米关联公司被列入经营异常
  15. mysql workbench安装出错_MYSQL及MySQL WORKBENCH安装过程遇到的问题及处理方法
  16. 《Adobe Premiere Pro CC经典教程》——6.2 节目监视器控件
  17. Android逐帧动画的实现
  18. quartz.net 时间表达式----- Cron表达式详解
  19. 高中数学知识那些和计算机有关系,2016高中数学知识点.doc
  20. 10015---Maven笔记

热门文章

  1. Delphi FastReport动态加载图片
  2. HDU-2094 产生冠军
  3. 用C语言打开文件的几种方式及区别
  4. 五、curator recipes之选举主节点Leader Latch
  5. Android自定义View探索—生命周期
  6. 新JSON绑定库JSON-B发布公开预览版
  7. centeros php 实战
  8. 系统管理员易犯错误及解决方法汇总
  9. 【IBM Tivoli Identity Manager 学习文档】15 用户管理
  10. Validation-jQuery表单验证插件使用方法