Quartus_II_110学习与应用_第1页
Quartus_II_110学习与应用_第2页
Quartus_II_110学习与应用_第3页
Quartus_II_110学习与应用_第4页
Quartus_II_110学习与应用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、u 菜单栏中, Assignments(资源分配):主要是对工程参数进行配置,如引脚分配、时序约束、参数设置等; Process(操作):主要对当前工程执行各种设计流程,如综合、布局、布线、时序分析等。 Tool:用来调用Quaruts 中集成的一些工具,如MegaWizard Plug-InManger(用来生产IP核和宏单元模块)、RTL View、Programmer等。EDA工具应用u 建立项目文件:1. 创建工程:在新建工程时,一定要注意顶层文件名与module别名一致,否则编译会出现顶层文件未定义的错误。当顶层文件包含有其他模块时候,需要先编译顶层文件中的各个模块,最后编译顶层模块

2、。就是说,只要建工程是命名的顶层文件名和实际的顶层文件模块名一样,就可以先编译工程中的其他模块而不会报上面的错误!还有,一旦创建工程以后,就不要再更改工作所在文件夹名称,否则下次就会打不开此工程。2. 选择芯片:注意,下面的avilable device也要选,否则在映射引脚是软件找不到对应的芯封装。3. 工具设置:,(如果选择默认设置的话,就是使用Quartus自带的设计工具,当然可以选择第三方软件)编辑和设计输入:同样可以选择原理图输入、HDL输入、状态图输入以及混合输入等方式。u 设计输入:1. 原理图输入:2. HDL输入:3. 状态图输入:u 逻辑编译检查::u 软件仿真:(Quar

3、tus 9.1以后不再支持建立波形文件,用户需配合使用Modelsim进行仿真)。 关于仿真:(对于硬件描述语言对现代数字逻辑系统的描述层次,不同层次的仿真个有特点)1. 系统级:称为ESL级,即从系统角度进行描述而忽略电路的实际构成。2. 行为级:从电路的工作行为、功能的实现出发而不考虑具体电路构成的描述。3. RTL级:从信号的传输、寄存器的设置角度描述。4. 门级:考虑最基本门级元件构成系统描述。5. 开关级(管子级):从基础的MMOS开关、晶体管、电阻对电路进行描述。6. 物理级:从基本电子物理模型,如载流子迁移或能级模型角度的描述(只在模拟电路建模是才用到) Quartus 9.1之

4、前(利用Quartus中的门级仿真器,主要依据是基于HDL、模块原理图、状态机经由综合与适配的网表格式文件对应的仿真文件,仿真类型包括时序仿真和功能仿真。):1. 建立仿真波形文件2. 设置仿真时间区域3. 添加仿真信号4. 编辑仿真信号5. 时序仿真6. 功能仿真 Modelsim(又称之为行为仿真,是一种编译型仿真器,即直接对HDL源代码进行仿真,也就是直接针对未经综合的仿真验证能更直接、更迅速、更完整、更高效和更加符合一般意义上地了解HDL代码描述的电路行为,此类仿真同样能实现时序仿真和功能仿真) :1. 建立仿真工程项目: 2. 编译仿真文件:编译前:右击选Compile ALL编译后

5、:3. 装载仿真模块和仿真库: ,右击图示编译后生成的实体,选择Simulate without optimization(优化)启动仿真。4. 执行仿真:a) 选中clk信号,选主菜单下objects中的clock进行时钟信号设置。b) 选中其它信号,选主菜单下objects中的force进行Value设置。c) 在 objects窗口中: ,右击,选ADD下选To Wave下Signals in Design打开Wave波形窗口:d) 在命令栏中输入run 5000 ,(run必须小些,后面的仿真时间与run空格隔开,没run x一次都是在原来的基础上添加x ns的仿真时间)u 全程综合编

6、译:(检错,逻辑综合,机构综合,输出配置,时序分析,查看报表)1. 全程编译前约束项目的设置:(选芯片,器件工作方式,配置或编程方式,器件端口状态)a) 点击assignments选device后可以对芯片进行重新选择:b) 选择配置器件的工作方式:c) 选择配置器件和编译方式:d) 引脚映射: ,在选择引脚的时候,可以从第一个引脚开始由上而下进行,双击第一个引脚,在列表里面选好引脚,然后回车,注意是用回车,然后删掉PIN后面的数字,然后对照电路板原理图手动修改引脚编号,重复此过程修改后面的引脚编号,数度要快些 。另外,不同颜色标识表明属于不同的IO块。 e) 选择目标器件引脚端口状态:将不使

