电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章FPGA基于FPGA的PCI总线接口设计

基于FPGA的PCI总线接口设计

11-20 16:14:13 | http://www.5idzw.com | FPGA | 人气:403
标签:fpga是什么,fpga教程,fpga培训,http://www.5idzw.com 基于FPGA的PCI总线接口设计,http://www.5idzw.com
c_state <= DevTrdyHi;
end if;
when DevTrdyHi=>
if pci_frame_l='1' and pci_irdy_l='1' then
c_state <= OprOver;
else
c_state <= DevLoTrdyHi;
end if;
when DevLoTrdyHi=>
if pci_frame_l='1' and pci_irdy_l='1' then
c_state <= OprOver;
else
c_state <= DevTrdyLo;
end if;
when DevTrdyLo=>
if pci_frame_l='1' and pci_irdy_l='1' then
c_state <= OprOver;
elsif pci_frame_l='1' and pci_irdy_l='0' and trdy_l='0' then
c_state <= OprOver;
else
c_state <= c_state;
end if;
when OprOver=>
c_state <= Idle;
when others=>
c_state <= Idle;
end case;
end if;
end process;


--- 下一步应列出每个状态所对应的并发事件,写出相关的进程。进程语句是一个并行语句,它定义进程被激活时将要执行的特定行为。例如,在Ready状态时,就要判断从主设备方发来的地址信息是否与从设备地址相同,因此要写出地址比较进程。
--- address_compare:process(pci_rst,pci_clk),主要内容是对地址译码,判断地址是否在从设备空间,如果在此空间则可做下一步动作,否则不做其他动作。

--- 从以上分析过程可以得到整个设计思路如下:在时钟的上升沿采样FRAME#、地址和命令,如果FRAME#有效则译码地址和命令,如果总线命令为011x,并且总线上的地址在目标地址范围内,表明这是对本设备的存储器操作;或者总线命令为101x,且IDSEL信号有效,表明这是对本设备配置空间的操作。在这两种情况下,根据总线命令的最后一位确定是读操作还是写操作,有效DEVSEL#和TRDY#信号,开始数据传输;并在传输过程中采样FRAME#和IRDY#信号,确认最后一个数据周期,无效DEVSEL#和TRDY#信号,结束数据传输。
--- 通过以上设计,在MAX+PLUSII环境下的其中一组模拟结果如图2所示。

结束语


本文给出了在PCI总线上利用FPGA技术设计PCI总线接口的设计方案。利用这项技术可以将自己的的算法技术和一些软件做成硬件,固化到卡上,这样既提高了运行速度,也可以保护知识产权。

上一页  [1] [2] 

,基于FPGA的PCI总线接口设计