2013-01-22 23 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

相关问题