第7章LPM参数化宏模块的应用_第1页
第7章LPM参数化宏模块的应用_第2页
第7章LPM参数化宏模块的应用_第3页
第7章LPM参数化宏模块的应用_第4页
第7章LPM参数化宏模块的应用_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章LPM参数化宏模块应用例7-1

ADC0809采样电路系统L利用LPM设计图7-1

ADC0809采样电路系统选择创建一个新的宏先建项目点击图7-2

fifo的PLM定制1选择修改存储路径及命名生存文件格式选择运用元件系列图7-3

fifo的PLM定制2设置数据深度设置数据位宽设置时钟同步/异步读/写图7-4

fifo的PLM定制3若选中某项,则在其“宏”(图左边)上就显示该端口,有读空/写满、同步/异步清零等选择“宏”端口图7-5

fifo的PLM定制4选择“读”同步模式选择“储存”区域图7-6

fifo的PLM定制5选择优化方式(速度/面积)选择某些功能端口是否有效选择是否仅用所用芯片的存储单元图7-7

fifo的PLM定制6EDA仿真库是否生成网络表测定时间和资源估计图7-8

fifo的PLM定制7生成的文件存储路径产生的文件类型,可选图7-9

fifo的PLM定制8如果选中生成网络表在“完成”向导时会出现图示图7-10

fifo的PLM定制9接下页LPM_FIFO定制的VHDL文件接下页接上页接上页

图7-10fifo的仿真波形LPM_FIFO定制文件仿真测试7.2.3AD_FIFO系统实现【例8-25】

LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYAD_FIFOISPORT(EOC,CLK,WR_EN,RD_EN,CLR:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(7DOWNTO0);FULL,ALE,START,OE,ADDA:OUTSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDAD_FIFO;ARCHITECTUREbehavOFAD_FIFOISSIGNALa1,b1,c1,d1:STD_LOGIC;COMPONENTADCINTPORT(CLK,EOC:INSTD_LOGIC;LOCK,ALE,START,OE,ADDA:OUTSTD_LOGIC);ENDCOMPONENT;

接下页COMPONENTFIFO2PORT(data:INSTD_LOGIC_VECTOR(7DOWNTO0);wrreq,rdreq,clock,aclr:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);full:OUTSTD_LOGIC);ENDCOMPONENT;BEGINb1<=CLKANDWR_EN;c1<=NOTWR_EN;a1<=RD_ENWHENWR_EN='0'ELSE–-21mux多路选择器

d1;

