彻底掌握QuartusII基础篇

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

彻底掌握QuartusII——基础篇2015-05-30下面介绍QuartusII13.0最基础的日常使用方法,其它版本差别非常小。如何新建工程就不说了,但是要注意,工程目录和工程名不要有中文和空格,还有,要有一个设计文件(如,.v、.vhd、.bsf文件)的名称要跟工程名一样,不然会有警告。一、新建工程,New个设计文件,会出现下图所示。上面那么多种文件有什么卵用?1、AHDL文件,用于编写Altera发明的AHDL语言,此语言已经被淘汰,可以不管它。2、BlockDiagram/Schematic文件,原理图文件,跟AD、PADS、Cadence等电路图设计软件的用法差不多。3、EDIF文件,网表文件。4、Qsyssystem文件,用于设计软核,Qsys前身是NIOS。5、StateMachine文件,状态机文件。6、SystemVerilog文件,用于系统级验证。7、Tclscript文件,TCL脚本文件。8和9、常用的HDL文件(包括verilog和VHDL)10是十六进制文件,11是MIF文件,用于ROM或RAM的初始化。12、Probe文件,用于观察FPGA内部某一信号,一般用Signaltap13、逻辑分析仪接口文件,暂时不知道有什么用。14、VWF文件,用于调用quartus自带的仿真工具QSIM15、AHDL头文件,可以不管它。16、原理图的Symbol文件,用于编辑原理图Symbol,跟你用电路图设计软件时,画原理图库差不多。17、JTAG链描述文件,给一个或多个芯片下载代码时用的。18、Synopsys约束文件,时序约束用的SDC文件。19、txt文件。就算quartus支持那么多种文件,但常用的没几个,一般是原理图.bdf文件或者纯文本的.v或.vhd文件,就算后面需要用逻辑分析仪或者时序约束,也是可以用quartus自动给你生成的。特别要注意一下,不同类型的文件,名字最好不一样。比如,已经有了test.v,就不要用弄test.vwf,不然你双击test的原理图Symbol的时候,会问你要打开test.v还是test.vwf,让你浪费不必要时间。我一般是除了.v或.vhd文件用test之外,vwf就用test_vwf.vwf,bdf就用test_top.bdf。二、如何把HDL文件,转成原理图Symbol先选中你要转的HDL文件。白色衬底(左边)是被选中的HDL文件,右边是没有选中的,然后在菜单栏File下面。点CreateSymbolFilesforCurrentFile,即可把HDL转成原理图Symbol了,然后新建一个.bdf的原理图文件。双击红圈位置,在libraries-Project下,已经生成了原理图Symbol了,点OK,可以调用了。(我的机子是高分屏,Symbol显示有点问题,是quartus对高分屏支持得不好)。如果你觉得原理图的symbol不够大,可以按住Ctrl键,滑动鼠标滚轮,可以使symbol放大/缩小。再来对照一下,原理图Symbol和.vhd文件的实体entitybin2bcdisport(clk_50M:instd_logic;add:instd_logic;sub:instd_logic;bcdout1:outstd_logic_vector(3downto0));endbin2bcd;这是一一对应,输入在左,输出在右,有多个输入的时候,也会按顺序排列,如果不方便连线,可以改一下引脚的顺序,再保存,生成Symbol,再update。右击Symbol,就可以update了,update时,会出现下面的对话框。懂点英语的,都能看懂上面三个选择。1、只update选中的symbol,2、update所有关联(名字一样)的symbol,3、update全部symbol。一般选第一个。quartus13有个bug,生成的symbol的实例名可能会重名,而报警告。这时,可以右击symbol,选properties。把上图的inst改成其它名字就可以了。三、在刚才调用symbol的位置,还可以调用其它IP核。在Name下面输入input,可以调用输入端口,output就是输出端口了,这些都是quartus自带的一些symbol,把primitives下面的折叠全部打开,你会发现有很多东西,如:与或非门、各种触发器等。当然,还有其它东西,自己去挖掘吧。特别要说明两个symbol,VCC代表高电平,GND代表低电平,可用于使能或者其它用途。也是在刚才那个对话框,下面有MegaWizard,用来调用quartus自带的IP核,也叫宏功能模块(LPM),有部分是免费,部分是收费,还有部分需要联网下载的。MegaWizard的使用方法也很简单,写上IP核的名字,一步步next到finish就可以了,调用也是在上面那个对话框里调用。其中,原理图symbol之间的连线要注意一下位宽,不然会出错。也可以使用网络标号,先把线引出来,选中线,再输入网格标号就可以了,但是要注意一下格式,如:qout是8位,网络标号就要写成qout[7..0]。也有些特殊用法,如下图所示:这里,引出64位宽的fre信号,而在另一个symbol则只连了[63..32]这几个脚,这是合法的,空出来的引脚,没用的话,可以不管。四、编写好你的设计文件之后,就可以编译(也可以叫综合)了。因为综合很慢,所以先分析一下设计文件有无语法错误之类的,再综合。综合的时候,要注意,哪个是顶层文件。比如你弄一个流水灯,在led_top.bdf里面,有分频模块fre_div的symbol和流水灯控制模块led_ctrl的symbol的话,那么led_top.bdf就是顶层文件,因为它调用了你所有的设计文件。你可以先选中led_top.bdf,再用快捷键Ctrl+Shift+J,把它设置为顶层文件,不然综合出来有很多警告,甚至出错。上图所示,就是分析设计文件了,而最左边的就是综合。综合之后,就会生成report,告诉你,你设计出来的电路占用哪些资源。懂点英文和FPGA的内部结构的,都能看懂上图。现在解释一下:1、电路占用了62个LE。2、电路占用了43个组合电路。3、电路占用了55个专用的寄存器。4、整个电路占用了55个寄存器。5、电路使用了31个引脚,我的FPGA是EP2C8Q208C8N,一共有208个引脚,其中138个引脚是可用的。6、电路使用了0个虚拟引脚,虚拟引脚是前期设计时,预先分配的,可以解决引脚不够用导致无法综合的问题。7、电路使用的内存为0bit,这里memory是指FPGA内部的存储单元,包括ROM和RAM,其中RAM指的是块RAM而不是分布式RAM,因为分布式RAM是用LE实现的。8、电路使用了0个PLL,我这芯片一共有2个PLL,PLL是固核(也可以认为是硬核,硬核和固核的分界线并不是很明确),可以配置一下就调用,某些FPGA会有4个或更多的PLL固核。五、接下来看看,你综合出来是个什么电路。在菜单栏的Tools下面,点击查看RTL图、状态机图(前提是综合出来有状态机)或者工艺映射表(TechnologyMap)其中RTL图和工艺映射表,都可以表示你设计出来的电路,区别在于,RTL图抽象层次更高一些,而工艺映射表更接近于门级。某些时候,RTL并不能完全表示出电路的正确性,因为综合出来,有部分细节出错,在RTL图看不出来,这里得用工艺映射表。六、用AssignmentEditor锁管脚。在Value下面输入23,就可以把clk锁定在23号引脚了。如下图所示。七、锁完之后,保存好,还要再综合一次,这样的综合出来的电路才是你需要的。如果不想综合两次,那就要用TCL脚本来锁管脚了。新建一个TCL脚本文件。输入如下代码:set_location_assignmentPIN_23-toclk这样就可以把clk锁定在23号引脚了。如果你的引脚是按键,就要加上拉电阻(不然会容易烧坏IO口),输入如下代码:set_location_assignmentPIN_208-toswitch_inputset_instance_assignment-nameWEAK_PULL_UP_RESISTORON-toswitch_input这样就把switch_input这个锁在208号引脚,同时给208号引脚加了上拉电阻。保存好你的TCL脚本,然后在菜单栏的tools下,点TCLscripts,点Run,运行一下你的TCL脚本。这样,就只需要综合一次了。八、接好你的JTAG就可以用Programmer下载代码了,由于此步骤太简单了,省略。其中sof文件,是直接JTAG下载的,断电就没了;pof文件是AS下载,断电可保存。但是AS下载需要额外加点电路,而且对电路要求高,有点问题都无法下载,而且工业上的板子也只有JTAG下载口(节省PCB面积),这样就得用JTAG间接下载,断电可保存。在菜单栏的file下,转换编程文件:选择jic格式,配置芯片的型号(我这里是EPCQ16),然后改一下jic的名字,默认是output_file。先点一下SOFData然后addfile,把你的SOF文件添加进去。然后点generate即可生成jic文件。最后在programmer,添加这个jic文件,就可以下载代码了。下载完之后,FPGA并不直接运行代码,需要先断电,再上电,FPGA才正常工作。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功