打印

VHDL signal值不能传输??

[复制链接]
1656|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
entepino|  楼主 | 2013-3-13 10:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 entepino 于 2013-3-13 10:47 编辑

--异步脉冲进行内同步process
SynPulse:process   
  
  begin
        WAIT UNTIL CLK200k ='1';   
                     SynPulseIN <= PulseIN;
  
  end process SynPulse;

--接受SDK发送数据process。
RecData: Process

begin  
      
        TagRecData(3 downto 0) <=  axi_gpio_0_GPIO_IO_O_pin(27 downto 24);
               
                  if(TagRecData = "0001" ) then
                      FixData1(9 downto 0) <=  axi_gpio_0_GPIO_IO_O_pin(9 downto 0);
                      LED1 <= '0';
                       LED2 <= '1';
                      LED3 <= '1';
                  elsif (TagRecData = "0010" ) then
                       FixData2(9 downto 0) <=  axi_gpio_0_GPIO_IO_O_pin(9 downto 0);
                       LED1 <= '0';
                       LED2 <= '0';
                       LED3 <= '1';
                  elsif (TagRecData = "0011" ) then
                       FixData3(9 downto 0) <=  axi_gpio_0_GPIO_IO_O_pin(9 downto 0);
                       LED1 <= '1';
                      LED2 <= '0';
                      LED3 <= '1';
                        else                  
                       null;                  
                  end if;               

                  
  end process RecData;
--  





--计数并置电平process
  INPulseCNT:process
  begin
         if (SynPulseIN'EVENT AND SynPulseIN = '1') then
                                  CntINPulse<=CntINPulse+"0000000001";                 
                                         
              if (CntINPulse>"0000000001"  and CntINPulse<FixData1) then
                           EnPulseIN  <= '1';   
                           EnPulseOut <= '0';
                           EnTrig := '0';                                               
           elsif (CntINPulse>FixData1+"0000001011" and CntINPulse<FixData1+"0000001011"+"0000001001")
               then                                                                       
                       EnPulseIN <= '0';
                        EnPulseOut <= '1';
                        EnTrig := '1';                                                           
             elsif  CntINPulse = FixData1+"0000001011"+"0000001001"  then
                          EnPulseIN <= '0';
                          EnPulseOut <= '0';
                          EnTrig := '0';
                           CntINPulse <= "0000000000";
              else
                           null;
               end if;
                                    
              end if;

end process INPulseCNT;  

指示灯亮了,说明数据已经接受到了,但就是置电平的process操作不对,如果把FixData1换成常数"0000001011",就一切电平就正常了,请问为何数据接受到了,在process中操作就不对啊?是不是前面的(SynPulseIN'EVENT AND SynPulseIN = '1触发条件有关系?也就是说在触发的那个时刻,FixData1这个信号没有保持住?



相关帖子

沙发
entepino|  楼主 | 2013-3-13 10:42 | 只看该作者
请大家指点,谢谢!

使用特权

评论回复
板凳
entepino|  楼主 | 2013-3-13 13:07 | 只看该作者
FixData1这个值传递不过来,是不是跟SynPulseIN'EVENT AND SynPulseIN = '1'触发条件有关系啊?好像是这样,如果有关系,那我就有点理解不了!!

使用特权

评论回复
地板
GoldSunMonkey| | 2013-3-13 15:25 | 只看该作者
TagRecData这个值呢?

使用特权

评论回复
5
entepino|  楼主 | 2013-3-13 16:20 | 只看该作者
TagRecData这个值是正确的,因为对应的LED灯都亮了。

使用特权

评论回复
6
ococ| | 2013-3-13 16:41 | 只看该作者
process没有敏感信号列表,无法启动porcess

使用特权

评论回复
7
entepino|  楼主 | 2013-3-13 17:35 | 只看该作者
您说哪个process没有敏感列表?RecData这个process灯已经点亮了,我感觉这个process已经启动了。后面那个确实应该加一个SynPulseIN敏感列表,我现在加一个试试看。

使用特权

评论回复
8
entepino|  楼主 | 2013-3-13 20:46 | 只看该作者
ococ 发表于 2013-3-13 16:41
process没有敏感信号列表,无法启动porcess

加了敏感列表,也不行。

使用特权

评论回复
9
GoldSunMonkey| | 2013-3-13 22:35 | 只看该作者
FixData1这个的值,能抓一下分析么?

使用特权

评论回复
10
entepino|  楼主 | 2013-3-14 08:48 | 只看该作者
不好意思,怎么抓?

使用特权

评论回复
11
GoldSunMonkey| | 2013-3-14 19:37 | 只看该作者
用CHIPScope,如果是XILINX的芯片

使用特权

评论回复
12
wmsk| | 2013-3-14 19:55 | 只看该作者
用猴哥方法试一下

使用特权

评论回复
13
1003704680| | 2013-3-30 19:52 | 只看该作者
entepino 发表于 2013-3-14 08:48
不好意思,怎么抓?

应该把敏感信号列表都加上。感觉你传的值是不是不对?范围到了else  null里面了。。。

使用特权

评论回复
14
ifpga| | 2013-3-30 21:22 | 只看该作者

使用特权

评论回复
15
GoldSunMonkey| | 2013-3-30 22:51 | 只看该作者
1003704680 发表于 2013-3-30 19:52
应该把敏感信号列表都加上。感觉你传的值是不是不对?范围到了else  null里面了。。。 ...

抓抓数,有利于提高本领

使用特权

评论回复
16
1003704680| | 2013-3-30 23:09 | 只看该作者
GoldSunMonkey 发表于 2013-3-30 22:51
抓抓数,有利于提高本领

该学学。很好玩的一个东西。

使用特权

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

本版积分规则

211

主题

649

帖子

2

粉丝