CPLD 實(shí)現 GPIB 控制器的設計
圖 1 AH 功能狀態(tài)圖
其狀態(tài)轉換的 VHDL 語(yǔ)言描述如下:
process(c_state,n_state)
begin AIDS='0';ANRS='0';AWNS='0';ACDS='0';ACRS='0'; case c_state is
when s1=>AIDS='1';NRFD='1';NDAC='1';
IF (ATN OR LACS OR LADS)='1' then n_state=s2;
else n_state=s1; end if;
when s2=>ANRS='1';NRFD='0';NDAC='0';
IF ((ATN OR rdy) and not tcs)= '1' then n_state=s3;
elsif DAV='1' then n_state=s5;
else n_state=s2; end if;
when s3=>ACRS='1';NRFD='1';NDAC='0'; IF DAV='1' then n_state=s4;
ELSIF (NOT ATN AND NOT rdy)='1' THEN n_state=s2;
else n_state=s3; end if;
when s4=>ACDS='1';NRFD='0';NDAC='0';
IF ((ATN AND T3) OR (NOT ATN AND NOT rdy))='1' THEN n_state=s5;
else n_state=s4; end if;
when s5=>AWNS='1';NRFD='0';NDAC='1'; IF DAV='0' then n_state=s2;
else n_state=s5; end if;
end case;
end process; 根據儀器的具體要求,由于大多數測試系統只要求被遠控,并不要求控功能,而并查功
能在系統組建中屬于可選項,很少用到,為了簡(jiǎn)化系統,設計中徹底去掉此兩項功能。其他
功能模塊包括:講者功能(T)、聽(tīng)者功能(L)、源方掛鉤功能(SH)、受方掛鉤功能(AH)、 服務(wù)請求功能(SR)、、遠控本控功能(RL)、設備觸發(fā)功能(DT)和設備清除功能(DC)。
其設計原理與 AH 相同,在這里就不做詳細論述。
2.4 輔助命令譯碼器與多線(xiàn)消息譯碼器
1.輔助命令譯碼器通過(guò)對輔助命令寄存器 F0 到 F4 位的譯碼來(lái)生成輔助命令。 輔助命令共有 stactic 和 pulse 兩種,即靜態(tài)和脈沖兩種信號,靜態(tài)命令用電平的高低來(lái)表示。而動(dòng)態(tài)命令則通過(guò)一個(gè)周期的方波脈沖信號來(lái)產(chǎn)生,要求脈沖命令至少在寫(xiě)完輔助命令 寄存器后保持一個(gè)周期。我們通過(guò) VHDL 語(yǔ)言來(lái)完成本模塊的設計。
2.多線(xiàn)消息是處于相互排斥的編碼集中但又公用一組信號線(xiàn)來(lái)傳遞的消息。在母線(xiàn)上,
每一時(shí)刻只能傳遞一條多線(xiàn)消息(一個(gè)消息拜特)。多線(xiàn)消息在遠地消息譯碼單元內進(jìn)行譯碼。 在這個(gè)譯碼單元,通過(guò)消息傳遞單元(DIO 線(xiàn))來(lái)接收母線(xiàn)上的消息。消息譯碼單元僅在命令工作方式下(ATN=真)期間起作用。這樣的接口消息可能是地址、通令、專(zhuān)令或副令之一。
在數據工作方式(ATN=假)中,數據線(xiàn)上攜帶器件消息,這時(shí)譯碼單元不起作用。在本 GPIB
控制器設計中,此模塊還包含了地址比較器,這樣可以得到內部狀態(tài)機所需的與地址相關(guān)的 信號。用 VHDL 語(yǔ)言完成其設計,并例化成模塊。
評論