【正文】
STD_LOGIC。 SJOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0))。END。ARCHITECTURE BV OF SJB ISTYPE STATE IS (S0,S1)。SIGNAL ST:STATE。SIGNAL C:STD_LOGIC_VECTOR(9 DOWNTO 0)。BEGINPROCESS(CLK)BEGINIF CLK39。EVENT AND CLK=39。139。 THEN CASE ST IS WHEN S0 =IF C=1023 THEN ST=S1。ELSE C=C+33。ST=S0。END IF。 WHEN S1 =IF C=0 THEN ST=S0。ELSE C=C33。ST=S1。END IF。 END CASE。 SJOUT=C。 END IF。 END PROCESS。 END BV。4. 波形選擇單元程序LIBRARY IEEE。USE 。USE 。ENTITY XZ ISPORT(A,B:IN STD_LOGIC。 I1,I2,I3:IN STD_LOGIC_VECTOR(9 DOWNTO 0)。 O:OUT STD_LOGIC_VECTOR(9 DOWNTO 0) )。END ENTITY。ARCHITECTURE BV OF XZ ISSIGNAL Q:STD_LOGIC_VECTOR(1 DOWNTO 0)。BEGIN Q=A amp。 B。WITH Q SELECT O=I1 WHEN 01, I2 WHEN 10, I3 WHEN 11, ZZZZZZZZZZ WHEN OTHERS。 END。5.幅值調(diào)節(jié)單元程序.LIBRARY IEEE。USE 。ENTITY D_W ISPORT (C,D : IN STD_LOGIC。 D_OUT: OUT INTEGER RANGE 0 TO 1023。 D_IN: IN INTEGER RANGE 0 TO 1023 )。END。ARCHITECTURE BHV OF D_W ISSIGNAL NUM:STD_LOGIC_VECTOR (1 DOWNTO 0)。BEGINNUM=Camp。D。PROCESS(NUM)BEGINIF NUM=00 THEN D_OUT=D_IN/4。ELSIF NUM=01 THEN D_OUT=D_IN/2。ELSIF NUM=10 THEN D_OUT=D_IN。END IF。END PROCESS。END 。5. DA轉(zhuǎn)換單元程序LIBRARY IEEE。USE 。USE 。ENTITY DA ISPORT(DA_CS,DA_SCLK,DA_IN:OUT STD_LOGIC。CLK1:IN STD_LOGIC。Q:IN STD_LOGIC_VECTOR(9 DOWNTO 0))。END。ARCHITECTURE DAS OF DA ISTYPE STATE IS (S0,S1,S2,S3,S4)。SIGNAL ST:STATE。SIGNAL CNT:INTEGER:=0。SIGNAL CT,SCLK:STD_LOGIC。SIGNAL TMP : STD_LOGIC_VECTOR(11 DOWNTO 0)。BEGINPROCESS (CLK1)BEGINIF (CLK139。EVENT AND CLK1=39。139。) THEN CASE ST ISWHEN S0=CT=39。139。SCLK=39。039。CNT=0。ST=S1。WHEN S1=ST=S2。WHEN S2 =CT=39。039。SCLK=39。039。IF CNT=11 THEN ST=S3。 ELSE ST=S4。END IF。WHEN S3=CT=39。039。SCLK=39。139。CNT=CNT+1。ST=S2。WHEN S4=CT=39。139。SCLK=39。039。ST=S0。 END CASE。END IF。DA_SCLK=SCLK。DA_CS=CT。END PROCESS。PROCESS(SCLK)BEGINIF CT=39。139。 THENTMP(11 DOWNTO 2)=Q(9 DOWNTO 0)。TMP(1 DOWNTO 0)=00。ELSEIF(SCLK39。EVENT AND SCLK=39。139。) THENDA_IN=TMP(11)。TMP(11 DOWNTO 1)=TMP(10 DOWNTO 0)。END IF。END IF。END PROCESS。END。