网站大量收购独家精品文档,联系QQ:2885784924

华为杯_匡鑫_刘洋Verilog试卷.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电光学院第六届 华为杯电子设计竞赛报告 题目:数字AGC的FPGA实现 学院:南京理工大学电光学院 姓名:匡鑫、刘洋 时间:2015年5月 题目要求 1.任务 用数字方法设计一个自动增益控制(AGC)电路。 2.要求 1.基本要求 利用EDA实验平台中的A/D、D/A扩展版设计并实现一个AGC电路,要求输入信号频率为100KHz,最大幅度为2VPP,实现方法参考下图: 设计接口电路,用ADC对输入信号进行采样,并用DAC恢复输入信号。 实现对输入信号的手动增益控制。 (1)实现对输入信号的自动增益控制,要求输出信号幅度保持2VPP,AGC的动态范围不小于20dB。 (3)其他功能,自由发挥 二、实现原理和结果分析 1.利用按键开关实现手动控制。 原理:先将DDS源发生的信号送入AD转换,转换后的值乘以增益k,然后输出到DA转换,最后用示波器显示。 原始信号频率为100k,根据奈奎斯特采样定理fs至少为200k才能保证恢复原始信号。当然采样频率越高越好,(频率很高时,单周期内的样点数较多,不用插值恢复即可得到完美的波形)由于AD/DA芯片支持最高20M的采样率,这里我们采用12M的采样率,直接用系统48M时钟4分频得到,免去设计复杂的非整数分频的分频器。 得到8位采样数据后,应用寄存器将其保存。同时将8位按键开关的输入值用寄存器保存。将二者相乘输出到10位DA转换。这里应当注意考虑溢出和可调节范围(即动态增益)的问题。通过推算,参考电压Vref是4v,要求输入峰峰值电压Vpp是2v代码中,如下代码较为合适,兼顾增益和调节范围。assign da_out=ad_reg_in*reg_key/16; 实验结果:成功实现256梯度调节,但是调节过程较麻烦,而且不能做到连续调节。下面讨论改进方案。 2. 利用旋钮实现连续控制 看到实验板上有个旋钮,于是考虑用旋钮实现手动调节,更加方便实用。其实该旋钮也是8位采样的AD,所以理论上可调精度与上述方法一样,但操作方便了许多。涉及到TLC549的控制,该芯片是8位串行的AD转换器,要用到有限状态机的编程,所以复杂度一下提高了很多。(还好比赛前有学习准备,不然根本不可能做出来。)串行的要一位一位的读入,每读入一位整体要向高位进1(左移1位),8位全部读完后方可读数。芯片手册中要求采样时钟不要超过1.1M。 下简述实现原理,将48M时钟64分频得到0.75M,并以此时钟驱动一个5位状态计数器ctrl_cnt,另其中if ( ctrl_cnt == 5d6 || ctrl_cnt == 5d8 || ctrl_cnt == 5d10 || ctrl_cnt == 5d12 || ctrl_cnt == 5d14 || ctrl_cnt == 5d16 || ctrl_cnt == 5d18 || ctrl_cnt == 5d20 )时去读入一位数,频率为1.5M,满足芯片要求。在ctrl_cnt==23时,8位数已满,刷出全部8位数。考虑为芯片的准备时间,在1ctrl_cnt25时禁止读数(指采样结果8位数),其余时间可读。 其它部分与方案一中的实现相同,详见代码。 实验结果:成功实现手动连续调节,较容易将输出值调节到规定数值。 3. 自动增益控制 原理:利用简单的反馈调节机制,也叫PID调节实现。 获取输出信号(一个周期内)的最大值,将其与目标值比较,若大于目标值,则减小增益系数k;若小于目标值,则增大增益系数k。 获得最大值用比较法,如if(VmaxVin) Vmax=Vin; 获得最大值时必须获得单周期的最大值,否则只能单向增大的时才会将其调小,反之不行。考虑采样频率12M和信号频率100k,可用7位计数器count,在1-120间累加,当值为120时计数器count置1同时根据Vmax与目标值的大小调节增益K,同时将Vmax置为中值(否则下一周期比较时当最大值小于当前值时将不会改变)。置为中值的原因是,可以置为零值,但响应会变慢,由于半偏置电压的存在,在极端情况下(零输入)的值恰好为中值。 下面讨论溢出和偏置的影响:输入中值在128,输出中值在512,原始解决方法 assign da_out=512+((ad_reg_in-128))*k;//当k值为4时恰好匹配到输出,这样随着k值得波动输出波形的波动很大,不稳定。 assign da_out=512+((ad_reg_in-128))*k/10; 当k值为40时恰好匹配到输出,这样随着k值得波动输出波形的波动不会很大,改善输出波形稳定度。 三、实验总结 1.比赛的题目基本完成,并且利用了旋钮手动调节增益和功能自动增益控制,动态调节范围达到30dB。经过本次比赛,我们充分熟悉了

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档