CPLDCPLD8.1CPLDCPLDCPLDCPLDA/DD/A0.1Hz-50MHzCPLD116BCD2MAX+PLUS10.03ACEXEP1K100QC208-34CPLDEE-4(1)1000Hz1000Hz1MHzf=100MHz/8-11000Hz?K8-1212CPLD8-2FS8-2inclk40MHzfin0.1Hz50MHzFSkfsurveyainclk2HDLsubdesignfsurveya(inclk,fin:input;mf[25..0]:output;)variablema[26..0]:dff;fd:dff;st[1..0]:dff;mc[25..0],mf[25..0]:dff;beginma[].clk=inclk;fd.clk=inclk;st[].clk=inclk;mc[].clk=fin;mf[].clk=inclk;ifma[]==79999999thenma[]=0;fd=!fd;elsema[]=ma[]+1;fd=fd;213CPLDendif;casest[]iswhen0=mc[]=0;mf[]=mf[];iffdthenst[]=1;elsest[]=0;endif;when1=MF[]=MF[];iffdthenst[]=1;mc[]=mc[]+1;elsest[]=2;mc[]=mc[];endif;when2=mf[]=mc[];mc[]=mc[];st[]=0;endcase;end;fsurvb1MHzinclk1MHzFSHDLsubdesignfsurvb(inclk,fin:input;mf[25..0]:output;)variablema[5..0],mf[25..0],mc[25..0]:dff;mfd:dff;st[1..0]:dff;beginma[].clk=inclk;mfd.clk=inclk;st[].clk=inclk;mf[].clk=inclk;mc[].clk=mfd;ifma[]==19thenma[]=0;mfd=!mfd;214CPLDelsema[]=ma[]+1;mfd=mfd;endif;casest[]iswhen0=mf[]=mf[];mc[]=0;iffinthenst[]=1;elsest[]=0;endif;when1=mf[]=mf[];iffinthenmc[]=mc[]+1;st[]=1;elsest[]=2;mc[]=mc[];endif;when2=mf[]=mc[];mc[]=mc[];st[]=0;endcase;end;div10mcf=100MHz/HDLincludedivide32.inc;subdesigndiv10mc(inclk,mf[25..0]:input;mfo[25..0]:output;)variablemdiv32:divide32;beginmdiv32.inclk=inclk;mdiv32.a[]=100000000;mdiv32.b[]=(0,mf[]);mfo[]=mdiv32.c[25..0];end;div10mc32divide32,divide32HDL215CPLDsubdesigndivide32(a[31..0],b[31..0],inclk:input;c[31..0]:output;)variablema[32..0],mb[32..0],dc[32..0]:dff;mc[2..0],md[4..0],c[31..0]:dff;begin(dc[],ma[],mb[],mc[],md[]).clk=inclk;c[].clk=inclk;casemc[]iswhen0=mb[]=(0,b[]);ma[]=(0,a[]);mc[]=1;md[]=md[];c[]=c[];when1=ma[]=ma[];c[]=c[];ifmb[]==0thenmc[]=0;md[]=md[];elsemd[]=md[]+1;ifmb[31]==gndthenforiin31to1generatemb[i]=mb[i-1];endgenerate;mc[]=1;elsemb[]=mb[];mc[]=2;endif;endif;when2=mb[]=mb[];md[]=md[];c[]=c[];ifma[]=mb[]thenma[]=ma[]-mb[];mc[]=4;dc[]=dc[]+1;elsemc[]=3;dc[]=dc[];ma[]=ma[];endif;when3=mc[]=4;c[]=c[];216CPLDfornin32to1generatema[n]=ma[n-1];dc[n]=dc[n-1];endgenerate;mb[]=mb[];md[]=md[]-1;when4=ma[]=ma[];dc[]=dc[];mb[]=mb[];c[]=c[];ifmd[]==1thenmc[]=5;md[]=md[];elsemc[]=2;md[]=md[];endif;when5=ma[]=ma[];c[]=c[];ifma[31]==vccthendc[]=dc[]+1;elsedc[]=dc[];endif;mc[]=6;when6=dc[]=dc[];mc[]=0;c[]=dc[31..0];endcase;end;selKKHDLsubdesignsel(mf[25..0],mfo[25..0],k:input;mfout[25..0]:output;)beginifkthenmfout[]=mf[];elsemfout[]=mfo[];endif;end;16tobcdBCDHDL217CPLDsubdesign16tobcd(mf[25..0],inclk:input;mout[31..0]:output;)variablema[25..0],mout[31..0]:dff;st[1..0]:dff;moutx[31..0]:dff;beginma[].clk=inclk;st[].clk=inclk;moutx[31..0].clk=inclk;mout[].clk=inclk;casest[]iswhen0=ma[]=mf[];st[]=1;mout[]=mout[];when1=mout[]=mout[];ifma[]99thenst[]=1;ma[]=ma[]-100;ifmoutx[11..8]==9thenmoutx[11..8]=0;ifmoutx[15..12]==9thenmoutx[15..12]=0;ifmoutx[19..16]==9thenmoutx[19..16]=0;ifmoutx[23..20]==9thenmoutx[23..20]=0;ifmoutx[27..24]==9thenmoutx[27..24]=0;moutx[31..28]=moutx[31..28]+1;elsemoutx[27..24]=moutx[27..24]+1;moutx[31..28]=moutx[31..28];endif;elsemoutx[23..20]=moutx[23..20]+1;moutx[31..24]=moutx[31..24];endif;elsemoutx[19..16]=moutx[19..16]+1;moutx[31..20]=moutx[31..20];endif;218CPLDelsemoutx[15..12]=moutx[15..12]+1;moutx[31..16]=moutx[31..16];endif;elsemoutx[11..8]=moutx[11..8]+1;moutx[31..12]=moutx[31..12];endif;elsemoutx[31..8]=moutx[31..8];ifma[]9thenst[]=1;ma[]=ma[]-10;moutx[7..4]=moutx[7..4]+1;elsemoutx[7..4]=moutx[7..4];moutx[3..0]=ma[3..0];st[]=2;endif;endif;when2=mout[]=moutx[];moutx[]=moutx[];st[]=0;endcase;end;decode7s78BCDmout[31..0]7SA[6..0]7SB[7..0]sela[3..0]selb[3..0]7sc[6..0]7sd[6..0]HZHDLsubdesigndecode7s(mout[31..0],inclk,k:input;7sa[6..0],7sb[7..0],sela[3..0],selb[3..0]:output;7sc[6..0],7sd[6..0]:output;)variablema[9..0],f,sta[1..0],stb[1..0],mda[3..0],mdb[3..0]:dff;begin7sc[]=h37;7sd[]=h6d;mda[].clk=inclk;mdb[].clk=inclk;ma[].clk=inclk;sta[].clk=f;stb[].clk=f;f.clk=inclk;ifma[]==1000thenma[]=0;f=!f;elsema[]=ma[]+1;f=f;endif;219CPLDsta[]=sta[]+1;stb[]=stb[]+1;casesta[]iswhen0=mda[]=mout[31..28];ifmout[31..28]==0thensela[]=0;elsesela[]=8;endif;when1=mda[]=mout[27..24];ifmout[31..24]==0thensela[]=0;elsesela[]=4;endif;when2=mda[]=mout[23..20];ifmout[31..20]==0thensela[]=0;elsesela[]=2;endif;when3=mda[]=mout[19..16];ifmout[31..16]==0thensela[]=0;elsesela[]=1;endif;endcase;casestb[]iswhen0=mdb[]=mout[15..12];ifmout[31..12]==0thenselb[]=0;elseselb[]=8;220CPLDendif;when1=mdb[]=mout[11..8];ifkthen7sb7=gnd;else7sb7=vcc;endif;ifmout[31..8]==0thenselb[]=0;elseselb[]=4;endif;when2=mdb[]=mout[7..4];selb[]=2;when3=mdb[]=mout[3..0];selb[]=1;endcase;tablemda[]=7sa[];0=h3f;1=h06;2=h5b;3=h4f;4=h66;5=h6d;6=h7d;7=h07;8=h7f;9=h6f;endtable;tablemdb[]=7sb[];0=h3f;1=h06;2=h5b;3=h4f;4=h66;221CPLD5=h6d;6=h7d;7=h07;8=h7f;9=h6f;endtable;end;CPLDEE-48.2CPLDCPLD4X4inclk22MHz5mskeyclkoutkeyclkout50mschuclkout,8-38-45ms1122K11122K21122K31122K41122K51122K61122K71122K81122K91122K101122K111122K121122K131122K141122K151122K16vcc12345RKA4.7KP120P121P122P125P12P12P12P13KR1100KR2100KR3100KR4100KR5100KR6100KR