當前位置:編程學習大全網 - 編程語言 - 基於FPGA的AD0809采樣控制器仿真代碼設計

基於FPGA的AD0809采樣控制器仿真代碼設計

實驗壹中,ADC0809的采樣控制電路用狀態機實現。

壹、實驗的目的:

用學習狀態機實現A/D轉換器ADC0809的采樣控制電路。

二、原則:

ADC0809是壹款8位CMOS模數轉換器。芯片上有8個模擬開關,可以控制8個模擬信號中的壹個進入轉換器。ADC0809的分辨率為8位,轉換時間約為100us。它有8個帶鎖存控制的多通道開關,輸出由三態緩沖器控制,由5V單電源供電。

主要控制信號描述:如圖1所示,START為轉換開始信號,高電平有效;ALE是3位通道選擇地址(ADDC、ADDB、ADDA)信號的鎖存信號。當模擬量被送到壹個輸入端子(如IN1或IN2等)時。),由3位地址信號選擇,地址信號由ALE鎖存;EOC是轉換情況的狀態信號(類似於AD574的狀態)。當轉換開始約100us時,EOC產生壹個負脈沖,表示轉換結束。在EOC的上升沿之後,如果輸出使能信號OE被設置為高電平,則三態緩沖器被控制打開,並且轉換後的8位數據結果被輸出到數據總線。至此,ADC0809的壹次轉換結束。

圖1

三、實驗內容:

1,使用MAX+plusII進行例3-1的文本編輯輸入和模擬測試;給出了仿真波形。最後鎖定並測試引腳,硬件驗證例3-1對ADC0809的電路控制功能。

2.根據圖2-12,建議pin鎖為:START接PIO34,OE接PIO35,EOC接PIO8,ALE接PIO33,狀態機時鐘CLK接clock0(PIN2,可選“65536Hz”或更高),ADDA接Pio 32(ADDB和ADDC都接GND),ADC。

3.如果目標器件是EPF10K10,建議選擇5號實驗電路圖(即ADC0809的轉換時鐘CLK已經預先接入了750KHz的頻率),用兩個短路帽將實驗系統左下角所選管腳的“轉換結束”和“A/D使能”短路。下載完目標文件後,可以用螺絲刀轉動實驗系統左下角的電位器,為ADC0809提供壹個變化的模擬信號進行測試。此時,ADC0809采樣輸出的數字值將由數碼管8和7 (16)顯示。

示例3-1

圖書館IEEE

使用IEEE。STD_LOGIC_1164。所有;

實體ADCINT是

端口(D

:在STD_LOGIC_VECTOR中(7向下到0);-0809的8位轉換數據輸出

CLK,平等機會委員會:在

STD _ LOGIC- CLK是轉換工作時鐘。

LOCK1,ALE,START,OE,ADDA:OUT STD _ LOGIC;

Q

:OUT STD_LOGIC_VECTOR(7向下到0)

);

END ADCINT

廣告的建築行為

類型狀態為(st0,st1,

st2、st3、st4、st5、st6);-定義每個狀態子類型。

信號當前狀態,下壹個狀態:狀態

:= st0

SIGNAL REGL:STD _ LOGIC _ VECTOR(7 down to 0);

信號鎖:STD _ LOGIC轉換後的數據輸出鎖存時鐘信號。

開始

ADDA & lt= '1';lock 1 & lt;=鎖定;

PRO:進程(當前狀態,EOC)開始

-指定狀態轉換的模式。

案例當前狀態為

當st0 = & gt

ALE & lt='0';開始& lt='0';OE & lt='0';鎖定& lt='0' ;next _ state & lt= ST 1;

當st1 = >

ALE & lt='1';開始& lt='0';OE & lt='0';鎖定& lt='0' ;next _ state & lt= st2

當st2 = & gt

ALE & lt='0';開始& lt='1';OE & lt='0';鎖定& lt='0' ;next _ state & lt= st3

當st3 = & gt

ALE & lt='0';開始& lt='0';OE & lt='0';鎖定& lt='0';

IF (EOC='1 ')那麽next _ state & lt=

st3-測試EOC的下降沿

ELSE next _ state & lt=

st4

結束IF;

當st4= >

ALE & lt='0';開始& lt='0';OE & lt='0';鎖定& lt='0';

IF (EOC='0 ')那麽next _ state & lt= st4-測試EOC的上升沿,=1表示轉換結束。

ELSE next _ state & lt=

st5-繼續等待

結束IF;

當st5 = & gt

ALE & lt='0';開始& lt='0';OE & lt='1';鎖定& lt='0';next _ state & lt= st6

當st6= >

ALE & lt='0';開始& lt='0';OE & lt='1';鎖定& lt='1';next _ state & lt= st0

當別人= & gt

ALE & lt='0';開始& lt='0';OE & lt='0';鎖定& lt='0';next _ state & lt= st0

結束案例;

結束進程PRO

流程(CLK)

開始

如果(CLK事件和CLK='1 ')那麽

當前狀態& lt= next _ state-在時鐘的上升沿,轉換到下壹個狀態。

結束IF;

結束進程;

-由信號current_state將當前狀態值帶出本進程,進入pro進程。

PROCESS (LOCK) -在此過程中,在LOCK的上升沿,轉換後的數據被鎖定。

開始

如果LOCK='1 '和LOCK '事件,則REGL & lt= D;

結束IF;

結束進程;

Q & lt= REGL

結束行為;

四、思考問題:

在不改變原代碼功能的情況下,將例3-1表示為直接輸出狀態碼的狀態機。

動詞 (verb的縮寫)實驗報告:

根據以上實驗要求、實驗內容和實驗思維問題,寫壹篇實驗報告。

  • 上一篇:ERP實施顧問具備哪些特殊的能力?
  • 下一篇:初中生科技小發明
  • copyright 2024編程學習大全網