首先声明,我是一个菜鸟。一下文章中出现技术误导情况盖不负责
最近由于项目的须要也是一直在开发fpga,有点心得。呵呵,主要是下面这个程序(延时器)启发了我,record一下:
entity delay is port( en:in std_logic; clk:in std_logic; en_delay:out std_logic ); end delay; architecture Behavioral of bitmap_Contrl is signal tmp:std_logic; signal tmp1:std_logic; begin process(Clk)--控制信号延迟 begin if(clk'event and clk='1')then tmp <= En; tmp1 <= tmp; end if; end process; en_delay <= tmp1; end Behavioral;
下面这个程序为什么可以对en停止延时呢?
tmp <= En; tmp1 <= tmp
下面两句话其实是同时执行的,什么意思呢,就是第二句话执行的时候被tmp赋值的其实是前一刻的值。En首先将值保存到tmp中,下次赋值到tmp1中。
这里有个关键点:两句话是同时执行的。我想理解这个程序当前编写其他程序应当不成什么问题,我就是从这个程序悟道的。
文章结束给大家分享下程序员的一些笑话语录: 刹车失灵
有一个物理学家,工程师和一个程序员驾驶着一辆汽车行驶在阿尔卑斯山脉 上,在下山的时候,忽然,汽车的刹车失灵了,汽车无法控制地向下冲去, 眼看前面就是一个悬崖峭壁,但是很幸运的是在这个悬崖的前面有一些小树 让他们的汽车停了下来, 而没有掉下山去。 三个惊魂未定地从车里爬了出来。
物理学家说, “我觉得我们应该建立一个模型来模拟在下山过程中刹车片在高 温情况下失灵的情形”。
工程师说, “我在车的后备厢来有个扳手, 要不我们把车拆开看看到底是什么 原因”。
程序员说,“为什么我们不找个相同的车再来一次以重现这个问题呢?”
--------------------------------- 原创文章 By 程序和执行 ---------------------------------