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; 根據(jù)儀器的具體要求,由于大多數(shù)測試系統(tǒng)只要求被遠(yuǎn)控,并不要求控功能,而并查功
能在系統(tǒng)組建中屬于可選項(xiàng),很少用到,為了簡化系統(tǒng),設(shè)計(jì)中徹底去掉此兩項(xiàng)功能。其他
功能模塊包括:講者功能(T)、聽者功能(L)、源方掛鉤功能(SH)、受方掛鉤功能(AH)、 服務(wù)請(qǐng)求功能(SR)、、遠(yuǎn)控本控功能(RL)、設(shè)備觸發(fā)功能(DT)和設(shè)備清除功能(DC)。
其設(shè)計(jì)原理與 AH 相同,在這里就不做詳細(xì)論述。
2.4 輔助命令譯碼器與多線消息譯碼器
1.輔助命令譯碼器通過對(duì)輔助命令寄存器 F0 到 F4 位的譯碼來生成輔助命令。 輔助命令共有 stactic 和 pulse 兩種,即靜態(tài)和脈沖兩種信號(hào),靜態(tài)命令用電平的高低來表示。而動(dòng)態(tài)命令則通過一個(gè)周期的方波脈沖信號(hào)來產(chǎn)生,要求脈沖命令至少在寫完輔助命令 寄存器后保持一個(gè)周期。我們通過 VHDL 語言來完成本模塊的設(shè)計(jì)。
2.多線消息是處于相互排斥的編碼集中但又公用一組信號(hào)線來傳遞的消息。在母線上,
每一時(shí)刻只能傳遞一條多線消息(一個(gè)消息拜特)。多線消息在遠(yuǎn)地消息譯碼單元內(nèi)進(jìn)行譯碼。 在這個(gè)譯碼單元,通過消息傳遞單元(DIO 線)來接收母線上的消息。消息譯碼單元僅在命令工作方式下(ATN=真)期間起作用。這樣的接口消息可能是地址、通令、專令或副令之一。
在數(shù)據(jù)工作方式(ATN=假)中,數(shù)據(jù)線上攜帶器件消息,這時(shí)譯碼單元不起作用。在本 GPIB
控制器設(shè)計(jì)中,此模塊還包含了地址比較器,這樣可以得到內(nèi)部狀態(tài)機(jī)所需的與地址相關(guān)的 信號(hào)。用 VHDL 語言完成其設(shè)計(jì),并例化成模塊。
2.5 三態(tài) I/O 通道
需要注意的是芯片數(shù)據(jù)通道中八條數(shù)據(jù)線與控制數(shù)據(jù)流向的八條控制線都是雙向的,所以必須對(duì) I/O 通道進(jìn)行設(shè)置。實(shí)現(xiàn)雙向總線,就需要使用可編程邏輯器件的雙向口構(gòu)造雙向
三態(tài)總線。三態(tài)總線的實(shí)現(xiàn),需要使用三態(tài)緩沖器,實(shí)現(xiàn)高、低電平和高阻三個(gè)狀態(tài)。基于ALTERA 公司的 CPLD 系列器件的特點(diǎn),我們?cè)谠O(shè)計(jì)的時(shí)候,內(nèi)部避免使用雙向的三態(tài)總線, 將雙向的信號(hào)分別直接引到外部。在外部設(shè)計(jì)雙向三態(tài)總線。設(shè)計(jì)中采用圖形方式輸入,利用參數(shù)化模塊庫(LPM)實(shí)現(xiàn)。這種方法尤為清晰簡便。如圖所示:

?
圖 2 三態(tài)總線的實(shí)現(xiàn)
在這里用 TE 信號(hào)來作為三態(tài)總線的方向控制信號(hào)。不考慮控功能,當(dāng)本設(shè)備處于并行點(diǎn) 名狀態(tài),或者作為非命令數(shù)據(jù)的源接受方時(shí),TE 信號(hào)為真,即 TE=PPAS+~SIDS。
評(píng)論