------FPGA接收来自DSP发送的每一位数据,并进行32位移位打包成32位数据包rcv_buf-----------
rcv :process(clk)
begin
if(clk'event and clk = '1')then
if(CLKR_rr ='1' and CLKR_r = '0')then
rcv_buf(0) <= DR;
rcv_buf(31 downto 1) <= rcv_buf(30 downto 0);
end if;
end if;
end process;
-----根据每个帧同步下降沿来把 rcv_buf的值给总线端口------------
Data_latch :process(clk)
begin
if(clk'event and clk = '1')then
if(FSR_rr='1' and FSR_r = '0')then --帧同步下降沿检测
Mcbsp_Data <= rcv_buf; --移位后的32位数据送给端口
end if;
end if;
end process;
嗯,不过当FSX下降沿来了根据什么计数?比如:
进程1:--计数部分,但计数条件不好设置
process(clk)
begin
if(clk'event and clk = '1')then
if(FSX_rr ='1' and FSX_r = '0')then
if(???) then --这里面的计数条件是什么??
counter = counter + 1;
if(counter = 32) then
counter = 0;
end if;
end if;
end if;
end if;
end process;
进程2:--移位操作
rcv :process(clk)
begin
if(clk'event and clk = '1')then
if(CLKR_rr ='1' and CLKR_r = '0')then
if(counter /= 0) then
rcv_buf(0) <= DR;
rcv_buf(31 downto 1) <= rcv_buf(30 downto 0);