|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小弟目前已经实现了一个可综合的verilog计算单元(就叫做CPU吧),存储器用的都是verilog的行为级module(就是sram内部用$readmem)。
现在想把多个CPU和多个MEM连起来做一个行为级的功能仿真,不要求整体可以综合。
这个结构需要在多个memory之间直接传输数据,有点像一种特殊的Direct Memory Access (DMA),设计DMA需要很长时间,来不及了,所以想用行为级的代码把memory中的数据都安排好。
具体实现如下图:
图(1)代表CPU1处理MEM1中的数据,CPU2处理MEM2中的数据。然后在MEM1和MEM2合并特定数据后存放回MEM2,用CPU1处理MEM1的内容,目前我没有任何问题。
MEM1和MEM2中的数据如图(2),a_i, b_i, c_i, result_i 是一组数据, 当两个CPU都完成任务后,如果result2和result6是非零的,就把相应的数据合并存放到MEM1中。请问可否像写C或者matlab那样实现以上的数据转移和排列,我不分析时序,只要能自动地让MEM1拥有新数据就行。
我感觉这种仿真方法,应该是常用的吧? 请大侠帮我看看,用什么方法,语言和工具最快最方便。 |
|