7、用的引脚设置为输入状态(即高阻态):2. 再次编译,这次编译不仅仅是逻辑检查,还添加了上述约束项目的:u RTL图观察器使用:1. Tools下面Netlist Viewers下拉菜单中三个选项:RTL Viewer;Technology Map Viewer;State Machine Viewer;点击相应项目可以观察相应的图:(双击该模块,可逐层了解各层次电路结构)也可以通过上面工具栏查看各层次电路结构:2. 对于较为复杂的RTL电路图,可以右击该模块,在弹出的菜单中选择来宁波七:Filter下面sources或destinations命令,由此产生相应的简化电路。u 下载:,或者Too

8、l下面的programmer。 JTAG下载说明:1. 选择下载模式:2. 添加硬件:,3. 添加文件:Add File:,JTAG下载的是.SOF文件。,这里打勾说明添加文件正确。 AS 下载说明:1. File下面Comvert Programming Files2. 选择器件:VHDL编程心得: 关于端口说明: 1. 标点符号要在英文半角状态下输入。2. 顶层模块端口声明一定要和最后端口映射一一对应而且位宽也要一一对应:外部端口内部连线,线名自定。3. 关于位宽选取,可以批量取:Q28=Q_28; 也可以单独取:Q8=(Q(27),Q(26),Q(25),Q(24),Q(23),Q(22

9、),Q(21),Q(20); 关于进程:进程(Process)是 VHDL 中最为重要的部分,大部分设计都会用到 Process结构,因此掌握Process的使用显得尤为重要。以下是初学和使用 Process经常会出错的例子。 1. 多余时钟的引入 在设计时往往会遇到这种情况,需要对外部某个输入信号进行判断,当其出现上跳或下跳沿时,执行相应的操作,而该信号不像正常时钟那样具有固定占空比和周期,而是很随机,需要程序设计判断其上跳沿出现与否。这时,很容易写出如下程序: process(Ctl_a) - Ctl_a 即为该输入信号 begin if Ctl_a event and Ctl_a= 1

10、then ; - 执行相应操作 end if ; end process; 由于出现第行这类语句,综合工具自动默认 Ctl_a为时钟,某些 FPGA 更会强行将该输入约束到时钟引脚上。而设计者的初衷只是想将其作为下位机的状态输入以进行判断。上面的程序容易造成多时钟现象,增加设计的难度。解决的办法可以如下,将 Ctl_a增加一级状态Ctl_areg 寄存,通过对 Ctl_a和Ctl_areg 状态判断上跳与否,改正程序如下: process(clk) begin if clk event and clk= 1 then Ctl_areg=Ctl_a;-产生相邻状态 if Ctl_areg=0 a

11、nd Ctl_a= 1 then- 上跳判断 ; - 执行相应操作 end if; end if; end process; 程序中第行用以产生两个相邻状态,第行对前后状态进行判断是否有上跳现象发生。其中,需注意的是clk 的时钟频率应明显快于 Ctl_a信号的变化频率,以保证正确采样。 2. 输出多驱动 误用Process经常会引起输出多驱动源的发生,即在两个以上的进程内对同一信号赋值操作。以下程序就出现了这类情况: Proc_a: process(clk) begin if clk event and clk= 1 then Dout=Din_A; end if end process;

12、Proc_b:pro cess(sel_en) begin if sel_en=1 then Dout=Din_B; end if; end process; 进程Proc_a 和Proc_b 中都出现了对 Dout的赋值语句,设计者原本的想法是,只要合理控制好clk 和sel_en 输入,使其不发生冲突,即 clk 上升沿时sel_en 不为1;sel_en 为1 时,不出现 clk 的上升沿,这样 Proc_a ,Proc_b 两个进程就不会发生冲突。但综合时,综合工具会将所有可能情况全部罗列进去,包括第行和第行同时成立的情况,此时对于Dout就有Din_A 和Din_B 两个输入驱动,Dout不知接收哪一个,因此该程序无法综合,改正的方法是只要将两个进程合并成一个即可。 由于进程在VHDL 中的重要性,对此专门做了一个总结如下: (1 )一个进程中不允许出现两个时钟沿触发,(Xilinx 公司CoolRunner 系列CPLD 支持单个时双钟的双触发沿除外) (2 )对同一信号赋值的语句应出现在单个进程内,不要在时钟沿之后加上 else 语句,如 if clkevent and clk=1 then - else 的结构,现有综合工具支持不了这种特殊的触发器结构 (3 )当出现多层 IF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论