570 likes | 899 Views
第五章 ISE 开发进阶. IP Core 的使用 用户 IP Core 的生成 用户约束文件( UCF ) 引脚配置 时序约束 面积约束 ISE implement design 配置 静态时序分析与布局布线后仿真 功耗分析 FPGA 的配置. IP Core 的使用. ISE 提供的 IP Core 面向复杂设计的软核 ISE 版本的适用性 Xilinx FPGA 芯片的适用性 系统 IP Core 的生成 在 ISE 的 Project 中直接生成 ISE -> Accessories -> Core Generator
E N D
第五章 ISE开发进阶 • IP Core的使用 • 用户IP Core的生成 • 用户约束文件(UCF) • 引脚配置 • 时序约束 • 面积约束 • ISE implement design配置 • 静态时序分析与布局布线后仿真 • 功耗分析 • FPGA的配置
IP Core的使用 • ISE提供的IP Core • 面向复杂设计的软核 • ISE版本的适用性 • Xilinx FPGA芯片的适用性 • 系统IP Core的生成 • 在ISE的Project中直接生成 • ISE -> Accessories -> Core Generator • ISE -> Accessories -> Architecture Wizard IP • 参数化设计
IP Core的使用 • 方法1:定制ISE中一个已有的IP Core 小写
IP Core的使用 • 定制 • 同步FIFO Core为例 IP Core使用说明
IP Core的使用 • 生成 • 点击Generate • ISE 的Module View窗口中出现所生成的IP Core
IP Core的使用 • 例化 • 生成IP Core后,工程所在文件夹下产生下列文件 • .xco是IP Core配置文件 例化的时候识别.xco • .edn是网表文件 • .v和.vhd是模块的封装源代码
IP Core的使用 • 方法2:Core Generator
IP Core的使用 • 配置 • 芯片配置
IP Core的使用 • 配置 • 生成配置
IP Core的使用 • 配置 • 高级配置
IP Core的使用 • 方法2:Architecture Wizard IP • 复杂的IP Core生成,如DCM
IP Core的使用 • 例化 • 产生的关键文件 • .ucf是约束文件 • .xaw是二进制的Core文件 (例化时和.xco的使用类似) • .v是模块的封装源代码 • .ngc二进制网表文件(根据综合选项不同而生成)
IP Core的使用 • IP Core端口声明 • View HDL Functional Model
IP Core的使用 • IP Core的说明 • IP Core生成后,添加到工程中被认为是黑盒子,不会被重新综合; • IP Core的可移植性与ISE的版本和芯片类型有关; • 部分IP Core是付费使用的。
用户IP Core的生成 • 如何将自己的代码封装成一个IP Core? • 可以提供给他人使用,但不想被篡改或者开源 • 方法: • 提供verilog wrapper文件(.v文件),只提供端口描述和参数; • 提供.edn文件或者.ngc文件等同名的网表文件。
用户约束文件(UCF) • UCF是项目实现不可缺少的部分 • UCF生成方法1 • New Souce->Implementation Constraints File 模块关联 非常重要
用户约束文件(UCF) • UCF生成方法2 • User Constraints
用户约束文件(UCF) • UCF主要三个组成部分 • 引脚约束:引脚位置和类型配置; • 面积约束:模块的布局布线区域配置; • 时序约束:时钟约束、关键路径约束等。 • UCF语法:类似于一种脚本语言 {NET | INST | PIN} “Signal_name” Attribute • 图形工具:PACE编辑器,约束编辑器 参见教材4.4节自行学习
用户约束文件(UCF) • 引脚约束
用户约束文件(UCF) • 引脚约束 • 引脚的参数可以进一步配置
用户约束文件(UCF) • 引脚约束 • 配置成功后,打开.ucf文件
用户约束文件(UCF) • 面积约束 • 将Logic的模块指定到芯片的某个区域编辑 • 一般不需要
用户约束文件(UCF) • 时钟约束 • 全局约束 必选,主要针对全局时钟 • 引脚时序约束 pad to pad, clock to pad • 高级约束 分组约束,高级时序约束 • 特定约束 特定约束(较少使用) 语法规则较为复杂
用户约束文件(UCF) • 重新查看.ucf文件
用户约束文件(UCF) • 关于UCF文件的几点说明 • UCF语法较为复杂,需要确切知道含义; • 图形界面的选项可以自动转换为UCF语句; • 如果要在FPGA上实现,时钟约束、引脚约束必填; • UCF通常关联顶层模块,综合选项中默认包含; • UCF引脚配置要非常小心,严格遵照PCB图和芯片手册的要求,否则可能烧毁昂贵的FPGA芯片; • 某些特殊引脚约束或者复杂约束,只能通过UCF语句来生成; • UCF编写不正确,无法进行综合以后的后续步骤。
ISE implement design配置 • Implement在综合之后执行,需要有.ucf文件 • 包括Translate、Map、Place & Route • 属性卡可以集中修改,也可以分项修改 • 每个步骤都会生成分析报告 • 详细属性配置参考教材4.3.3节
ISE implement design配置 • Translate属性 • 通常使用默认属性 • 生成.ngd文件 • 所包含的三个工具 较少使用
ISE implement design配置 • Translate报告
ISE implement design配置 • Map属性 • 通常使用默认属性 • 主要需要调整的属性: • LUT输入 • 面积与速度 • IOB • 所包含的四个工具 较少使用
ISE implement design配置 • Map报告(很长,关注以下几个部分)
ISE implement design配置 • Place & Route属性 • 主要需要调整的属性: • 布线努力程度 • 运行开销表 • 部分工具比较重要
ISE implement design配置 • Place & Route报告(也很长)
静态时序分析与布局布线后仿真 • 静态时序分析 • 当布局布线效果不理想时使用 • 产生布局布线静态时序 • 使用Timing Analyzer进行分析
静态时序分析与布局布线后仿真 错误时序会被标红
静态时序分析与布局布线后仿真 • 布局布线后仿真方法 • 新建一个目录,将编写的仿真测试文件、xxx_timsim.v、xxx_timsim.sdf、glbl.v文件复制到此目录下;(注意:一定不要编写的源代码,glbl.v在ISE根目录/verilog/src下) • 如果使用了宏定义文件(.v)、其他仿真模型文件(.v)也添加进来; • 打开ModelSim,新建一个Project,添加上述文件; • 编译所有文件; • vsim -L XilinxCoreLib_ver -L unisims_ver -L simprims_ver -t 1ps +maxdelays simulate_module glbl
静态时序分析与布局布线后仿真 • 将uut(例化的源代码顶层)添加到波形中
静态时序分析与布局布线后仿真 • 后仿真也可以采用非命令行方法,请自行查阅相关资料; • 后仿真时间较长,与功能仿真可能相差几个数量级的时间; • 如果源代码较为庞大,生成后仿真模型的过程也会比较耗时。
功耗分析 • XPower功耗分析 • 在仿真文件中某个initial语句中需要增加 $dumpfile("design.VCD"); $dumpvars(1,test_v.uut); • 运行Generate Power Data • 运行Analyze Power
功耗分析 • 分析报告
功耗分析 • XPower使用(后续部分参考教材4.3.5节)
FPGA的配置 • FPGA配置模式 • 主模式 PROM配置(最终产品) • 从模式 • JTAG模式 主机配置(调试) • JTAG • Joint Test Action Group • 一种国际标准测试协议 • JTAG边界扫描 • TDI、TDO、TMS、TCK • VCC、GND
FPGA的配置 • JTAG下载电缆 • 并口电缆 • Parallel III 电路公开,可自行制作 • Parallel IV • USB电缆 • 价格较为昂贵,速度和稳定性远优于并口电缆 • JTAG配置电路 • 参见教材5.3节自行学习 • 菊花链
FPGA的配置 • 配置文件的生成 • PC调试的配置选项 • CCLK用于主模式PROM配置,内部产生 • JTAG CLOCK用于JTAG调试
FPGA的配置 • 配置文件的生成 • 执行 • 生成.bit文件
FPGA的配置 • 启动iMPACT • 选择边界扫描 • 也可以取消 然后点击 进行自动检测