【发布时间】:2018-02-19 13:41:09
【问题描述】:
我有一个 Spartan 3E 套件。在那个套件中有 4 个开关,有 4 个按钮。
对于我的论文,我需要 16 位输入,但我转换为 8 位。
现在我的问题是我有 4 个开关,我只能输入 4 位,而其他 4 位没有使用按钮,我该如何输入。
提前感谢,如果有人知道如何使用外部接口提供额外的 4 位, 使用 Spartan 3E 套件。
【问题讨论】:
标签: fpga
我有一个 Spartan 3E 套件。在那个套件中有 4 个开关,有 4 个按钮。
对于我的论文,我需要 16 位输入,但我转换为 8 位。
现在我的问题是我有 4 个开关,我只能输入 4 位,而其他 4 位没有使用按钮,我该如何输入。
提前感谢,如果有人知道如何使用外部接口提供额外的 4 位, 使用 Spartan 3E 套件。
【问题讨论】:
标签: fpga
您有很多选择:
http://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdf
显然你有你提到的内置按钮和开关,还有一个你可以使用的旋转按钮。以下是一些尚未完全内置但您可以轻松使用的其他选项(首先是难度最低的选项):
43 个 I/O 来自 Hirose 100 针 FX2 边缘连接器,您可以将其他按钮/开关连接到这些 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 的基础系统构建器的一部分使用,您可以在MicroBlaze 软核谈以太网!
【讨论】:
如果您不需要能够快速调整输入,您可以简单地使用按钮将开关锁定到向量中它们自己的 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 语句的上半部分即可。
【讨论】: