我有一个 Spartan 3E 套件。在那个套件中有 4 个开关,有 4 个按钮。
对于我的论文,我需要 16 位输入,但我转换为 8 位。
现在我的问题是我有 4 个开关,我只能输入 4 位,而其他 4 位没有使用按钮,我该如何输入。
如果有人知道如何使用 Spartan 3E 套件使用外部接口提供额外的 4 位,请提前致谢。
我有一个 Spartan 3E 套件。在那个套件中有 4 个开关,有 4 个按钮。
对于我的论文,我需要 16 位输入,但我转换为 8 位。
现在我的问题是我有 4 个开关,我只能输入 4 位,而其他 4 位没有使用按钮,我该如何输入。
如果有人知道如何使用 Spartan 3E 套件使用外部接口提供额外的 4 位,请提前致谢。
您有很多选择:
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 的基本系统构建器的一部分使用,您可以在 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 语句的上半部分。