2013-01-22 27 views
0

我有一個Spartan 3E套件。在那個套件中有4個開關,那裏有4個按鈕。給8位輸入Spartan 3E套件

對於我的論文我需要16位輸入,但我轉換爲8位。

現在我的問題是我有4個開關,我只能給輸入4位,其他4位無法使用按鈕我怎麼給輸入。

如果任何人有任何想法,請高級謝謝我怎樣才能使用外部接口, 使用Spartan 3E套件提供額外的4位。

回答

2

你有大量的可用選項,您:

http://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdf

顯然你已經內置的按鈕和開關你提到,有一個旋轉按鈕,你可以使用。這裏有一些其他的選項沒有完全內置,但你可以很容易地使用(首先是最困難的選項):

來自Hirose 100針FX2邊緣連接器的43個I/O,您可以將額外的按鈕/開關掛到這些I/O上。然後編寫VHDL來監視I/O,就像內置按鈕/開關一樣。

RS-232串行端口,將其插入PC上的串行端口並打開終端程序與其通話,看看會發生什麼。同樣另一VHDL塊需要得到它的工作,但在這裏是一個開始:

http://forums.xilinx.com/t5/Xilinx-Boards-and-Kits/Rs232-port-on-Spartan-3-starter-board/td-p/19282

PS/2鍵盤接口,你可以插上鍵盤,你又需要添加一些VHDL邏輯來實際讀取鍵盤作爲證明這裏:

http://www.youtube.com/watch?v=aZeutF6d0Z4

10/100以太網物理層接口,你可以談論它在以太網上,看起來像MAC是availab作爲EDK Platform Studio的基本系統生成器的一部分,您可以在MicroBlaze軟核上編寫代碼來交談以太網!

+0

謝謝先生,我的幫助,先生在哪裏Hirose 100針FX2邊緣連接器存在。 – Damodar

1

如果您不需要快速調整輸入,只需使用按鈕將開關鎖定到您自己的矢量的4位部分即可。例如(在16位向量讀取):

process(clk) 
begin 
    if(rising_edge(clk)) then 
     case pushbuttons is 
      when "0001" => 
       data(15 downto 12) <= switches; 
      when "0010" => 
       data(11 downto 8) <= switches; 
      when "0100" => 
       data(7 downto 4) <= switches; 
      when "1000" => 
       data(3 downto 0) <= switches; 
      when others => 
     end case; 
    end if; 
end process; 

如果你只需要8位輸入,就砍掉了case語句的上半部分。

+0

謝謝先生。我清楚地理解這個概念。我認爲它會起作用。 – Damodar

+0

先生,但我認爲,隨着我不斷給8位我會得到一些問題。我的論文的主要目的是確定胎兒的心臟問題,因爲我必須不斷給200個8位信號。我可以用這個輸入。 – Damodar

+0

我不完全確定你的意思,但是如果你需要輸入200個8位數字,我只需要使用串行鏈接,然後從PC上傳輸數字。在Chris Desjardins的答案中嘗試關於RS-232連接的鏈接。 – sonicwave

相關問題