第十二章_电子系统设计A.ppt_第1页
第十二章_电子系统设计A.ppt_第2页
第十二章_电子系统设计A.ppt_第3页
第十二章_电子系统设计A.ppt_第4页
第十二章_电子系统设计A.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

EDA技术实用教程,第12章(A)电子系统设计实践,12.1等精度频率计设计,在此完成的设计项目可达到的指标为:,(1)频率测试功能:测频范围0.1Hz100MHz。测频精度:测频全域相对误差恒为百万分之一。,(2)脉宽测试功能:测试范围0.1s1s,测试精度0.01s。,(3)占空比测试功能:测试精度199。,12.1等精度频率计设计,12.1.1主系统组成,图12-1频率计主系统电路组成,12.1等精度频率计设计,12.1.2测频原理,图12-2等精度频率计主控结构,设在一次预置门时间Tpr中对被测信号计数值为Nx,对标准频率信号的计数值为Ns,则下式成立:,12-1,不难得到测得的频率为:,12-2,图12-3频率计测控时序,12.1.3FPGA/CPLD开发的VHDL设计,占空比=12-3,【例12-1】LIBRARYIEEE;-等精度频率计USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYGWDVPBISPORT(BCLK:INSTD_LOGIC;-CLOCK1标准频率时钟信号TCLK:INSTD_LOGIC;-待测频率时钟信号CLR:INSTD_LOGIC;-清零和初始化信号CL:INSTD_LOGIC;-预置门控制SPUL:INSTD_LOGIC;-测频或测脉宽控制START:OUTSTD_LOGIC;EEND:OUTSTD_LOGIC;-由低电平变到高电平时指示脉宽计数结束SEL:INSTD_LOGIC_VECTOR(2DOWNTO0);-多路选择控制DATA:OUTSTD_LOGIC_VECTOR(7DOWNTO0);-位数据读出ENDGWDVPB;接下页,ARCHITECTUREbehavOFGWDVPBISSIGNALBZQ,TSQ:STD_LOGIC_VECTOR(31DOWNTO0);-标准计数器/测频计数器SIGNALENA,PUL:STD_LOGIC;-计数使能/脉宽计数使能SIGNALMA,CLK1,CLK2,CLK3:STD_LOGIC;SIGNALQ1,Q2,Q3,BENA:STD_LOGIC;SIGNALSS:STD_LOGIC_VECTOR(1DOWNTO0);BEGINSTART0);ELSIFBCLKEVENTANDBCLK=1THENIFBENA=1THENBZQ=BZQ+1;ENDIF;ENDIF;ENDPROCESS;TF:PROCESS(TCLK,CLR,ENA)-待测频率计数器,测频计数器接下页,BEGINIFCLR=1THENTSQ0);ELSIFTCLKEVENTANDTCLK=1THENIFENA=1THENTSQ=TSQ+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(TCLK,CLR)-计数控制使能,CL为预置门控信号,同时兼作正负脉宽测试控制信号BEGINIFCLR=1THENENA=0;ELSIFTCLKEVENTANDTCLK=1THENENA=CL;ENDIF;ENDPROCESS;MA=(TCLKANDCL)ORNOT(TCLKORCL);-测脉宽逻辑CLK1=NOTMA;CLK2=MAANDQ1;CLK3=NOTCLK2;SS=Q2接下页,DD3:PROCESS(CLK3,CLR)BEGINIFCLR=1THENQ3=0;ELSIFCLK3EVENTANDCLK3=1THENQ3=1;ENDIF;ENDPROCESS;PUL=1WHENSS=10ELSE-当SS=10时,PUL高电平,允许标准计数器计数,0;-禁止计数EEND=1WHENSS=11ELSE-EEND为低电平时,表示正在计数,由低电平变到高电平0;-时,表示计数结束,可以从标准计数器中读数据了BENAADckADck=0;lock=0;dclk=1;接下页,next_ads_stateADck0);ELSIFlockEVENTANDlock=1THENdata=D;ENDIF;ENDPROCESS;ADoe=0;endADCTRL;,12.2高速A/D采样控制设计,图12-8A/D转换仿真波形,【例12-3】-TLC5510采样控制。libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entityadctrlisport(rst:instd_logic;-复位clk:instd_logic;-采样控制Clock输入;d:instd_logic_vector(7downto0);-8位A/D数据ADck:outstd_logic;-TLC5510的CLKADoe:outstd_logic;-TLC5510的OEdata:outstd_logic_vector(7downto0);-8位数据dclk:outstd_logic);endadctrl;architecturelogiofadctrlissignallock:std_logic;beginlock0);ELSIFlockEVENTANDlock=1THENdata=D;ENDIF;ENDPROCESS;ADoe=0;endlogi;,12.3VGA图像显示控制器设计,对于普通的VGA显示器,其引出线共含5个信号:,R、G、B:三基色信号,HS:行同步信号,VS:场同步信号,对这5个信号的时序驱动,对于VGA显示器要严格遵循“VGA工业标准”,即64048060Hz模式,否则会损害VGA显示器。,12.3VGA图像显示控制器设计,图12-9VGA行扫描、场扫描时序示意图,12.3VGA图像显示控制器设计,VGA工业标准要求的频率:,时钟频率(Clockfrequency):25.175MHz(像素输出的频率),行频(Linefrequency):31469Hz,场频(Fieldfrequency):59.94Hz(每秒图像刷新频率),12.3VGA图像显示控制器设计,VGA工业标准显示模式要求:,行同步、场同步都为负极性,即同步头脉冲要求是负脉冲。,12.3VGA图像显示控制器设计,图12-10VGA图像控制器框图,12.3VGA图像显示控制器设计,图12-11FPGA模块实体,12.3VGA图像显示控制器设计,颜色编码如下:,12.4直接数字合成器(DDS)设计,正弦信号发生器,它的输出可以用下式来描述:,12-4,用基准时钟clk进行抽样,令正弦信号的相位:,12-5,在一个clk周期Tclk,相位的变化量为:,12-6,12.4直接数字合成器(DDS)设计,为了对进行数字量化,把切割成2N份,由此每个clk周期的相位增量用量化值来表述:,且为整数,与12-6式联立,可得:,12-7,12.4直接数字合成器(DDS)设计,信号发生器的输出可描述为:,12-8,其中指前一个clk周期的相位值,同样得出,12-9,12.4直接数字合成器(DDS)设计,图12-12基本DDS结构,【例12-4】-DDSC:DDS主模块libraryIEEE;useIEEE.STD_LOGIC_1164.all;useIEEE.STD_LOGIC_UNSIGNED.all;useieee.std_logic_arith.all;librarylpm;-AlteraLPMuselpm.lpm_components.all;entityddscis-DDS主模块generic(freq_width:integer:=32;-输入频率字位宽phase_width:integer:=12;-输入相位字位宽adder_width:integer:=32;-累加器位宽romad_width:integer:=10;-正弦ROM表地址位宽rom_d_width:integer:=10);-正弦ROM表数据位宽port(clk:instd_logic;-DDS合成时钟freqin:instd_logic_vector(freq_width-1downto0);-频率字输入phasein:instd_logic_vector(phase_width-1downto0);-相位字输入ddsout:outstd_logic_vector(rom_d_width-1downto0);-DDS输出endentityddsc;接下页,architecturebehaveofddscissignalacc:std_logic_vector(adder_width-1downto0);signalphaseadd:std_logic_vector(phase_width-1downto0);signalromaddr:std_logic_vector(romad_width-1downto0);signalfreqw:std_logic_vector(freq_width-1downto0);signalphasew:std_logic_vector(phase_width-1downto0);beginprocess(clk)beginif(clkeventandclk=1)thenfreqw=freqin;-频率字输入同步phasew=phasein;-相位字输入同步acc=acc+freqw;-相位累加器endif;endprocess;phaseaddromad_width,LPM_ADDRESS_CONTROL=UNREGISTERED,LPM_OUTDATA=REGISTERED,LPM_FILE=sin_rom.mif)-指向rom文件PORTMAP(outclock=clk,address=romaddr,q=ddsout);endarchitecturebehave;,下面是产生SINROM数据值的C程序:#include#includemath.hmain()inti;floats;for(i=0;isin_rom.mif;,图12-13DDS主模块RTL综合结果,基本DDS结构的常用参量计算,(1)DDS的输出频率fout。,12-10,(2)DDS的频率分辨率。,12-11,(3)DDS的频率输入字计算。,注意要取整,有时会有误差。,【例12-5】-简易频率合成器-DDS(32bit频率字,1024points10bitout)-ForGW48-CK-Mode:No.1libraryieee;useieee.std_logic_1164.all;entityddsallisport(sysclk:instd_logic;-系统时钟ddsout:outstd_logic_vector(9downto0);-DDS输出-GW48接口sel:instd_logic;-输入频率字高低16位选择selok:instd_logic;-选择好信号pfsel:instd_logic;-输入频率、相位选择-频率/相位字输入(与sel、selok配合使用)fpin:instd_logic_vector(15downto0);endddsall;architecturebehaveofddsalliscomponentddscis-DDS主模块接下页,generic(freq_width:integer:=32;-输入频率字位宽phase_width:integer:=12;-输入相位字位宽adder_width:integer:=32;-累加器位宽romad_width:integer:=10;-正弦ROM表地址位宽rom_d_width:integer:=10-正弦ROM表数据位宽);port(clk:instd_logic;-DDS合成时钟freqin:instd_logic_vector(freq_width-1downto0);-频率字输入phasein:instd_logic_vector(phase_width-1downto0);-相位字输入ddsout:outstd_logic_vector(rom_d_width-1downto0);-DDS输出endcomponentddsc;signalclkcnt:integerrange4downto0;-分频器signalclk:std_logic;signalfreqind:std_logic_vector(31downto0);-频率字signalphaseind:std_logic_vector(11downto0);-相位字begini_ddsc:ddsc-例化DDSCportmap(clk=clk,ddsout=ddsout,phasein=phaseind,freqin=freqind);clk=sysclk;接下页,process(sysclk)begin-GW48-CK模式1;频率字的输入if(sysclkeventandsysclk=1)thenif(selok=1andpfsel=0)thenif(sel=1)thenfreqind(31downto16)=fpin;elsefreqind(15downto0)=fpin;endif;elsif(selok=1andpfsel=1)thenphaseind=log2(CLK_DIV)cw:integer:=11);PORT(clk:INSTD_LOGIC;resetL:INSTD_LOGIC;bclk:OUTSTD_LOGIC);ENDbaud;ARCHITECTUREbehvOFbaudISconstantCLK_DIV_coef:integer:=XTAL_CLK/(BAUD*16*2);SIGNALclk_div:STD_LOGIC_VECTOR(cw-1downto0);signalbclk_t:std_logic;BEGINprocess(clk,resetL)接下页,beginif(resetL=0)thenclk_div0);bclk_t0);bclk_t=notbclk_t;elseclk_div=clk_div+1;endif;endif;endprocess;bclk=bclk_t;endbehv;,2.UART接收器,图12-28UART接收状态机,3.UART发送器,图12-29UART发送状态机,4.UART设计总模块,图12-30UART总模块RTL图,下对UART总模块中涉及的外部端口作简要说明:,时钟信号clk(输入),复位信号resetL(输入),16时钟bclk(输出),UART发送txd(输出),发送缓冲xbuf(输入),发送命

温馨提示

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

评论

0/150

提交评论