【正文】
xulie。COMPONENT xulie PORT(CLK0,CLR:IN STD_LOGIC。 CLK_100: OUT STD_LOGIC)。END lihua。 START:IN STD_LOGIC。USE 。USE 。 END ARCHITECTURE one_lihua。 U2:xulie PORT MAP (temp1,START,temp2)。SIGNAL temp1,temp2:STD_LOGIC。 data: out std_logic_vector (7 DOWNTO 0) )。COMPONENT CLK1 PORT( CLOCK: IN STD_LOGIC。 Q0:OUT STD_LOGIC)。END COMPONENT CLKDIV。ARCHITECTURE one_lihua OF lihua IS COMPONENT CLKDIV PORT(CLK: IN STD_LOGIC。 data1:out std_logic_vector (7 DOWNTO 0))。ENTITY lihua IS PORT(CLK:IN STD_LOGIC。USE 。仿真圖如下所示:4) 元件例化 元件例化外部結(jié)構(gòu)圖如下所示: CLK data1 START程序代碼:LIBRARY IEEE。data=DOUT。END CASE。 WHEN 1100011 =DOUT= 01110111。 WHEN 1100001 =DOUT= 01100111。 WHEN 1011111 =DOUT= 01011000。 WHEN 1011101 =DOUT= 01001001。 WHEN 1011011 =DOUT= 00111011。 WHEN 1011001 =DOUT= 00101110。 WHEN 1010111 =DOUT= 00100010。 WHEN 1010101 =DOUT= 00011000。 WHEN 1010011 =DOUT= 00001111。 WHEN 1010001 =DOUT= 00001000。 WHEN 1001111 =DOUT= 00000100。 WHEN 1001101 =DOUT= 00000001。 WHEN 1001011 =DOUT= 00000000。 WHEN 1001001 =DOUT= 00000001。 WHEN 1000111 =DOUT= 00000100。 WHEN 1000101 =DOUT= 00001000。 WHEN 1000011 =DOUT= 00001111。 WHEN 1000001 =DOUT= 00011000。 WHEN 0111111 =DOUT= 00100010。 WHEN 0111101 =DOUT= 00101110。 WHEN 0111011 =DOUT= 00111011。 WHEN 0111001 =DOUT= 01001001。 WHEN 0110111 =DOUT= 01011000。 WHEN 0110101 =DOUT= 01100111。 WHEN 0110011 =DOUT= 01110111。 WHEN 0110001 =DOUT= 10000111。 WHEN 0101111 =DOUT= 10010111。 WHEN 0101101 =DOUT= 10100110。 WHEN 0101011 =DOUT= 10110101。 WHEN 0101001 =DOUT= 11000011。 WHEN 0100111 =DOUT= 11010000。 WHEN 0100101 =DOUT= 11011100。 WHEN 0100011 =DOUT= 11100110。 WHEN 0100001 =DOUT= 11101111。 WHEN 0011111 =DOUT= 11110110。 WHEN 0011101 =DOUT= 11111010。 WHEN 0011011 =DOUT= 11111101。 WHEN 0011001 =DOUT= 11111111。 WHEN 0010111 =DOUT= 11111101。 WHEN 0010101 =DOUT= 11111010。 WHEN 0010011 =DOUT= 11110110。 WHEN 0010001 =DOUT= 11101111。 WHEN 0001111 =DOUT= 11100110。 WHEN 0001101 =DOUT= 11011100。 WHEN 0001011 =DOUT= 11010000。 WHEN 0001001 =DOUT= 11000011。 WHEN 0000111 =DOUT= 10110101。 WHEN 0000101 =DOUT= 10100110。 WHEN 0000011 =DOUT= 10010111。 WHEN 0000001 =DOUT= 10000111。END PROCESS。 END IF。 else countda=countda+39。139。) then countda=0000000。) THEN IF (CODE=39。EVENT AND clock= 39。 正弦波數(shù)據(jù) SIGNAL countda:std_logic_vector (6 DOWNTO 0)。 END CLK1 。 CODE: IN STD_LOGIC。USE 。USE 。本設(shè)計(jì)中,數(shù)字基帶信號(hào)與ASK調(diào)制信號(hào)的對(duì)應(yīng)關(guān)系為“0”對(duì)應(yīng)0,“1”,此二載波的頻率可以方便地通過軟件修改。狀態(tài)機(jī)共有8位輸出(Q7~Q0),經(jīng)DAC變換為模擬信號(hào)輸出。按前面的設(shè)計(jì)思路,本實(shí)現(xiàn)方案共需100個(gè)狀態(tài),分別為s1~s100。實(shí)驗(yàn)表明,采用8位分辨率和每周期100個(gè)采樣點(diǎn)可以達(dá)到相當(dāng)不錯(cuò)的效果。本實(shí)驗(yàn)中每個(gè)采樣點(diǎn)采用8位量化編碼,即8位分辨率。本例要求得到的是兩個(gè)不同頻率的正弦信號(hào),實(shí)驗(yàn)中對(duì)正弦波每個(gè)周期采樣100個(gè)點(diǎn),即采樣速率為原正弦信號(hào)頻率的100倍,因此完全可以在接收端將原正弦信號(hào)不失真地恢復(fù)出來,從而可以在接收端對(duì)ASK信號(hào)正確地解調(diào)。仿真圖如下:3)載波信號(hào)發(fā)生器(正弦波發(fā)生器)用數(shù)字電路和DAC變換器可以產(chǎn)生要求的模擬信號(hào)。 END PROCESS。)THEN Q0=Z。EVENT AND CLK0=39。END PROCESS。039。139。039。039。139。039。139。039。END PROCESS。 END IF。139。EVENT)THEN IF(COUNT=111)THEN COUNT=000。139。)THEN COUNT=000。 BEGINPROCESS(CLK0,CLR) BEGIN IF(CLR=39。 SIGNAL Z:STD_LOGIC :=39。END xulie。ENTITY xulie IS PORT(CLK0,CLR:IN STD_LOGIC。USE 。基帶信號(hào)發(fā)生器VHDL描述如下:LIBRARY IEEE。 75 信號(hào)跳變電路 序列輸出輸入時(shí)鐘 計(jì)數(shù)器基帶信號(hào)發(fā)生器工作原理: 消除毛刺 復(fù)位CLR 當(dāng)有時(shí)鐘信號(hào)時(shí),計(jì)數(shù)器計(jì)數(shù)一次,如此便產(chǎn)生了所需要的基帶信號(hào)。引入跳變檢測(cè)主要是為了便于觀察,確保示波器上顯示為一個(gè)連續(xù)的波形。m序列產(chǎn)生器的電路結(jié)構(gòu)如圖74所示。本例用一種帶有兩個(gè)反饋抽頭的3級(jí)反饋移位寄存器,得到一串“1110010”循環(huán)序列,并采取措施防止進(jìn)入全“0”狀態(tài)。仿真圖如下所示:2)基帶信號(hào)發(fā)生器.m序列產(chǎn)生器m序列是偽隨機(jī)序列的一種,它的顯著特點(diǎn)是:隨機(jī)特性,預(yù)先可確定性,循環(huán)特性。 CLK_100 = CLK_temp。 END IF 。 ELSE count = count +1。)。) THEN IF(count=00110010) THEN count = (OTHERS =39。event AND CLK=39。