在FPGA的设计中,
仿真环节特别是功能仿真是极其重要的,可以提前发现bug,减少很多的调试时间。一般情况下,一个完整的仿真流程包括:1. RTL设计,最简单的情况就是使用HDL编写了一段代码。2.行为仿真:仅仅验证编写的代码在理论上可以实现我们的意图。3.综合,把HDL语言/原理图转换为网表netlist,然后执行综合后仿真。4.布局布线,即把我们的代码映射为到FPGA中的寄存器等环节然后连线等。然后执行布局布线后的仿真,这个步骤类似于硬件在回路仿真HLS的意思,但是还不是完全的HLS,因为这个“硬件”是在软件中模拟的,并没有生成bit流连接到真正的硬件中,但是因为它是基于门电路的仿真,考虑了器件和走线的延时等因素,所以比较真实,当然仿真速度也比步骤2慢了不少。5.调试;必要的话也可以执行HLS。在最新的Vivado套件中,我们可以使用的官方工具为Vivado Simulator,也可以使用第三方仿真器,包括Mentor Graphics QuestaSim/ModelSim、Cadence Incisive Enterprise Simulator (IES)、Synopsys VCS/VCS MX、Aldec Active-HDL/Rivera-PRO等。因为不同的第三方软件还需要额外的license,所以这里暂时使用自带的Vivado Simulator来体验它的强大功能。在Vivado开发环境中,新建或者打开以前建立的工程,然后点击菜单栏的File,选择Add Source,然后添加仿真源
文件,如图1所示。 [[wysiwyg_imageupload:992:]]图1 添加仿真源文件因为我们还没有建立测试脚本,所以接下来要新建一个,在选择好文件名、保存位置之后点击finish,此时会出现测试文件的定义窗口,和新建一个hdl文件是类似的,在此定义了前面使用的PI调节器的输入、输出端口,如图2所示。 [[wysiwyg_imageupload:993:]]图2 配置输入输出完成之后就回到了Vivado开发环境。此时我们Vivado开发环境的高效之处之一,就是能够定义多个仿真集合,例如,有的用来做前面步骤2的仿真,有的来做步骤4的仿真,还有的配置了别的信号特征等;这些很容易更改,如图3所示。目前唯一不太方便的是菜单栏上没有导航窗口,需要记在快捷键Ctrl+S进行快捷保存。 [[wysiwyg_imageupload:994:SOPC Builder、Quartus II 8.0、Nios II
8.0
IDE。开发工具安装目录:D:\。
第一步,下载i2c外设软件包:oc_i2c_master.rar。本软件包包含i2c外设的HDL实现,及驱动代码。网络上很容易找到。
第二步,解压,并把整个文件夹复制到D:\altera\80\ip\sopc_builder_ip\。
第三步,在Altera SOPC Builder中create new
componet-file-open
打开D:\altera\80\ip\sopc_builder_ip\ oc_i2c_master\中的class.ptf文件。
第四步,在Altera SOPC
Builder中Tools-options-IP Search
Path 如下设置:D:\altera\80\ip\sopc_builder_ip。
第五步,此时Altera SOPC Builder左侧Systerm
Contents中出现DeviceSOPC-〉oc_i2c_master外设。双击此条目,i2c外设及可被添加到niosII上。
第六步,Altera SOPC Builder中sopc buildergenerate。
第七步,若没有错误,在Quartus
II中顶层文件中(bdf文件)加入上步生成的nios_cpu模块。
第八步,添加IO
PIN,并把i2c相关的两个脚设置成双向IO,并设置成开漏输出。注意硬件上,i2c两个IO要加上拉电阻,2K欧姆较为合适。
第九步,Quartus II编译整个工程。
第十步,基于这个nios cpu在Nios II
IDE中建立工程。通过包含头文件“oc_i2c.h”即可调用i2c外设的相关驱动函数。注意在读写i2c外设之前请先调用i2c初始化函数。
在Quartus II中编译整个工程时,若出现以下错误:Error:Node
评论列表(0条)