- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二讲 FPGA设计工具的基础知识精要
第二讲 FPGA设计工具的基础知识 基于quartus2的设计输入 基于quartus2的功能仿真 本讲要点和实验要求 可编程逻辑器件设计流程 基于Quartus2 的电路设计简介 新建项目-指南 新建项目-加入设计文件 设计输入 可以有多种设计输入方法输入设计文件。 图表模块设计输入:是自顶向下顶层设计的主要方法。 原理图编辑输入:是传统的自底向上设计输入方法,可利用LPM和宏功能模块来加速设计输入。 文本编辑器:用于HDL语言输入,( AHDL, VHDL, Verilog)。 内存编辑器:用于ROM的数据设置(Hex, Mif)。 第三方工具:可用输入格式 EDIF、 HDL、 VQM。 图表模块和原理图编辑器 模块编辑器- 产生一个新的文件 模块编辑器- 设计模块 模块编辑器- “智能” 连接 模块编辑器- “智能” 连接 模块编辑器- 产生设计文件 模块编辑器- 顶层设计实例 my_design 原理图编辑器 原理图编辑器-选取设计单元 原理图编辑器-连接各个设计单元 原理图编辑器-转化为自定义功能单元 原理图编辑器-自定义功能单元调用 原理图编辑器-转化为verilog文件 module mux2(a,b,s,c); input a; input b; input s; output c; wire SYNTHESIZED_WIRE_0; wire SYNTHESIZED_WIRE_1; wire SYNTHESIZED_WIRE_2; assign SYNTHESIZED_WIRE_2 = a SYNTHESIZED_WIRE_0; assign SYNTHESIZED_WIRE_0 = ~s; assign SYNTHESIZED_WIRE_1 = b s; assign c = SYNTHESIZED_WIRE_1 | SYNTHESIZED_WIRE_2; endmodule 文本编辑器 编译设计 编译设计结果-修改语法错误 Quartus2仿真简介 打开Quartus2仿真工具 Quartus2仿真工具控制界面 打开波形编辑器-设置仿真激励波形 波形编辑器-信号查找工具 波形编辑器-编辑激励波形 运行仿真器 在simulator tool中点击【Start】,运行仿真器。运行完后点击【Report】在信息窗口中显示相关信息,自动打开波形窗查看结果。 基于IP的设计 IP的概念:IP(Intellectual Property)字面意思是知识产权。在半导体产业中,IP定义为用于ASIC、ASSP、PLD等芯片中的,预先设计好的、经过验证的电路功能模块。 IP的分类:IP分为软IP、固IP和硬IP。 Quartus2的宏模块 在PLD设计中,生产商一般都提供一些基本的IP模块。以Altera公司的开发工具quartus2为例,它提供了如图所示的宏单元(固IP),一般包含编译码器、计数器、运算电路、RAM等基本电路。这些宏单元是经过优化设计的,往往可使用户的设计性能更好,占用资源更少,并减少设计时间。 定制宏模块例1-8位加减法器 定制宏模块例1-8位加减法器 定制宏模块例1-8位加减法器 定制宏模块例1-8位加减法器 定制宏模块例1-8位加减法器 定制宏模块例1-8位加减法器 module lpm_add_sub8 (dataa, datab, result); input [7:0] dataa; input [7:0] datab; output [7:0] result; wire [7:0] sub_wire0; wire [7:0] result = sub_wire0[7:0]; lpm_add_sub lpm_add_sub_component ( .dataa (dataa), .datab (datab), .result (sub_wire0) // synopsys translate_off , .cout (), .cin (), .add_sub (), .overflow (), .clock (), .clken (), .aclr () // synopsys translate_on ); defparam lpm_add_sub_component.lpm_direction = ADD, lpm_add_sub_component.lpm_hint = ONE_INPUT_IS_CONSTANT=NO,CIN_USED=NO, lpm_add_sub_component.lpm_type =
文档评论(0)