首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VHDL上拉电阻

VHDL上拉电阻
EN

Stack Overflow用户
提问于 2013-11-07 14:00:35
回答 2查看 565关注 0票数 0

我是vhdl的新手,我正在努力了解我是否可以在项目中使用它。

我创建了一个项目,看看如何实现上拉电阻,并看看它们是如何工作的。我一定是做错了什么。

我对连接的约束条目是

代码语言:javascript
复制
net "rx_i" PULLUP;
net "rx_i" loc="p88";

该项目的流程如下

代码语言:javascript
复制
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个。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2013-11-07 16:21:48

第一:永远不要将leds的值设置回'0‘。一旦你在这个状态机中将所有的值都设置为'1‘,你就可以继续驱动'1’。您可以在case语句之前添加像led_o <= (others => '0');这样的行。

即使到那时,你也会以时钟的速度运行这些状态。你的leds将闪烁得如此之快,以至于你的眼睛只能看到它们是“亮”的,但亮度略有下降。也许您可以在每个状态中添加一个计数器,或者检查另一个条件,如按下按钮。

最后,您发布的代码没有显示任何上拉。我只是假设您在代码的另一部分中使用了它。我能看到的问题与引体向上没有任何关系。

票数 1
EN

Stack Overflow用户

发布于 2013-11-07 21:16:14

仅当代码被合成并转换为要加载到FPGA上的位流时,才会使用约束文件。这与模拟没有任何关系。在模拟中,您可以通过在信号上驱动'H‘(高)来创建上拉。

如果你想让led_o成为一个信号,你可以这样做:

代码语言:javascript
复制
led_o <= 'H';
led_o <= LED_DRIVE;

因此,当LED_DRIVE为高阻抗(Z)时,上拉将接管并将信号拉高。这就是实现双向接口的方式,比如I2C。但我想现在我已经超越了你的理解。这里的教程展示了如何创建一个简单的发光二极管闪光灯:http://www.nandland.com/vhdl/tutorials/tutorial-your-first-vhdl-program-part1.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19829027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档