本帖最后由 小研究 于 2015-11-6 17:01 编辑
我现在有个应用,是个双CPU系统,FPGA在DSP和ARM之间,充当握手的中间环节,具体是由FPGA生成的FIFO,两边都是16位,DSP的外部数据总线为XD,FPGA除了FIFO功能之外,还要协助DSP访问其他并口外设。
FPGA中有一个功能模块,是对一个信号进行计数,并把这个计数结果传给DSP,由DSP去计算。现在问题来了,如何把这个结果甩到DSP的数据总线上去?看似简单,只要DSP的寻址地址符合就行了。但是,假设我用一个ALWAYS语句来完成,IF地址符合,就把这个结果给数据总线。可是如果不符合呢,也就是说IF的ELSE怎么处理呢?大家知道,FPGA的IF缺省结果是维持原状态,也就是说锁死数据总线?那这样的话,FPGA岂不是把DSP的数据总线给锁死了?难道在ELSE的时候设置成Z高阻状态?问题是还有FIFO呢,如果FPGA把自身与DSP的数据总线设置成高阻,那么FIFO就完了。FGPA不允许在多个模块中处理同一个数据,也就是XD在FPGA中不能多次处理,如果单独在FIFO外设置高阻,会影响FIFO吗?
谢谢大侠指点。
急盼。
|