【正文】
39。139。END IF。ELSE S1=S1+39。139。END IF。ELSE S0=S0+39。139。END IF。 ELSIF S0/=0000 OR S1/=0000 OR S2/=0000 OR S3/=0000 OR S4/=0000 OR S5/=0000 THEN Q0=S0。Q1=S1。Q2=S2。Q3=S3。Q4=S4。Q5=S5。 S0=0000。 S1=0000。 S2=0000 。 S3=0000 。 S4=0000 。 s5=0000。 END IF。END IF。END PROCESS。PROCESS(Q0,Q1,Q2,Q3,Q4,Q5,CLK3M,S5)BEGINIF(Q30000 OR Q40000)THEN SMG4=Q4。SMG3=Q3。SMG2=Q2。SMG1=Q1。HZ=39。039。KHZ=39。139。ELSE SMG4=Q3。SMG3=Q2。SMG2=Q1。SMG1=Q0。HZ=39。139。KHZ=39。039。END IF。IF (S5=1111)THEN 超量程警告BEEF=39。139。ELSE BEEF=39。039。END IF。END PROCESS。END ONE。占空比計(jì)算模塊LIBRARY IEEE。USE 。USE 。USE 。ENTITY ZK ISPORT(CLKIN,CLK3M:IN STD_LOGIC。 ZKOUT0,ZKOUT1:OUT STD_LOGIC_VECTOR(3DOWNTO 0))。END ZK。ARCHITECTURE ONE OF ZK ISSIGNAL ZKB:INTEGER RANGE 0 TO 99。占空比SIGNAL CNT1:INTEGER RANGE 0 TO 3000000:=0。SIGNAL CNQ1:INTEGER RANGE 0 TO 3000000:=0。SIGNAL CNT2:INTEGER RANGE 0 TO 3000000:=0。SIGNAL CNQ2:INTEGER RANGE 0 TO 3000000:=0。SIGNAL CLKOUT:STD_LOGIC。SIGNAL Z1:STD_LOGIC_VECTOR(3 DOWNTO 0)。SIGNAL Z0:STD_LOGIC_VECTOR(3 DOWNTO 0)。BEGIN PROCESS(CLKIN)BEGINIF(RISING_EDGE(CLKIN))THEN CLKOUT=NOT CLKOUT。END IF。END PROCESS。PROCESS(CLKIN,CLK3M)BEGINIF(RISING_EDGE(CLK3M))THEN IF CLKIN=39。139。 THEN CNT1=CNT1+1。ELSIF CNT1/=0 THEN CNQ1=CNT1。CNT1=0。 END IF。END IF。END PROCESS。PROCESS(CLKOUT,CLK3M)BEGINIF(RISING_EDGE(CLK3M))THEN IF CLKOUT=39。139。 THEN CNT2=CNT2+1。 ELSIF CNT2/=0 THEN CNQ2=CNT2。CNT2=0。 END IF。END IF。END PROCESS。ZKB=CNQ1*100/CNQ2。Z1=CONV_STD_LOGIC_VECTOR((ZKB REM 10),4)。Z0=CONV_STD_LOGIC_VECTOR(((ZKB/10) REM 10),4)。PROCESS(CLK3M)—鎖存器BEGINIF(RISING_EDGE(CLK3M))THENIF(CNT0=3000000)THEN CNT0=0。 ZKOUT0=Z0。 ZKOUT1=Z1。 ELSE CNT0=CNT0+1。 END IF。END IF。END PROCESS。END ONE 。選擇顯示模塊LIBRARY IEEE。USE 。USE 。ENTITY MUX2 ISPORT(SEL:IN STD_LOGIC。 A0,A1,A2,A3,A4,A5:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 B0,B1,B2,B3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。END ENTITY。ARCHITECTURE ONE OF MUX2 ISBEGINPROCESS(SEL,A0,A1,A2,A3,A4,A5)BEGINIF SEL=39。039。 THEN B0=A0。B1=A1。B2=A2。B3=A3。ELSE B0=0000。B1=0000。B2=A5。B3=A4。END IF。END PROCESS。END ONE。整體原理圖:評 語 成績: