3.12信号发生器和DA转换--明德扬科教(2)(mdy-edu.com)
接3.12信号发生器和DA转换--明德扬科教(1)(mdy-edu.com)
第4节 综合与上板
4.1 新建工程
打开软件Quartus Ⅱ,点击“File”下拉列表中的New Project Wzard...新建工程选项,如下图所示。

图3.12-18Quartus新建工程
随后会出现Quartus新建工程介绍,如下图所示,直接点击“Next”。

file:///C:UsersxkdnAppDataLocalTempksohtml9760wps13.jpg
图3.12-19Quartus新建工程介绍
此时出现的是工程文件夹、工程名、顶层模块名设置界面,如图3.12- 20所示。设置目录为:D:/mdy_book/dds_da,工程名和顶层名为dds_da。再次强调,为了避免初学者在后续操作中发生程序跳出未知错误的问题,强烈建议设置的文件目录和工程名称与本书保持一致。设置完成后点击“Next”。

图3.12-20QUARTUS新建工程设置名称
新建工程类型设置如下图所示,选择“Empty project”,然后点击“Next”。

图3.12-21QUARTUS新建工程类型
接下来进行文件添加,其界面如下图所示。点击右侧的“Add”按钮,选择之前写好的“dds_da.v”文件,可以看到界面下方会显示出文件,随后点击“Next”。

图3.12-22QUARTUS添加文件
图3.12- 23为芯片选择页面,选择“Cyclone ⅣE”,在芯片型号选择处选择“EP4CE15F23C8”,之后点击“Next”。

图3.12-23QUARTUS选择芯片型号
图3.12- 24为QUARTUS设置工具界面,不必做任何修改,直接点击“Next”。

图3.12-24QUARTUS设置工具界面
QUARTUS新建工程汇总界面如下图所示,可以看到新建工程的汇总情况,点击“Finish”,完成新建工程。

图3.12-25QUARTUS新建工程汇总界面
4.2 综合
新建工程步骤完成后,就会出现如下图所示的 QUARTUS新建工程后界面。

图3.12-26QUARTUS新建工程后界面
击编译按钮,可以对整个工程进行编译。编译成功的界面如下图所示。

图3.12-27QUARTUS编译后界面
4.3 配置管脚
下面需要对相应管脚进行配置。如下图所示,在菜单栏中选中“Assignments”,然后选择“Pin Planner”,随后就会弹出配置管脚的窗口。

图3.12-28QUARTUS配置管脚选项
在配置窗口最下方中的“location”一列,参考信号和管脚关系,按照表3.12- 3中最右两列配置好FPGA管脚,配置管理来源参见管脚配置环节,最终配置的结果如图3.12-29。配置完成后,关闭Pin Planner,软件自动会保存管脚配置信息。
表3.12-3信号和管脚关系


图3.12-29 QUARTUS配置管脚
4.4 再次综合
再次打开“QUARTUS”软件,在菜单栏中选中“Processing”,然后选择“Start Compilation”,再次对整个工程进行编译和综合,如图3.12- 30所示。

图3.12-30QUARTUS编译选项
当出现如下图所示的 QUARTUS编译成功标志,就说明编译综合成功。

图3.12-31QUARTUS编译成功标志
4.5 连接开发板
完成编译后开始进行上板调试操作,按照下图的方式将下载器接入电脑USB接口,接上开发板电源,将开发板ADDA接口与示波器相连接,然后按下开发板下方蓝色开关。

图3.12-32开发板连接图
4.6 上板
打开QUARTUS界面,单击界面中的“file:///C:UsersxkdnAppDataLocalTempksohtml9760wps27.jpg”,则会弹出配置界面。在界面中点击“add file”添加“.sof”文件后点击“Start”,会在“Progress”出现显示进度。

图3.12-33QUARTUS界面
QUARTUS下载程序界面如下图所示,当进度条到100%提示成功后,即可在示波器上观察到相应的现象。

图3.12-34QUARTUS下载程序界面
下载完成后,如果操作无误此时可以在示波器上看到对应的波形。如果没有显示成功,就需要返回检查一下连接是否到位,接口有没有连接错误,代码是否编写正确。如果无法自己完成错误排查的话,可以重新按照步骤操作一遍,相信一定会达到想要的效果。
第5节 简化版步骤分享
这里依旧会分享简化版的步骤,方便掌握基础原理后进行反复操作复习。
5.1 设计实现
5.1.1 顶层接口
新建目录:D:mdy_bookdds_da。在该目录中,新建一个名为dds_da.v的文件,用GVIM打开后开始编写代码。
确定顶层信号。信号和硬件的对应关系图见表3.12- 3。
表3.12-3信号和管脚关系

写出顶层代码:

声明输入输出属性:

5.1.2 信号设计
计算采样点对应幅度值:
表3.12- 4DAC输出采样点对应幅度值

分析设计目标可知:每隔x个时钟输出一个电压值,共输出y个点组成一个正弦波,每次连续产生2个正弦波。
设计表示数了几个时钟的计数器cnt0:

设计输出了几个点的计数器cnt1:

设计计数2个正弦波的计数器cnt2:

设计产生6种不同频率正弦波的计数器cnt3:

设计变量x和y:

设计dac_da信号:

设计sin_data信号:

设计addr信号:

设计dac_sleep、dac_wra、dac_clka、dac_mode信号:

至此,主体程序已经完成,接下来是将module补充完整。
5.1.3 信号定义
首先来定义信号类型。cnt0、add_cnt0、end_cnt0的信号定义如下:

cnt1、add_cnt1和end_cnt1的信号定义如下:

cnt2、add_cnt2和end_cnt2的信号定义如下:

cnt3、add_cnt3和end_cnt3的信号定义如下:

变量x,y的信号定义如下:

addr的信号定义如下:

sin_data的信号定义如下:

dac_da、dac_sleep、dac_wra、dac_clka、dac_mode的信号定义如下:

在代码的最后一行写下endmodule

完整版的工程代码如下:

5.2 综合与上板
5.2.1 新建工程
下一步新建工程和上板查看现象。打开软件“Quartus”,在“Project”菜单中选择“Add/Remove File to Project”,弹出文件窗口。

图3.12-18Quartus新建工程
直接点击“Next”。

图3.12-19 Quartus新建工程介绍
此时会出现的是工程文件夹、工程名、顶层模块名设置界面(目录为:D:/mdy_book/dds_da,工程名和顶层名为dds_da),完成设置后点击“Next”。

图3.12-20 QUARTUS新建工程设置名称
选择“Empty project”后点击“Next”。

图3.12-21 QUARTUS新建工程类型
点击右侧的“Add”按钮后选择“dds_da.v”文件,随后点击“Next”完成文件添加。

图3.12-22 QUARTUS添加文件
对芯片型号进行选择,在“Device family”选项中选择“Cyclone ⅣE”,“Available devices”选项下选择“EP4CE15F23C8”随后点击“Next”。

图3.12-23 QUARTUS选择芯片型号
直接点击“Next”。

图3.12-24 QUARTUS设置工具界面
点击“Finish”,完成新建工程。

图3.12-25 QUARTUS新建工程汇总界面
5.2.2 综合
新建工程后界面如下图所示,点击“编译”。

图3.12-26 QUARTUS新建工程后界面
编译成功界面如下图所示。

图3.12-27 QUARTUS编译后界面
5.2.3 配置管脚
进行管脚配置,在菜单栏中点击“Assignments”后点击“Pin Planner”,此时弹出配置管脚的窗口。

图3.12-28 QUARTUS配置管脚选项
在配置窗口“location”根据信号和管脚关系配置管脚,配置完成关闭“Pin Planner”即可自动保存配置信息。

图3.12-29 QUARTUS配置管脚
5.2.4 再次综合
再次打开“QUARTUS”软件,在菜单栏中选择“Processing”,随后点击“Start Compilation”再次进行综合。

图3.12-30 QUARTUS编译选项
出现 QUARTUS 编译成功标志时表示此次编译成功。

图3.12-31 QUARTUS编译成功标志
5.2.5 连接开发板
按照如下图所示的方法将下载器接入电脑USB接口,接上开发板电源,开发板ADDA接口与示波器相连接,然后按下开发板下方蓝色开关。

图3.12-32开发板连接图
5.2.6 上板
打开 QUARTUS 界面后单击“file:///C:UsersxkdnAppDataLocalTempksohtml9760wps45.jpg
”图标。

图3.12-33QUARTUS界面
点击“add file”,添加.sof文件,完成添加后点击“Start”,在“Progress”会显示进度。进度条显示“100%”为成功,可观察示波器现象。

图3.12-34 QUARTUS下载程序界面
第6节 扩展练习
至此,DA转换设计已经分享完毕,相信同学们已经可以完全掌握这一设计。那么在掌握这项工程后可以多做一些思考,尝试在工程原理不变的基础上进行一定的数据调整,试着改变产生波的周期和采样点等参数,挑战一下独立完成多个设计。也欢迎有更多思路和想法的同学前往至简设计法论坛进行交流讨论。