打印
[FPGA]

帮我看一下下面的代码什么意思啊 谢啦

[复制链接]
1021|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Death格雷尔|  楼主 | 2014-3-6 15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本模块实现对于出租车在行驶和等待过程中的继承和计时功能;当行驶里程大于3KM时,本模块中en0信号变为1;当等待时间大于2min时,本模块中en1信号变为1;clk1每来一个上升沿,计量模块实现一次计数,里程数或者等待时间加1;
 
 
 end process; end rt1; 
分频模块的仿真波形图为: 
 
注:有图中的周期时间可以看出,三种输出的信号脉冲对应的频率比实现了1:13:15;  
(二)、计量模块  
       本模块实现对于出租车在行驶和等待过程中的继承和计时功能;当行驶里程大于3KM时,本模块中en0信号变为1;当等待时间大于2min时,本模块中en1信号变为1;clk1每来一个上升沿,计量模块实现一次计数,里程数或者等待时间加1;元件框图为: 
 
源程序如下: library ieee; 
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity jiliang is 
port( s: in std_logic;                  ;计量开始信号     
      fin: in std_logic;                ;里程脉冲信号     
      stop: in std_logic;               ;等待信号 
      clk1: in std_logic;               ;计量驱动信号 
      en1,en0:buffer std_logic;         ;计量输出的控制信号     k1,k0: buffer std_logic_vector(3 downto 0);      ;里程计数     m1,m0: buffer std_logic_vector(3 downto 0));    ;时间计数 
       end jiliang; architecture rt2 of jiliang is
signal w:integer range 0 to 59;       ;秒计数器 begin 
process(clk1) begin 
 if clk1'event and clk1='1' then   ;本语句实现clk1对计量模块的驱动    if s='0' then  
w<=0;en1<='0';en0<='0';m1<="0000";m0<="0000";k1<="0000";k0<="0000"; 
    elsif stop='1' then           ;等待计时开始标志       if w=59 then w<=0;                                      if m0="1001" then m0<="0000";                           if m1="0101" then m1<="0000";           else m1<=m1+1;           end if; 
        else m0<=m0+1; 
        end if;                             ;完成等待计时 
        if m1&m0>"00000001"then en1<='1';   ;等待时间大于2min
怎么看出来的等待时间大于2? 00000001是什么意思  还有上面的0101 和1001 ?谢谢大家。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

27

帖子

1

粉丝