关于ise接受sdk数据的时间问题
1、从SDK往ise中的VHDL传2个大数据(百万级别十进制数),这两个数据在程序中需要同时使用,现有一个32bit的GPIO_O驱动(丛SDK输出到ISE中),那么传两个大数据(百万级别十进制数)有两种方法,第一种是只用这一个驱动,传两次,加数据头,以驱动是哪一个数;还有一种方法,再增加一个驱动,用两个输出驱动传数据。
如果用第一种方法,我在ISE中的VHDL程序肯定是有先后次序,但我程序的运行肯定是并行,
这样写:
Signal Data_1: std_logic_vector(21 sownto 0) ;
Signal Data_2: std_logic_vector(21 sownto 0) ;
Signal RunStart : std_logic;
If axi_gpio_0_GPIO_IO_O_pin(30)= 0 Data_1<= axi_gpio_0_GPIO_IO_O_pin(21 sownto 0)
Else Data_2<= axi_gpio_0_GPIO_IO_O_pin(21 sownto 0)
RecData:Process
Begiin
If axi_gpio_0_GPIO_IO_O_pin(30)= 0 Data_1(21 sownto 0)<= axi_gpio_0_GPIO_IO_O_pin(21 sownto 0)
Else Data_2(21 sownto 0)<= axi_gpio_0_GPIO_IO_O_pin(21 sownto 0)
RunStart <= ‘1’;
End if;
End process RecData;
RunData: Process
Begin
If RunStart = ‘1’
Then
-- 应用两个大数据---
End if;
End process RunData;
如果我这样写,SDK程序能否及时传过来这两个数据,因为这两个数据我需要同时用
SDK内部肯定这么写,
XGpio_DiscreteWrite(&LED32bit, 1, GPIO_DATA1);
XGpio_DiscreteWrite(&LED32bit, 1, GPIO_DATA2);
GPIO_DATA1,GPIO_DATA2就是要传递的大数据。
第二种方法,再增加一个输出驱动,应该是可以。
请问应该用哪种方法比较好,谢谢!
|