- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字电路实验(下)申请报告 VHDL 实现——简易函数发生器
姓名:杨帆
班级:07118
班内小号:26
学号:070547
一 设计课题的任务要求 A.实验目的
熟练掌握 VHDL 语言和QuartusII 软件的使用; 理解状态机的工作原理和设计方法;
掌握利用 EDA 工具进行自顶向下的电子系统设计方法; 熟悉 D/A 变换电路的设计;
B.实验任务
基本任务:设计制作一个简易函数发生器。
输出波形为方波和三角波,频率范围为1kHZ-2kHZ;
频率可进行调节并用数码管显示,加、减步进均为100HZ;
输出三角波的峰峰值为4-5V,方波幅度为TTL 电平的大小;
提高要求:
产生频率范围为1kHZ-2kHZ、峰峰值为4-5V 的正弦波信号;
产生占空比可调的矩形波或其它波形;
自拟其它功能。
二 设计思路、总体框图
设计思路:
用 VHDL 语言结合原理图编辑方式设计实现一个函数信号发生器,输 出频率可调方波和三角波,正弦波三种波形。将波形选择、频率控制与分 频、三角波、正弦波、方波发生各个模块分别用 VHDL 语言编程为一个子 程序,并把每一个模块转换成图形文件,然后在原理图编辑框调用这些图 形模块。由于考虑到按键开关工作的不确定性,通过拨码开关模块的 SW0 到 SW3 控制频率调节 f〔3...0〕,用 SW4、SW5 控制
DELTA、SINE、SQUARE 波形选通,最后把八位输出接开发板上的 DA 模 块(TLV5638),通过 D/A 转换(信号可能还需外界电路放大),从示波器 上就能看到波形输出。在按键模块,用户可以调节方波输出的占空比(并 不确定能否实现该功能,视进度而定)。
如下分别是简易函数发生器的结构框图、逻辑划分框图、逻辑流程图和 MDS 图。
波形输出简易函数发生器电路频率控制器 (frq.vhd)OSC拨码开关模块
波
形
输
出
简易函数发生器电路
频率控制器 (frq.vhd)
OSC
拨码开关模块 SW0~SW3
SW4~SW5
方波发生器 (sqr_gen.vhd)
三角波发生器 (dlt_gen.vhd)
正弦波发生器 (sin_gen.vhd)
按键模块
BT0~BT1
波形控制器 (主函数) (main.vhd)
数码管显示模块
连接示波器
数码管模块
显示
频率等信息
按键模
块
块
拨码开关模块
(图一:简易函数发生器的结构图)
Clk
f(3..0)
clk_m clk_m clk_m
duty
S1,S2
delta(7..0) sine(7..0) square(7..0)
q_out(7..0)
(图二:简易函数发生器的逻辑划分方框图)
等待用户
等待用户选择波形,同时输出低电平
输出默认频率(1KHz)的相应波形
修改输出频率(步进量:100Hz), 同时修改数码管的显示
有关图二的说明:
各个模块的参数传递与入口、出口设置:
main.vhd :
s : in std_logic_vector(1 downto 0); --由 SW4 和 SW5 产生,用于状态选择
delta : in std_logic_vector(7 downto 0); --由三角波发生模块产生
sine : in std_logic_vector(7 downto 0); --由正弦波发生模块产生
square : in std_logic_vector(7 downto 0); --由方波发生模块产生
q_out : out std_logic_vector(7 downto 0); --输出用于 DA 转换的 8 位序列
frq.vhd :
clk : in std_logic; --由实验板的晶振产生的时钟信号
f : in std_logic_vector(3 downto 0); --由 SW0~SW3 产生的分频选择信号
clk_m : out std_logic; --输出特定频率的脉冲信号,作为各个模块的时钟 led : out std_logic_vector(6 downto 0); --输出用于点亮数码管的信号
: out std_logic_vector(5 downto 0); --输出用于数码管选通的信号
_gen.vhd :
clk_m : in std_logic; --经过分频的时钟信号
delta : out std_logic_vector(7 downto 0);--输出 8 位三角波波形的用于 DA 转换的序 列
sin_gen.vhd :
clk_m : in std_logic; --经过分频的时钟信号
sine : out std_logic_vector(7 downto 0);--输出 8 位正弦波波形的
文档评论(0)