EDA课程设计-信号发生器与数字钟设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图3-11
6.正弦波
设置clk,reset两个标准逻辑位输入,一个0到255的整形实数输出,异步复位。设置中间变量整形temp为0到63,检测clk上升沿执行temp加1计算,利用case语句,将temp对应为正弦信号的x轴,分别将y轴的值赋给64个temp值相对应,从而输出q,实现近似于正弦信号的输出,生成模块如图3-12示。
二、方案设计
(一)设计思路
1.要实现显示时-分-秒、整点报时、小时和分钟可调等功能,首先整个时钟的工作应该是在1Hz的信号作用下进行,这样每来一个时钟的上升沿,秒加一,当秒达到59,跳转00,分钟加一,当分钟增加到59,跳转00,小时加一,当小时增加到23,跳转00,以此循环。
图3-12
四、波形仿真结果及分析
(一)系统电路图
将上述模块按功能逻辑连接,如下图4-1示。具有一个clk时钟输入,一个reset复位信号输入,一个(s1,s2)的频率选择端输入,一个三位sel输出信号选择端输入。一个8位的输出信号输出。
图4-1
(二)管脚分配
在前面选择好一个合适的目标器件(本次设计选择为EP2C35F672C8)完成设计的分析综合过程,得到工程的数据文件以后,需要对设计中的输入、输出指定到具体的器件管脚号码,指定管脚号码称为管脚分配或管脚锁定。
图5-7
2)设置sel=110,频率(s1,s2)设为11,幅度调节(denom)设为001,波形如图5-8示。
图5-8
3)设置sel=110,频率(s1,s2)设为00,幅度调节(denom)设为010,波形如图5-9示。
图5-9
第二部分:数字钟设计
一、设计任务
设计一个多功能数字钟,要求显示格式为:小时-分钟-秒钟,整点报时,报时时间为5秒,即从整点前5秒开始进行报时提示,LED开始闪烁,过整点后,停止闪烁。系统时钟选择模块的10Khz,要得到1Hz时钟信号,必须对系统时钟进行10,000次分频。调整时间的按键模块S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。另外用S3键作为系统时钟复位,复位后全部显示00-00-00。
5.三角波
设置同上,仿真波形如图4-8示。
图4-8
6.方波
设置同上,仿真波形如图4-9示。
图4-9
7.整体仿真
1)频率选择为2分频(s1,s2=0),调幅系数为1(denom=1),输出选择方波(sel=110),仿真波形如图4-10示。
图4-10
2)频率选择为2分频(s1,s2=0),调幅系数为2(denom=2,输出幅值为原来二分之一),输出选择方波(sel=110),仿真波形如图4-11示。
1.输出正弦波
设置sel=001,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-2示。
图5-2
2.输出递减锯齿波
设置sel=010,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-3示。
图5-3
3.输出递增锯齿波
设置sel=011,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-4示。
二、方案设计
(一)设计思路
1.利用VHDL语言,设计分频器,实现2分频,4分频,8分频及16分频,实现频率选择功能,生成模块。与利用数据选择器原理设计的频率选择器模块相连,实现频率选择输出。
2.利用VHDL语言,分别实现六种信号(递增/递减锯齿波,三角波,阶梯波,方波和正弦波)的输出,生成模块。
3.将设计的各功能模块按要求连接,分配引脚接口,连接实验箱,进行硬件测试,验证实现功能。
此外,Quartus II通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性。
图3-3
利用波形仿真工具,生成的频率选择器波形如图3-4示。
图3-4
(三)输出选择模块
输出选择模块与频率选择模块原理一样,本次设计实现六选一波形发生器,故输出选择模块为六选一数据选择器,利用CASE语句实现波形选择输出,设置sel位三位标准逻辑矢量,超出范围case选择指向null。且case选择语句必须有others。生成模块如图3-5示。
3.点击start进行文件加载,直到加载进度变为100%,文件成功加载完成。
图5-1
(二)signaltap2
SignaltapII嵌入逻辑分析仪集成到Quartus II设计软件中,能够捕获和显示可编程芯片(sopc)设计中实时信号的状态,这样开发者就可以在整个设计过程中以系统级的速度观察硬件和软件的交互作用。它支持多达1024个通道,采样深度高达128Kb,每个分析仪均有10级触发输入/输出,从而增加了采样的精度。
这里,我们将分别对可选的6个信号波形进行波形仿真。
1.正弦波
设置时钟信号clk周期为10ns,reset为1。仿真波形如下图4-3示。
图4-3
2.递减锯齿波
设置同上,仿真波形如图4-4示。
图4-5
3.递增锯齿波
设置同上,仿真波形如图4-6示。
图4-6
4.阶梯波
设置同上,仿真波形如图4-7示。
图4-7
图3-2
(二)频率选择器
频率选择器利用四选一数据选择器原理,与分频器结合实现各种分频的频率选择输出,接入各个信号的CLK输入接口。四选一数据选择器有四种实现方式:if语句,case语句,条件信号赋值语句及选择信号赋值语句。本次设计采用条件信号赋值语句。s1,s2为输出选择端,q输出选择的频率,生成的模块如图3-3示。
图4-11
3)频率选择为16分频(s1,s2=1),调幅系数为2,输出方波,仿真波形如图4-12示。
图4-12
五、硬件调试及结果
(一)程序加载
完成对期间的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯片进行加载。
1.使用下载电缆将PC机与实验系统连接起来
2.选择QUARTUSII软件的Tool>Programmer命令,进行编译器窗口,如下图5-1示,如果没有设置编程硬件,则编程硬件类型为No Hardware,需要对编程硬件进行设置。点击HardwareSetup…编程硬件设置按钮,将currently selected hardware设置为:USB-Blaster[USB-0]。
EDA综合设计报告
题目:信号发生器与数字钟设计
学院:电气信息学院
专业:通信工程
姓名:
学号:
指导老师:汪敏
第一部分:信号发生器
一、设计任务
要求设计一个多功能信号发生器,根据输入信号的选择可以输出递增锯齿波,递减锯齿波,三角波,阶梯波,方波和正弦波六种信号,并能实现频率选择和幅度调节,信号发生器的控制模块可以用数据选择器实现,六种信号的选择可以用6选1数据选择器实现。
图3-7
2.递减锯齿波
与递增锯齿波类似,具有相同的输入输出端,及异步复位功能。区别在于检测是否达到最小值“00000000”,未到则减一,实现递减锯齿波,到后重置为“11111111”,循环重复实现锯齿波输出。生成模块如下图3-8示。
图3-8
3.三角波
设置clk,reset两个标准逻辑位输入、一个8位标准逻辑矢量数据输出、异步复位。reset为‘0’时,输出清零复位。设置局部变量a,当a为0时,temp执行连加计算,当temp加至“11111111”时,a置为1;当a为1时,temp执行连减计算,当temp减至“00000000”后,a置为0。依次循环,实现三角波信号输出。生成模块如下图3-9示。
图3-9
4.阶梯波
设置clk,reset两个标准逻辑位输入、一个8位标准逻辑矢量数据输出、异步复位。同样reset为‘0’时有效,输出清零复位。检测变量temp为“11111111”后置0,否则按16为步长增加temp的值,输出阶梯波信号,生成模块如下图3-10示。
图3-10
5.方波
设置clk,reset两个标准逻辑位输入、一个8位标准逻辑矢量数据输出、异步复位。检测clk上升沿执行temp加1计算,当temp小于“10000000”时,a置1,否则a置0,当a为1时,输出q为“11111111”,a为0时,q为“00000000”。从而实现占空比为1:1的方波输出。生成模块如下图3-11示。
在菜单assignments中选择pins项,点击在下图4-2中下面的表格右侧的filter的下箭头,选择pins:all,将显示本工程中所有的输入输出端口。选择要分配的端口,在location对应的行中双击鼠标左键,将显示芯片所有的引脚,选择要使用的引脚即可。引脚锁定后,必须再进行一次编译,将引脚信息编译进下载文件中。
图3-5
(四)调幅模块
MegaWizard Plug-In Manager工具提供了丰富的库函数,这些库函数专门针对Altera公司的器件进行优化,电路结构简单,并大大减少了设计者的工作量。通过MegaWizard Plug-In Manager工具的向导,设计者可以利用Quartus II提供的库函数自定义功能宏块,并设置模块参数和可选端口数值。
调幅模块利用该库函数中的lpm_divide(除法器模块),通过利用除法器模块将输出选择模块中的输出值除以denom中设置的输入值,从而实现调幅功能。生成模块如图3-6示。
图3-6
(五)各信号模块
1.递增锯齿波
设置clk及reset两个标准逻辑位输入端,一个8位标准逻辑矢量q输出,具有异步复位功能,故进程中敏感信号包括clk及reset,当reset值为‘0’时,输出清零复位。检测是否达到最大值“11111111”,未到则加一,实现递增锯齿波,到后清零重复循环。生成模块如下图3-7示。
图5-4
4.输出阶梯波
设置sel=100,Leabharlann Baidu率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-5示。
图5-5
5.输出三角波
设置sel=101,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-6示。
图5-6
6.输出方波
1)设置sel=110,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-7示。
图4-2
(三)仿真波形
创建波形仿真文件,选择QUARTUSII软件File>New,进行新建,选择Vector Waveform File,点击OK,则打开了一个空的波形编辑器。在波形编辑器窗口左边的的端口名列表区点击鼠标右键,在弹出的对话框中选择Insert Node or Bus命令,在弹出的对话框中,选择需要的信号进行仿真。
三、硬件设计
(一)分频器
分频器的功能是:利用对时钟上升沿计数,从而实现可以输出二分频,四分频,八分频及十六分频模块,分频器模块是为了实现信号发生器的频率选择功能。在VHDL编程中,设置一个4位标准逻辑矢量,并循环计数,分别输出它的每一位,即实现了分频功能。生成的模块如图3-1示。
图3-1
利用波形仿真工具,生成改分频器的波形图,如下图3-2示,该编程实现了分频功能。
新建SignalTap II Logic Analyzer File文件,在instance中添加观测节点(nodes),将要观察的输出信号q加入,设置clock为输入的clk信号,采样深度设为1k,重新编译添加了signal tap的工程文件,编译完后,在stp中点击右上角的SOF Manager后面的[...],选择好刚刚生成的SOF文件,然后点击program device。再点击run analyzer运行该stp文件,观察生成波形。
(二)程序流程
Clk输入六种波形输出
时钟频率波形波形幅度选择
输入选择模块选择调节波形
(三)设计软件
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
6.正弦波
设置clk,reset两个标准逻辑位输入,一个0到255的整形实数输出,异步复位。设置中间变量整形temp为0到63,检测clk上升沿执行temp加1计算,利用case语句,将temp对应为正弦信号的x轴,分别将y轴的值赋给64个temp值相对应,从而输出q,实现近似于正弦信号的输出,生成模块如图3-12示。
二、方案设计
(一)设计思路
1.要实现显示时-分-秒、整点报时、小时和分钟可调等功能,首先整个时钟的工作应该是在1Hz的信号作用下进行,这样每来一个时钟的上升沿,秒加一,当秒达到59,跳转00,分钟加一,当分钟增加到59,跳转00,小时加一,当小时增加到23,跳转00,以此循环。
图3-12
四、波形仿真结果及分析
(一)系统电路图
将上述模块按功能逻辑连接,如下图4-1示。具有一个clk时钟输入,一个reset复位信号输入,一个(s1,s2)的频率选择端输入,一个三位sel输出信号选择端输入。一个8位的输出信号输出。
图4-1
(二)管脚分配
在前面选择好一个合适的目标器件(本次设计选择为EP2C35F672C8)完成设计的分析综合过程,得到工程的数据文件以后,需要对设计中的输入、输出指定到具体的器件管脚号码,指定管脚号码称为管脚分配或管脚锁定。
图5-7
2)设置sel=110,频率(s1,s2)设为11,幅度调节(denom)设为001,波形如图5-8示。
图5-8
3)设置sel=110,频率(s1,s2)设为00,幅度调节(denom)设为010,波形如图5-9示。
图5-9
第二部分:数字钟设计
一、设计任务
设计一个多功能数字钟,要求显示格式为:小时-分钟-秒钟,整点报时,报时时间为5秒,即从整点前5秒开始进行报时提示,LED开始闪烁,过整点后,停止闪烁。系统时钟选择模块的10Khz,要得到1Hz时钟信号,必须对系统时钟进行10,000次分频。调整时间的按键模块S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。另外用S3键作为系统时钟复位,复位后全部显示00-00-00。
5.三角波
设置同上,仿真波形如图4-8示。
图4-8
6.方波
设置同上,仿真波形如图4-9示。
图4-9
7.整体仿真
1)频率选择为2分频(s1,s2=0),调幅系数为1(denom=1),输出选择方波(sel=110),仿真波形如图4-10示。
图4-10
2)频率选择为2分频(s1,s2=0),调幅系数为2(denom=2,输出幅值为原来二分之一),输出选择方波(sel=110),仿真波形如图4-11示。
1.输出正弦波
设置sel=001,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-2示。
图5-2
2.输出递减锯齿波
设置sel=010,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-3示。
图5-3
3.输出递增锯齿波
设置sel=011,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-4示。
二、方案设计
(一)设计思路
1.利用VHDL语言,设计分频器,实现2分频,4分频,8分频及16分频,实现频率选择功能,生成模块。与利用数据选择器原理设计的频率选择器模块相连,实现频率选择输出。
2.利用VHDL语言,分别实现六种信号(递增/递减锯齿波,三角波,阶梯波,方波和正弦波)的输出,生成模块。
3.将设计的各功能模块按要求连接,分配引脚接口,连接实验箱,进行硬件测试,验证实现功能。
此外,Quartus II通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性。
图3-3
利用波形仿真工具,生成的频率选择器波形如图3-4示。
图3-4
(三)输出选择模块
输出选择模块与频率选择模块原理一样,本次设计实现六选一波形发生器,故输出选择模块为六选一数据选择器,利用CASE语句实现波形选择输出,设置sel位三位标准逻辑矢量,超出范围case选择指向null。且case选择语句必须有others。生成模块如图3-5示。
3.点击start进行文件加载,直到加载进度变为100%,文件成功加载完成。
图5-1
(二)signaltap2
SignaltapII嵌入逻辑分析仪集成到Quartus II设计软件中,能够捕获和显示可编程芯片(sopc)设计中实时信号的状态,这样开发者就可以在整个设计过程中以系统级的速度观察硬件和软件的交互作用。它支持多达1024个通道,采样深度高达128Kb,每个分析仪均有10级触发输入/输出,从而增加了采样的精度。
这里,我们将分别对可选的6个信号波形进行波形仿真。
1.正弦波
设置时钟信号clk周期为10ns,reset为1。仿真波形如下图4-3示。
图4-3
2.递减锯齿波
设置同上,仿真波形如图4-4示。
图4-5
3.递增锯齿波
设置同上,仿真波形如图4-6示。
图4-6
4.阶梯波
设置同上,仿真波形如图4-7示。
图4-7
图3-2
(二)频率选择器
频率选择器利用四选一数据选择器原理,与分频器结合实现各种分频的频率选择输出,接入各个信号的CLK输入接口。四选一数据选择器有四种实现方式:if语句,case语句,条件信号赋值语句及选择信号赋值语句。本次设计采用条件信号赋值语句。s1,s2为输出选择端,q输出选择的频率,生成的模块如图3-3示。
图4-11
3)频率选择为16分频(s1,s2=1),调幅系数为2,输出方波,仿真波形如图4-12示。
图4-12
五、硬件调试及结果
(一)程序加载
完成对期间的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯片进行加载。
1.使用下载电缆将PC机与实验系统连接起来
2.选择QUARTUSII软件的Tool>Programmer命令,进行编译器窗口,如下图5-1示,如果没有设置编程硬件,则编程硬件类型为No Hardware,需要对编程硬件进行设置。点击HardwareSetup…编程硬件设置按钮,将currently selected hardware设置为:USB-Blaster[USB-0]。
EDA综合设计报告
题目:信号发生器与数字钟设计
学院:电气信息学院
专业:通信工程
姓名:
学号:
指导老师:汪敏
第一部分:信号发生器
一、设计任务
要求设计一个多功能信号发生器,根据输入信号的选择可以输出递增锯齿波,递减锯齿波,三角波,阶梯波,方波和正弦波六种信号,并能实现频率选择和幅度调节,信号发生器的控制模块可以用数据选择器实现,六种信号的选择可以用6选1数据选择器实现。
图3-7
2.递减锯齿波
与递增锯齿波类似,具有相同的输入输出端,及异步复位功能。区别在于检测是否达到最小值“00000000”,未到则减一,实现递减锯齿波,到后重置为“11111111”,循环重复实现锯齿波输出。生成模块如下图3-8示。
图3-8
3.三角波
设置clk,reset两个标准逻辑位输入、一个8位标准逻辑矢量数据输出、异步复位。reset为‘0’时,输出清零复位。设置局部变量a,当a为0时,temp执行连加计算,当temp加至“11111111”时,a置为1;当a为1时,temp执行连减计算,当temp减至“00000000”后,a置为0。依次循环,实现三角波信号输出。生成模块如下图3-9示。
图3-9
4.阶梯波
设置clk,reset两个标准逻辑位输入、一个8位标准逻辑矢量数据输出、异步复位。同样reset为‘0’时有效,输出清零复位。检测变量temp为“11111111”后置0,否则按16为步长增加temp的值,输出阶梯波信号,生成模块如下图3-10示。
图3-10
5.方波
设置clk,reset两个标准逻辑位输入、一个8位标准逻辑矢量数据输出、异步复位。检测clk上升沿执行temp加1计算,当temp小于“10000000”时,a置1,否则a置0,当a为1时,输出q为“11111111”,a为0时,q为“00000000”。从而实现占空比为1:1的方波输出。生成模块如下图3-11示。
在菜单assignments中选择pins项,点击在下图4-2中下面的表格右侧的filter的下箭头,选择pins:all,将显示本工程中所有的输入输出端口。选择要分配的端口,在location对应的行中双击鼠标左键,将显示芯片所有的引脚,选择要使用的引脚即可。引脚锁定后,必须再进行一次编译,将引脚信息编译进下载文件中。
图3-5
(四)调幅模块
MegaWizard Plug-In Manager工具提供了丰富的库函数,这些库函数专门针对Altera公司的器件进行优化,电路结构简单,并大大减少了设计者的工作量。通过MegaWizard Plug-In Manager工具的向导,设计者可以利用Quartus II提供的库函数自定义功能宏块,并设置模块参数和可选端口数值。
调幅模块利用该库函数中的lpm_divide(除法器模块),通过利用除法器模块将输出选择模块中的输出值除以denom中设置的输入值,从而实现调幅功能。生成模块如图3-6示。
图3-6
(五)各信号模块
1.递增锯齿波
设置clk及reset两个标准逻辑位输入端,一个8位标准逻辑矢量q输出,具有异步复位功能,故进程中敏感信号包括clk及reset,当reset值为‘0’时,输出清零复位。检测是否达到最大值“11111111”,未到则加一,实现递增锯齿波,到后清零重复循环。生成模块如下图3-7示。
图5-4
4.输出阶梯波
设置sel=100,Leabharlann Baidu率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-5示。
图5-5
5.输出三角波
设置sel=101,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-6示。
图5-6
6.输出方波
1)设置sel=110,频率(s1,s2)设为00,幅度调节(denom)设为001,波形如图5-7示。
图4-2
(三)仿真波形
创建波形仿真文件,选择QUARTUSII软件File>New,进行新建,选择Vector Waveform File,点击OK,则打开了一个空的波形编辑器。在波形编辑器窗口左边的的端口名列表区点击鼠标右键,在弹出的对话框中选择Insert Node or Bus命令,在弹出的对话框中,选择需要的信号进行仿真。
三、硬件设计
(一)分频器
分频器的功能是:利用对时钟上升沿计数,从而实现可以输出二分频,四分频,八分频及十六分频模块,分频器模块是为了实现信号发生器的频率选择功能。在VHDL编程中,设置一个4位标准逻辑矢量,并循环计数,分别输出它的每一位,即实现了分频功能。生成的模块如图3-1示。
图3-1
利用波形仿真工具,生成改分频器的波形图,如下图3-2示,该编程实现了分频功能。
新建SignalTap II Logic Analyzer File文件,在instance中添加观测节点(nodes),将要观察的输出信号q加入,设置clock为输入的clk信号,采样深度设为1k,重新编译添加了signal tap的工程文件,编译完后,在stp中点击右上角的SOF Manager后面的[...],选择好刚刚生成的SOF文件,然后点击program device。再点击run analyzer运行该stp文件,观察生成波形。
(二)程序流程
Clk输入六种波形输出
时钟频率波形波形幅度选择
输入选择模块选择调节波形
(三)设计软件
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。