微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > FPGA设计开发软件Quartus II的使用技巧之: 典型实例-SignalTap II功能演示

FPGA设计开发软件Quartus II的使用技巧之: 典型实例-SignalTap II功能演示

时间:06-05 来源:互联网 点击:

5.10典型实例9:SignalTapII功能演示

5.10.1实例的内容及目标

1.实例的主要内容

本节旨在通过给定的工程实例——“正弦波发生器”来熟悉AlteraQuartusII高级调试功能SignalTapII和IntentMemoryContentEditor的使用方法。同时使用基于AlteraFPGA的开发板将该实例进行下载验证,完成工程设计的硬件实现。在本节中,将主要讲解下面知识点。

·QuartusII原理图输入方式。

·QuartusII约束设计。

·QuartusII工程编译。

·QuartusII硬件下载。

·SignalTapII在线调试。

·IntentMemoryContentEditor在线修改片上ROM数据。

通过这些知识点,按照实例的流程,读者可以迅速地掌握使用QuartusII软件高级调试技巧。

2.实例目标

通过详细的流程讲解,读者应达到下面的目标。

·熟悉QuartusII原理图设计方法。

·熟悉SignalTapII在线调试方法。

·熟悉IntentMemoryContentEditor在线修改片上ROM数据的方法。

5.10.2实例详解

本实例将使用图解的方式将整个流程一步一步展现给读者,使读者能够轻松掌握开发的流程。

5.10.2.1工程系统框图

本实例使用QuartusII自带的宏模块(MegaWizardPlug-inManager)来设计逻辑功能,并使用嵌入式硬件逻辑分析仪观察结果。

正弦函数发生器的原理比较简单,硬件实现也比较简单:首先设计一个ROM用来存放正弦函数的幅度数据;用一个计数器来指定ROM地址(也就是相位)的增加,输出相应的幅度值。这样在连续的时间内显示的就是一个完整的正弦波形。

系统的电路图如图5.40所示。

图5.40系统电路图

div模块是分频模块,可以用前面设计过的分频器的程序生成模块(symbol),也可以使用Altera的计数器宏模块来生成分频器。

5.10.2.2添加分频器模块

1.将分频文件添加到工程

将分频器模块div.v加入到工程中,在工程中打开分频器模块div.v(分频器程序由读者完成),如图5.41所示。

2.产生.bsf文件

选择“File”/“Create/Update”/“CreateSymbolFilesforCurrentFile”选项。软件会自动分析div.v程序的语法错误,如图5.42所示。

图5.41分频器VerilogHDL文件

图5.42生成模块菜单

3.修改程序语法错误

如果出错则修改错误,直到没有错误为止。此时软件会自动生成div.bsf文件,此文件为原理图中的模块图形。

4.在原理图中加入分频器模块div.bsf

在原理图文件中单击“”按钮,就可以加入刚刚建立的模块,如图5.43所示。

图5.43在原理图中添加分频器模块

5.10.2.3添加QuartusII系统自带宏模块

ROM和计数器都可以通过QuartusII自带的宏模块生成。

1.建立ROM初始化文件

在菜单中选择新建文件,在“OtherFiles”中选择“MemoryInitializationFile”选项,如图5.44所示。

填入如图5.45所示的正弦波幅度数据。当然也可以用MATLAB、C++或Excel的函数生成数据。保存文件,命名sin.mif。

图5.44新建ROM初始化文件图5.45输入正弦波幅度数据

2.添加自带宏模块

在“Tools”菜单中选择“MegaWizardPlug-PnManager”选项,出现如图5.46所示的对话框,选择新建宏模块单击“Next”按钮。

图5.46引用自带宏对话框

图5.47左侧是QuartusII自带的免费的宏模型,可以看到Quartus提供了很多免费的IP核。

其中ROM在storage目录中,计数器counter在arithmetic目录中。

3.添加ROM

在storage中选择ROM,并在右侧的选项栏中选择Cyclone系列芯片,outputfile类型选择VerilogHDL,并在下方选择ROM文件的生成地址及名称,如图5.48所示。

图5.47选择系统自带宏模块

图5.48选择ROM宏模块

单击“Next”按钮,设定ROM基本参数,包括ROM的位宽q、地址位宽(存储深度)和时钟。一般ROM的时钟选为单时钟控制Singleclock,如图5.49所示。

单击“Next”按钮,设定ROM其他参数,设定输出寄存器、时钟使能端和异步清零。如果选中“qoutputport”,则会在输出端加一级寄存器,如图5.50所示。

单击“Next”按钮,接下来在对话框中填入ROM初始化文件,并选中“allowin-systemmemory”选项,并选择名称为“NONE”,如图5.51所示。

图5.49rom宏模块基本参数设置

图5.50设置ROM宏模块其他参数

图5.51设置ROM宏模块初始化文件

单击“Next”按钮,完成设置,向导生成的文件如图5.52所示。

图5.52设置ROM宏模块完成

4.添加计数器

引入计数器作为ROM的地址,当计数器地址递增时,相应的ROM的地址递增(正弦波的相

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top