用VHDL的设计多功能信号发生器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 用VHDL设计多功能信号发生器 ???? 基于《VHDL语言》,通过给定的仪器(试验箱设计一个多功能信号发生器,要求: (1)能产生周期性正弦波、方波、三角波、锯齿波以及用户自己编辑的特定波形; ?(2)输出信号的频率范围为100Hz~200KHz,且输出频率可以调节; (3)具有显示输出波形、频率的功能。 系统顶层框图 在原理框图中,正(余)弦查找表由ROM构成,内部存有一个完整周期正(余)弦波的数字幅度信息,每个查找表的地址对应正(余)弦波幅度信号,同时输出到数模转换器(DAC)输入端,DAC输出的模拟信号经过低通滤波器(LPF),可以得到一个频谱纯净的正(余)弦波。   ??????? 用VHDL语言结合原理图设计实现一个函数信号发生器,输出正弦波、方波和三角波三种波形。将频率控制、分频、三角波、正弦波、方波发生各个模块分别用VHDL语言编程为一个子程序,并把每一个模块转换成图形文件,然后在原理图编辑框调用这些图形模块,连接电路如图所示。通过按键1到按键控制频率调节f〔...0〕,用按键6、按键7、按键8控制dlt、sin、sqr波形选通,最后把八位输出接DAC0832通过D/A转换,从示波器上就能看到波形输出。按下不同的按键输出不同的波形及频率。   1)数控分频器模块    (2).数据存储模块    数据存储模块主要存的是正弦波三角波、锯齿波采样点 变换成的形式进行采样,然后变换成8位二进制码,存储在波形存储器里。 (3)数据选择器模块 在波形开关的控制下,选择相应的波形输出。可以用3个按键来控制波形选择    .LED显示模块    LED显示模块主要是完成频率控制字的显示,由于本次实验采用八位的由键盘输入的频率控制字,累计寻址,读取8位地址长度256点的一个周期波形的数字幅度信息,所以频率控制字控制着频率的大小,而恰好此时的频率控制字就是系统输出波形的频率,所以,LED显示的也是波形的频率。此模块主要的功能是将外部键盘的8位二进制数转换成三位BCD码。 2、定制LPM_ROM原件,生成的的ROM文件data_rom.vhd如下 LIBRARY ieee; USE ieee.std_logic_1164.all; entity sindata is port(address:in std_logic_vector(5 downto 0); inclock:in std_logic; q:out std_logic_vector(7 downto 0); end sindata; architecture syn of sindata is signal sub_wire0 :std_logic_vector(7 downto 0); component 1pm_rom generic(1pm_width :natural; 1pm_widthid :natural; 1pm_address_control:string; 1pm_outdata:string; 1pm_file:string); port(address:in std_logic_vector(5 downto 0); inclock:in std_logic; q:out std_logic_v ector(7 downto 0)); end component; begin q=sub_wire0(7 downto 0); 1pm_rom_component:1pm_rom generic map(lpm_width=8,lpm_widthad=6, lpm_address_comtrol=registered,lpm_outdata=unregistered, lpm_file=D:/SIN_G/DATA/sin_data.mif) port map(address=address,inclock=inclock,q=sub_wire0); end syn; 3、顶层设计 正弦波信号发生器顶层设计源程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity singt is port(clk:in std_logic; dout:out std_logic_vector(7 downto 0)); end; architecture dacc of singt is component sindata port(address:in std_logic_vector(5 downto 0); inclock:in std_logic; q:out st

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档