- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA作业讲述
信号发生器设计
1.设计原理
结构框图:根据设计要求,构造信号发生器的结构框图。
分频网络:
根据已有时钟信号的频率、实际产生信号的频率以及D/A转换器时钟频率的需求,决定分频网络分频系数的设计。
信号产生:
用计数器直接产生波形信号输出,或者采用查找表方式产生波形信号,用计数器产生存储器的地址,在存储器中存放波形信号输出的数据。
信号控制:
控制模块可以用数据选择器实现,用6选1数据选择器实现对6种信号的选择。
D/A控制器:
按照D/A转换器的时序要求,D/A控制器产生D/A转换器的控制信号,将波形数据经过D/A控制器送入D/A转换器,将数字信号转换为模拟信号,产生模拟信号输出。D/A转换器TLC7528是2路、8位的数字/模拟转换器,通过运放NE5532实现电流电压转换,模拟信号分别从J1,J2和VGA输出,其内部包含两个数据锁存器,通过数据输入端DB0~DB7传送,控制输入端决定数据存入哪个数据锁存器。
通过状态机实现FPGA对TLC7528的控制,按要求依次输出控制信号。FPGA的dac输出信号与TLC7528的相连,FPGA的data输出信号与TLC7528的数据输入端相连,FPGA的cs和wr输出信号分别与TLC7528的CS和WR相连。
信号产生:
递增锯齿波利用计数器产生递增锯齿波信号。设计复位信号reset使输出清零,高电平有效;reset为低电平时,在输入时钟信号clk的作用下,设计一个8位二进制加法计数器,输出信号依次从全0变为全1,计为全1后恢复为全0,不断循环,从而产生递增锯齿波信号输出。
正弦波信号利用ROM产生正弦波信号。首先用计数器产生存储器的地址,接着读取存放在存储器中的正弦波信号数据。
2.实现过程
信号发生器的设计:采用混合描述的层次化设计方案,在调用这些子模块,采用原理图方式实现信号发生器的系统电路连接。
子模块的设计有:
a.递减锯齿波signal2的设计实现
b. 三角波signal3的设计实现
c. 阶梯波signal4的设计实现
d. 方波信号signal5的设计实现
e.正弦信号signal6的设计实现
f.数据选择器mux61设计实现: 数据选择器的选择端信号sel[2..0]共3位,数据端共6组,每组信号均是8位,分别是d1[7..0]、…、d7[7..0],输出信号q[7..0]。
g.分频网络设计实现:利用二进制计数器的分频实现。通过将计数器状态输出端的信号引出,即可得到不同的频率信号。
3.顶层原理图
连接三个模块电路:信号发生器电路signal7、分频网络fclk以及DAC控制模块dac_control连接在一起,
将FPGA的输出信号cs、wr、dac_ac和data[7..0]与TLC7528对应引脚相连,将程序下载到目标芯片中,用示波器观察输出波形,若运行结果正确,可以实现各种波形的选择输出。
电路signal7是将递增锯齿波信号模块signal1、递减锯齿波信号模块signal2、三角波信号模块signal3、阶梯波信号模块signal4、方波信号模块signal5、正弦信号模块signal6和数据选择器mux61电路连接形成。
4.子程序
递增锯齿波信号signal1的程序:
library ieee ;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity signal1 is --产生递增锯齿波模块signal1
port(clk,reset:in std_logic; --复位信号reset,时钟信号clk
q:out std_logic_vector(7 downto 0));--输出信号q,8位数字信号
end signal1;
architecture a of signal1 is
begin
process(clk,reset)
variable tmp:std_logic_vector(7 downto 0);
begin
if reset=1 then --复位信号reset=1有效,启始状态
tmp:
elsif rising_edge(clk)then --复位信号无效,时钟信号有上升沿
if tmp then --计数值全1,恢复到全0状态
tmp:
else
tmp:=tmp+1; --加法计数
end if;
end if;
q=tmp; --信号输出,产生递增锯齿波信号
end process;
end a;
递减锯齿波signal2的程序:
library ieee;
use ieee.std_logic_11
您可能关注的文档
最近下载
- 湖南省医学类专业专升本考试生理、解剖学考试试卷.pdf VIP
- 阿里巴巴的“神雕侠侣”——员工的价值观行为准则.docx VIP
- 2023-2024学年山东省滨州市沾化区二年级(上)期末数学试卷(含答案).pdf VIP
- 引号的“世界”━━引号用法考点解析.pdf VIP
- 2024年骨科外固定支架行业研究报告及未来五至十年预测分析报告.docx
- 2023-2024学年山东省济南市长清区人教版二年级上册期末测试数学试卷「含答案」.pdf VIP
- 研究是一门艺术(The_Craft_of_Research).pdf VIP
- 某市中级人民法院院长民主生活会个人对照检查发言提纲.docx VIP
- 2022-2023学年山东省济南市槐荫区二年级(上)期末数学试卷.Doc VIP
- 2023-2024学年山东省东营市二年级(上)期末数学试卷.doc VIP
文档评论(0)