我对 vhdl 相当陌生,我正在努力了解是否可以将它用于项目。
我创建了一个项目来了解如何实现上拉电阻器并了解它们是如何工作的。我一定做错了什么。
我对电线的约束条目是
net "rx_i" PULLUP;
net "rx_i" loc="p88";
该项目的过程是
Process (clk_i)
type state_type is (qInit, qZero, qZero1, qZero2, qZero3, qZero4);
variable state: state_type:= qInit;
Begin
if (rising_edge(clk_i)) then
case state is
when qInit =>
if (rx_i = '0') then
led_o(0) <= '1';
state := qZero;
end if;
when qZero =>
if (rx_i = '0') then
led_o(1) <= '1';
state := qZero1;
end if;
when qZero1 =>
if (rx_i = '0') then
led_o(2) <= '1';
state := qZero2;
end if;
when qZero2 =>
if (rx_i = '0') then
led_o(3) <= '1';
state := qZero3;
end if;
when qZero3 =>
if (rx_i = '0') then
led_o(4) <= '1';
state := qZero4;
end if;
when qZero4 =>
if (rx_i = '0') then
led_o(5) <= '1';
state := qInit;
end if;
end case;
end if;
End Process;
所有 LED 的 0 到 5 都亮起。如果电线被拉得很高,我预计可能会出现一些虚假的 0,但不会连续出现 6 个。任何帮助,将不胜感激。