在Xilinx Platform Studio中映射端口并在C中读取
我在Xilinx平台工作室工作,我主要想做的是让一个VHDL模块输出一些值,然后我希望能够从另一个用C编写的程序中读取这些值 我想我要做的是将VHDL模块中的一个特定端口映射到内存中的一个点,然后在我的C程序中从内存中的那个点读取在Xilinx Platform Studio中映射端口并在C中读取,c,vhdl,xps,fpga,xilinx,C,Vhdl,Xps,Fpga,Xilinx,我在Xilinx平台工作室工作,我主要想做的是让一个VHDL模块输出一些值,然后我希望能够从另一个用C编写的程序中读取这些值 我想我要做的是将VHDL模块中的一个特定端口映射到内存中的一个点,然后在我的C程序中从内存中的那个点读取 有人能为我指出正确的方向吗?仅供参考,这对于电气工程堆栈交换也是一个好问题 我对这个话题的记忆有点模糊,如果没有更多关于你设计的细节,很难提出建议,因此这个解释将是非常高的层次 我将把你的新VHDL模块作为外设来实现 您可能已经知道这一点,但实现这一点的两大主题/技术
有人能为我指出正确的方向吗?仅供参考,这对于电气工程堆栈交换也是一个好问题 我对这个话题的记忆有点模糊,如果没有更多关于你设计的细节,很难提出建议,因此这个解释将是非常高的层次 我将把你的新VHDL模块作为外设来实现 您可能已经知道这一点,但实现这一点的两大主题/技术是内存映射IO和端口映射IO。端口映射IO需要引入一些新指令,并从CPU发出一条芯片选择线,以指示读/写操作的方向。地址空间可以由内存和外围设备共享。(CPU是VHDL设计的一部分吗?)
可能更简单的方法是通过内存映射IO。这需要硬件保留地址空间,新设备将位于地址和数据总线上,监听其地址范围。您的新模块需要遵守所有定时和协议要求才能在总线上进行通信。在C代码中,将变量声明为volatile,并将其指向设备用于读写的地址。这是microblaze还是power pc处理器?最简单的方法可能是使用gpio外围设备 如果您需要更高的速度,可以使用FSL链接 其他想法和方法: 块ram接口。
写一个定制的plb外设。查找“创建和导入外围设备向导”。我从您的需求中了解到,您希望创建一个自定义ip核心(VHDL),然后将其添加为XPS MicroBlaze/PowerPC系统的一部分,处理器应该可以访问您的核心(C编程) 在这里,您必须使用Xilinx XPS EDK工具执行以下主要步骤:
Ref:这段VHDL代码是否要安装到FPGA上?C程序在哪里执行?在同一平台上?或者这些都在模拟器中?这些都要放到FPGA上。C代码和VHDL。我正在使用Virtext II Pro@JonI,但我不知道如何让我的VHDL代码写入该内存地址。@Zacatack,你是什么意思?让CPU读写该内存地址?您的VHDL设备或“模块”,正如您所说的,它只会读写总线(这里假设内存映射IO)。恐怕我做不到比这更好的了,除非你用更多的信息编辑你的问题,说明你已经在做什么。电气工程堆栈交换上也有一些VHDL专家,如果这是一个问题,特别是试图找出如何在VHDL中执行某些操作: