Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        5年前关闭。
                                                                                            
                
        
我有一台连接了两个PCI卡的PC。我创建了一个Matlab / Simulink仿真,该仿真将数字信号发送到其中一张卡。该卡是DA转换器。然后将其输出到控制系统。 Matlab生成C代码来执行此操作。我的目标是使用FPGA板重新创建此仿真。不幸的是,我无法将PCI卡连接到板上。因此,FPGA将必须访问PC的PCI端口。它将通过USB连接,我正在使用Quartus作为FPGA软件。有什么方法可以从板上访问PCI卡吗?还是有任何方法可以让FPGA调用仿真代码。

最佳答案

总结一下我的理解:

当前设置

一台将两个PCI卡连接到购物车的PC。


一个PCI卡具有一个输出D-> A转换器,用于驱动购物车
一张PCI卡具有用于测量角度位置和速度的输入A-> D转换器
PC上的一种Matlab软件可以关闭环路并驱动购物车。


新设置

与上述相同,外加一块以FPGA为主要组件的电路板。
该板具有串行,SATA,HSMC,以太网和USB连接,但没有A / D转换器。

该板应替换PC上的驱动软件。

我对此的想法


FPGA不是微处理器。


要替换Matlab生成的软件类型,您将不得不使用模仿Matlab算法的VHDL状态机。这在一般情况下是不可行的,只有在Matlab算法非常基础的情况下才能成功。

如果您具有功能强大的FPGA,则可以实际使用它来实现微控制器,然后对所述微控制器进行编程以完成您想要的任何事情。在我看来,这仍然算是过大了。


FPGA应该仅实现底层接口


您可以马上忘记USB,因为最小的接口需要FPGA无法实现的梦想软件。板上的USB访问通过专用微控制器完成,该微控制器将能够访问FPGA ram和其他板组件,但是您很可能无法直接使用它来实现您的协议。

例如,您可能在以太网链路上实现了某种基本协议,但是在这里,FPGA再次面临最大的困难,除非您对自己编程的低级环形缓冲区添加软件协议。 FPGA首先模拟处理器。


您的项目需要一个微控制器


您可以用准系统板代替PC,该系统可以安装一些数字I / O和一个小型微控制器,但是尝试在没有数字I / O的板上模拟带有FPGA的微控制器对我来说似乎是不合适的。

使用PC作为FPGA从设备来驱动几个I / O信号是很愚蠢的。一个解决方案充其量只是概念的笨拙证明,这将花费您大量的开发时间,并且很可能会失败。

我的建议:放下FPGA板,并用合适的微控制器板替换。

关于c - 通过USB通过FPGA访问PC的PCI卡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21563911/

10-11 19:43