U1:ADCINTPORTMAP(CLK=>b1,EOC=>EOC,LOCK=>d1,ALE=>ALE,START=>START,OE=>OE,ADDA=>ADDA);U2:FIFO2PORTMAP(data=>D,wrreq=>WR_EN,rdreq=>c1,clock=>a1,aclr=>CLR,full=>FULL,q=>Q);ENDbehav;接上页实验(1)实验目的:学习在VHDL文本描述的电路中调用LPM模块。(2)实验原理:作为练习,根据图8-53的电路原理,用LPM模块设计加法计数器。(3)实验内容:将图8-53中的元件74374,用LPM_LATCH代替,用VHDL纯文本方式表达图8-53。给出其仿真波形,并在EDA实验系统上验证此项设计。(4)实验思考题:修改以上设计,但仍然利用LPM模块,即lpm_add_sub、busmux、lpm_latch及其它的模块构成一个可预置初值的减法计数器。(5)实验报告:给出以上的实验内容,时序分析和实测结果,完成实验报告。实验8-1LPM模块应用练习实验(1)实验目的:学习利用数控分频器设计硬件电子琴实验。(2)实验原理:主系统由3个模块组成,例8-29是顶层设计文件,其内部有两个功能模块(如图8-14所示):TONE.VHD(例8-28)和SPEAKER.VHD(例8-27)。实验8-2硬件电子琴电路设计图8-14硬件电子琴电路结构实验实验8-2硬件电子琴电路设计模块TONE是音阶发生器,当8位发声控制输入INDEX中某一位为高电平时,则对应某一音阶的数值将从端口TONE输出,作为获得该音阶的分频预置值;同时由CODE输出对应该音阶简谱的显示数码,如‘5’,并由HIGH输出指示音阶高8度显示。由例8-28可见,其语句结构只是类似与真值表的纯组合电路描述,其中的音阶分频预置值,如Tone<=1290是根据产生该音阶频率所对应的分频比获得的。模块SPEAKER中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,详细的设计和工作原理已在第8章实验3中作了描述。当模块SPEAKER由端口TONE获得一个2进制数后,将以此值为计数器的预置数,对端口CLK12MHZ输入的频率进行分频,之后由SPKOUT向扬声器输出发声。【例8-27】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSpeakerISPORT(clk1:INSTD_LOGIC;Tone1:ININTEGERRANGE0TO16#7FF#;SpkS:OUTSTD_LOGIC);END;ARCHITECTUREoneOFSpeakerISSIGNALPreCLK,FullSpkS:STD_LOGIC;BEGINDivideCLK:PROCESS(clk1)VARIABLECount4:INTEGERRANGE0TO15;BEGINPreCLK<='0';--将CLK进11分频,PreCLK为CL11K6分频

IFCount4>11THENPreCLK<='1';Count4:=0;ELSIFclk1'EVENTANDclk1='1'THENCount4:=Count4+1;ENDIF;ENDPROCESS;

接下页GenSpkS:PROCESS(PreCLK,Tone1)VARIABLECount11:INTEGERRANGE0TO16#7FF#;BEGIN--11位可预置计数器

IFPreCLK'EVENTANDPreCLK='1'THENIFCount11=16#7FF#THENCount11:=Tone1;FullSpkS<='1';ELSECount11:=Count11+1;FullSpkS<='0';ENDIF;ENDIF;ENDPROCESS;DelaySpkS:PROCESS(FullSpkS)VARIABLECount2:STD_LOGIC;BEGINIFFullSpkS'EVENTANDFullSpkS='1'THENCount2:=NOTCount2;IFCount2='1'THENSpkS<='1';ELSESpkS<='0';ENDIF;ENDIF;ENDPROCESS;END;【例8-28】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYToneISPORT(Index:INSTD_LOGIC_VECTOR(7DOWNTO0);CODE:OUTINTEGERRANGE0TO15;HIGH:OUTSTD_LOGIC;Tone:OUTINTEGERRANGE0TO16#7FF#);END;ARCHITECTUREoneOFToneISBEGINSearch:PROCESS(Index)BEGINCASEIndexIS--译码电路,查表方式,控制音调的预置数

WHEN"00000001"=>Tone<=773;CODE<=1;HIGH<='0';WHEN"00000010"=>Tone<=912;CODE<=2;HIGH<='0';WHEN"00000100"=>Tone<=1036;CODE<=3;HIGH<='0';WHEN"00001000"=>Tone<=1116;CODE<=4;HIGH<='0';WHEN"00010000"=>Tone<=1197;CODE<=5;HIGH<='0';WHEN"00100000"=>Tone<=1290;CODE<=6;HIGH<='0';WHEN"01000000"=>Tone<=1372;CODE<=7;HIGH<='0';WHEN"10000000"=>Tone<=1410;CODE<=1;HIGH<='1';WHENOTHERS=>Tone<=2047;CODE<=0;HIGH<='0';ENDCASE;ENDPROCESS;END;【例8-29】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTOPIS--顶层设计

PORT(CLK12MHZ:INSTD_LOGIC;INDEX1:INSTD_LOGIC_VECTOR(7DOWNTO0);CODE1:OUTINTEGERRANGE0TO15;HIGH1,SPKOUT:OUTSTD_LOGIC);END;ARCHITECTUREoneOFTOPISCOMPONENTTonePORT(Index:INSTD_LOGIC_VECTOR(7DOWNTO0);CODE:OUTINTEGERRANGE0TO15;HIGH:OUTSTD_LOGIC;Tone:OUTINTEGERRANGE0TO16#7FF#);--11位2进制数ENDCOMPONENT;COMPONENTSpeakerPORT(clk1:INSTD_LOGIC;Tone1:ININTEGERRANGE0TO16#7FF#;--11位2进制数

SpkS:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALTone2:INTEGERRANGE0TO16#7FF#;BEGIN--安装u1,u2u1:TonePORTMAP(Index=>Index1,Tone=>Tone2,CODE=>CODE1,HIGH=>HIGH1);u2:SpeakerPORTMAP(clk1=>CLK12MHZ,Tone1=>Tone2,SpkS=>SPKOUT);END;实验实验8-2硬件电子琴电路设计(3)实验内容1:编译适配以上3个示例文件,给出仿真波形,最后进行下载和硬件测试实验。建议使用实验电路模式“3”(附图1-5),用短路帽选择“CLOCK9”的输入频率选择12MHz,此信号作为系统输入信号CLK12MHZ;键8至键1作为INDEX输入信号控制各音阶;选择数码管1显示琴音简谱码,发光管D1显示高8度。(4)实验内容2:在原设计的基础上,增加一个NOTETABS模块(如图8-15所示),用于产生节拍控制(INDEX数据存留时间)和音阶选择信号,即在NOTETABS模块放置一个乐曲曲谱真值表,由一个计数器的计数值来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。试完成此项设计,并在EDA实验系统上的FPGA目标器件中实现之。(5)思考题1:例8-27中的进程DelaySpkS对扬声器发声有什么影响?(6)思考题2:在电路上应该满足哪些条件,才能用数字器件直接输出的方波驱动扬声器发声?实验实验8-2硬件电子琴电路设计(7)实验报告:用仿真波形和电路原理图,详细叙述硬件电子琴的工作原理及其3个VHDL文件中相关语句的功能,叙述硬件实验情况,提出硬件乐曲演奏电路的设计和实验方案。

图8-15硬件乐曲演奏电路结构可以选择模式9用键选择演奏何首乐曲:第3首乐曲简谱码实验(1)实验目的:学习用VHDL设计波形发生器和扫频信号发生器,掌握FPGA对D/A的接口和控制技术,学会LPM_ROM在波形发生器设计中的实用方法。实验8-3波形发生与扫频信号发生器电路设计(2)实验原理:如图8-16所示,完整的波形发生器由4部分组成:首先是FPGA中的波形发生器控制电路,它通过外来控制信号和高速时钟信号,向波形数据ROM发出地址信号,输出波形的频率由发出的地址信号的速度决定;当以固定频率扫描输出地址时,模拟输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则模拟输出波形为扫频信号。实验实验8-3波形发生与扫频信号发生器电路设计波形数据ROM中存有发生器的波形数据,如正弦波或三角波数据。当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据,地址变化得越快,则输出数据的速度越快,从而使D/A输出的模拟信号的变化速度越快。波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM;由逻辑方式在FPGA中实现(如例8-30);或由FPGA中的EAB模块担当,如利用LPM_ROM实现。相比之下,第1种方式的容量最大,但速度最慢;,第2种方式容量最小,但速度最快;第3种方式则兼顾了两方面的因素;D/A转换器负责将ROM输出的数据转换成模拟信号,经滤波电路后输出。输出波形的频率上限与D/A器件的转换速度有重要关系,本例采用DAC0832器件。实验实验8-3波形发生与扫频信号发生器电路设计DAC0832是8位D/A转换器,转换周期为1µs,其引脚信号以及与FPGA目标器件典型的接口方式如附图1-15所示。其参考电压与+5V工作电压相接(实用电路应接精密基准电压)。DAC0832的引脚功能简述如下:ILE(PIN19):数据锁存允许信号,高电平有效,系统板上已直接连在+5V上。WR1、WR2(PIN2、18):写信号1、2,低电平有效。XFER(PIN17):数据传送控制信号,低电平有效。VREF(PIN8):基准电压,可正可负,-10V~+10V。RFB(PIN9):反馈电阻端。IOUT1/IOUT2(PIN11、12):电流输出端。D/A转换量是以电流形式输出的,所以必须如实验结构图NO.5C所示连接方式将电流信号变为电压信号。AGND/DGND(PIN3、10):模拟地与数字地。在高速情况下,此二GND地的连接线必须尽可能短,且系统的单点接地点须接在此连线的某一点上。实验(3)实验内容1:根据示例例8-30,及以上的设计原理,完成波形发生器和扫频信号源的设计,仿真测试及实验系统上的硬件测试。实验8-3波形发生与扫频信号发生器电路设计例8-30中的正弦波波型数据由64个点构成,此数据经DAC0832,并经滤波器后,可在示波器上观察到光滑的正弦波(若接精密基准电压,可得到更为清晰的正弦波形)。硬件实验中注意DAC0832及滤波电路须接有+/-12V电压。然后将实验系统左下角选择插针处用短路帽短路“D/A直通”,而“滤波1”,“滤波0”处通过短路或不接短路帽达到不同的滤波方式。将示波器的地与EDA实验系统的地相接,信号端与“AOUT”

信号输出端相接;建议CLK接clock0,由此50MHz频率,此频率扫描波形数据;CLK1接clock5,由此接“1024Hz”,此频率决定扫频速度;选电路模式1;KK接键8,当为高电平时,正弦波点频输出,11位输入数据DATA由键3、键2和键1控制,信号源的输出频率由此3键输入的12位二进制数决定,数值越大,输出频率越高;“FD0”时为最高频率;键8低电平时,正弦波扫频输出,扫频速度由clock5的频率决定。输向0832的8位数据由DD输出。实验(4)实验内容2:在例8-30中插如一个LPM_ROM,将原例中的波形数据放在内部ROM中(利用本章第10节和第4章第3节介绍的方法,为例8-30定制波形数据ROM,并完成mif数据文件的编辑。必要时增加波形点数,以利低频输出时,仍保持良好波形。波形数据可由其它方式自动生成),然后重复以上的测试和硬件实验。实验8-3波形发生与扫频信号发生器电路设计图8-16波形发生器电路系统结构图实验(5)思考题:如果CLK的输入频率是50MHz,ROM中一个周期的正弦波数据是128个,要求输出的正弦波频率不低于150KHz,0832是否能适应此项工作?为什么?(6)实验报告:作出本项实验设计的完整电路图,详细说明其工作原理,叙述例8-30的工作原理,以及基于LPM_ROM的VHDL电路设计的详细内容和测试、实验内容。实验8-3波形发生与扫频信号发生器电路设计【例8-30】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDACISPORT(CLK,CLK1,KK:INSTD_LOGIC;DATA:INSTD_LOGIC_VECTOR(11DOWNTO0);DD:OUTINTEGERRANGE255DOWNTO0);END;ARCHITECTUREDACCOFDACISSIGNALQ:INTEGERRANGE63DOWNTO0;SIGNALD:INTEGERRANGE255DOWNTO0;SIGNALFSS:STD_LOGIC;SIGNALCOUNT12,DATA2,DATA1:STD_LOGIC_VECTOR(11DOWNTO0);BEGINPROCESS(FSS)BEGINIF(FSS'EVENTANDFSS='1')THENQ<=Q+1;ENDIF;ENDPROCESS;PROCESS(Q)

接下页BEGINCASEQISWHEN00=>D<=255;WHEN01=>D<=254;WHEN02=>D<=252;WHEN03=>D<=249;WHEN04=>D<=245;WHEN05=>D<=239;WHEN06=>D<=233;WHEN07=>D<=225;WHEN08=>D<=217;WHEN09=>D<=207;WHEN10=>D<=197;WHEN11=>D<=186;WHEN12=>D<=174;WHEN13=>D<=162;WHEN14=>D<=150;WHEN15=>D<=137;WHEN16=>D<=124;WHEN17=>D<=112;WHEN18=>D<=99;WHEN19=>D<=87;WHEN20=>D<=75;WHEN21=>D<=64;WHEN22=>D<=53;WHEN23=>D<=43;WHEN24=>D<=34;WHEN25=>D<=26;WHEN26=>D<=19;WHEN27=>D<=13;WHEN28=>D<=8;WHEN29=>D<=4;WHEN30=>D<=1;WHEN31=>D<=0;WHEN32=>D<=0;WHEN33=>D<=1;WHEN34=>D<=4;WHEN35=>D<=8;WHEN36=>D<=13;WHEN37=>D<=19;WHEN38=>D<=26;WHEN39=>D<=34;WHEN40=>D<=43;WHEN41=>D<=53;WHEN42=>D<=64;WHEN43=>D<=75;WHEN44=>D<=87;WHEN45=>D<=99;WHEN46=>D<=112;WHEN47=>D<=124;WHEN48=>D<=137;WHEN49=>D<=150;WHEN50=>D<=162;WHEN51=>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论