【正文】
單頻輸出時 , 可通過 12位 2進制預置數(shù)數(shù)控輸出的波形頻率;掃頻輸出時 , 由另一時鐘 CLOCK5決定掃頻速度 。 如果希望對輸出信號進行濾波 , 將 GW48系統(tǒng)左下角的撥碼開關的 “ 8” 向下?lián)?, 則波形濾波輸出 , 向上撥則未濾波輸出 , 這可從輸出的波形看出 。 (3) 實驗內容 1: 根據(jù)例 714, 713和數(shù)據(jù)例 712, 完成波形發(fā)生器設計 , 仿真測試及的硬件測試 。 l IOUT1/IOUT2(PIN 1 12): 電流輸出端 。 WR WR2(PIN 18): 寫信號 2, 低電平有效 。 (5) 實驗報告: 根據(jù)以上的實驗要求 、 實驗內容和實驗思考題寫出實驗報告 。這時數(shù)碼管 8和 7將顯示 ADC0809采樣的數(shù)字值 ( 16進制 ) , 數(shù)據(jù)來自 FPGA的輸出 。 即使 0809工作使能 , 及使 FPGA能接受來自 0809轉換結束的信號 ( 對于GW48CK系統(tǒng) , 左下角選擇插針處的 “ 轉換結束 ” 和 “ A/D使能 ” 用二短路帽短接 ) 。 X康芯科技 實 驗 與 設 計 72 用狀態(tài)機對 ADC0809的采樣控制電路實現(xiàn) (3) 實驗內容: 利用 MAX+plusII對例 72進行文本編輯輸入和仿真測試;給出仿真波形 。 ADC0809是 CMOS的 8位 A/D轉換器 , 片內有 8路模擬開關 , 可控制 8個模擬量中的一個進入轉換器中 。 (5) 實驗思考題: 如果待檢測預置數(shù)必須以右移方式進入序列檢測器 ,寫出該檢測器的 VHDL代碼 (兩進程符號化有限狀態(tài)機 ), 并提出測試該序列檢測器的實驗方案 。 (3) 實驗內容 1: 仔細完成習題 73的全部內容 , 利用 MAX+plusII對例 716進行文本編輯輸入 、 仿真測試并給出仿真波形 , 了解控制信號的時序 ,最后進行引腳鎖定并完成硬件測試實驗 。 圖 733 習題 74狀態(tài)圖 X康芯科技 習 題 75 在不改變原代碼功能的條件下用兩種方法改寫例 72, 使其輸出的控制信號 (ALE、 START、 OE、 LOCK)沒有毛刺 。 要求 3:將 8位待檢測預置數(shù)作為外部輸入信號 , 即可以隨時改變序列檢測器中的比較數(shù)據(jù) 。 END PROCESS 。 END PROCESS 。 END IF 。 ELSE Q = 0 。 WHEN 5= IF DIN = D(2) THEN Q = 6 。 END IF 。 ELSE Q = 0 。 WHEN 1= IF DIN = D(6) THEN Q = 2 。139。139。 ARCHITECTURE behav OF SCHK IS SIGNAL Q : INTEGER RANGE 0 TO 8 。 USE 。由于這種檢測的關鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測中所收到的每一位碼都與預置數(shù)的對應碼相同。 END SYN。 END COMPONENT。 q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)。 類屬 數(shù)據(jù)讀出方式 字符串數(shù)據(jù)類型 lpm_hint : STRING )。 X康芯科技 接上頁 COMPONENT lpm_fifo 調用 LPM_FIFO聲明 GENERIC (lpm_width :NATURAL。 數(shù)據(jù)輸出 full : OUT STD_LOGIC )。 寫入請求 rdreq : IN STD_LOGIC 。 X康芯科技 編輯定制 LPM_FIFO模塊 圖 728 選擇 FIFO數(shù)據(jù)位寬為 8,深度為 512 LPM模塊的 VHDL文本方式調用 X康芯科技 編輯定制 LPM_FIFO模塊 LPM模塊的 VHDL文本方式調用 圖 729 719 fifo端口設置 X康芯科技 編輯定制 LPM_FIFO模塊 LPM模塊的 VHDL文本方式調用 圖 730 選擇 Area優(yōu)化方式和 EAB構建 X康芯科技 編輯定制 LPM_FIFO模塊 LPM模塊的 VHDL文本方式調用 圖 731單擊 “ Finish”后完成 X康芯科技 LPM_FIFO定制文件的仿真測試 【 例 715】 LIBRARY ieee。 END IF。 設定內部節(jié)點作為地址計數(shù)器 BEGIN PROCESS(CLK ) LPM_ROM地址發(fā)生器進程 BEGIN IF CLK39。 inclock : IN STD_LOGIC 。 ENTITY SINGT IS PORT ( CLK : IN STD_LOGIC。 END SYN。 q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) )。 X康芯科技 接上頁 lpm_outdata : STRING。 ARCHITECTURE SYN OF SINDATA IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0)。 ENTITY SINDATA IS PORT(address : IN STD_LOGIC_VECTOR (5 DOWNTO 0)。 3F:255 。 3B:245 。 37:217 。 33:174 。 2F:124 。 2B: 75 。 27: 34 。 23: 8 。 1F: 0 。 1B: 13 。 17: 43 。 13: 87 。 0F:137 。 0B:186 。 07:225 。 03:249 。 DATA_RADIX = DEC 。 END SYN。 data : IN STD_LOGIC_VECTOR (7 DOWNTO 0) )。 類屬 RAM地址線位寬 自然數(shù)數(shù)據(jù)類型 lpm_indata,lpm_address_control,lpm_outdata,lpm_hint : STRING)。 8位 RAM數(shù)據(jù)輸出 END RAM1。 9位地址輸入 inclock : IN STD_LOGIC 。 X康芯科技 狀態(tài)機剩余狀態(tài)處理 【 例 710】 ... alarm = (st0 AND (st1 OR st2 OR st3 OR st4 OR st5)) OR (st1 AND (st0 OR st2 OR st3 OR st4 OR st5)) OR (st2 AND (st0 OR st1 OR st3 OR st4 OR st5)) OR (st3 AND (st0 OR st1 OR st2 OR st4 OR st5)) OR (st4 AND (st0 OR st1 OR st2 OR st3 OR st5)) OR (st5 AND (st0 OR st1 OR st2 OR st3 OR st4)) 。 X康芯科技 狀態(tài)機剩余狀態(tài)處理 【 例 79】 ... TYPE states IS (st0, st1, st2, st3, st4, st_ilg1, st_ilg2 , st_ilg3)。 CONSTANT ST3 : STD_LOGIC_VECTOR(2 DOWNTO 0) := 011 。 X康芯科技 狀態(tài)位直接輸出型編碼 狀態(tài)編碼 圖 712 例 77狀態(tài)機工作時序圖 X康芯科技 狀態(tài)編碼 順序編碼 狀 態(tài) 順序編碼 一位熱碼編碼 STATE0 000 100000 STATE1 001 010000 STATE2 010 001000 STATE3 011 000100 STATE4 100 000010 STATE5 101 000001 表 72 編碼方式 X康芯科技 順序編碼 狀態(tài)編碼 【 例 78】 ... SIGNAL CRURRENT_STATE,NEXT_STATE: STD_LOGIC_VECTOR(2 DOWNTO 0 )。EVENT THEN REGL = D 。 END PROCESS REG 。EVENT AND CLK=39。 X康芯科技 WHEN OTHERS = next_state = st0。 EOC=1表明轉換結束 ELSE next_state = st2。 0809初始化 WHEN st1= next_state = st2。 OE=current_state(2)。139。 X康芯科技 CONSTANT st4 : STD_LOGIC_VECTOR(4 DOWNTO 0) := 00110 。 CONSTANT st0 : STD_LOGIC_VECTOR(4 DOWNTO 0) := 00000 。 c_state : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)。 USE 。 END PROCESS COM1 。EVENT AND CLK = 39。 END IF。 WHEN st4= IF DATAIN=39。039。 THEN Q2 :=10101。 ELSE Q2:=10100。 END IF。 X康芯科技 接上頁 BEGIN CASE STX IS WHEN st0= IF DATAIN=39。 END CASE 。139。039。139。039。139。 ELSIF CLK39。 SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0)。 Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0))。 END PROCESS COM1 。 ELSE Q=01101 。 END IF 。 WHEN st3= IF DATAIN = 39。139。 THEN Q = 10111 。 ELSE Q=01010 。 COM1: PROCESS(STX,DATAIN) BEGIN 輸出控制信號的進程 CASE STX IS END behav。 WHEN OTHERS = STX = st0。 WHEN st4= IF DATAIN = 39。 WHEN st3= IF DATAIN = 39。 WHEN st2 = IF DATAIN = 39。 WHEN st1 = IF DATAIN = 39。 THEN CASE STX IS X康芯科技 接上頁 WHEN st0 = IF DATAIN = 39。 THEN STX = ST0。 ARCHITECTURE behav OF MEALY1 IS TYPE states IS (st0, st1, st2, st3,st4)。 USE 。 END IF。END IF。END IF。END IF。END IF。 END IF。EVENT AND CLK=39。139。 END MOORE1。 USE 。039。039。OE=39。START=39。139。039。 。LOCK=39。 WHEN st2=ALE=39。039。139。OE=39。START=39。 END CASE 。 END IF 。 WHEN st2= IF (EOC=39。 END PROCESS LATCH1 。139。) THEN current_state=next_state。 END PROCESS COM 。139。039。 next_state = st4。LOCK=39。 WHEN st3= ALE=39。139。039。039。