0

Spartan 3E キットを持っています。そのキットには 4 つのスイッチがあり、4 つのプッシュ ボタンがあります。

私の論文では 16 ビット入力が必要ですが、8 ビットに変換します。

今私の問題は、4つのスイッチがあり、4ビットしか入力できず、プッシュボタンを使用せずに他の4ビットを入力できることです。

Spartan 3E キットを使用して、外部インターフェイスを使用して余分な 4 ビットを与える方法を知っている人がいたら、よろしくお願いします。

4

2 に答える 2

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 は EDK Platform Studio の Base System Builder の一部として利用できるようで、MicroBlaze ソフトコアでコードを記述してイーサネットと通信できます。

于 2013-01-22T21:55:20.127 に答える
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 ステートメントの上半分を切り取るだけです。

于 2013-01-23T13:52:17.697 に答える