硬件c model

c model的问题。 输入输出接口要和rtl严格一致, 接口信号可以打印到文件方便模块级别定位调试。保证重构的c model和rtl bit 级对应。 那么什么样的c model是一个便于硬件的c model?

C model 比较适合数据流处理。控制流可以用软件状态机处理,或者用软件方法进行同步(也可以采用systemC方案)
比如:对应硬件结构,有mem模块,interface,寄存器,组合逻辑,fifo。
那么如何用c去处理这些结构比较好呢?(ASIC Design and C Model - 知乎 (zhihu.com))

  1. C model 使用单线程 do loop方式实现(多模块例化用for循环串行)。
  2. C model 软硬件分割接口清晰, 参数信息可以通过file输入, 接口file寄存器输出。
  3. 模块接口按照硬件接口设计来实现。模块层次和rtl一一对应。(数据流)
  4. 一些控制逻辑可以在c中用软状态机实现。
  5. axi部分和ddr交互的部分,绝对地址分配ddr空间和内部状态寄存器。
  6. mem用全局数组放在外部定义。用external在不同模块声明。 命名的时候可以用globle和子模块头来区分。这样和rtl对应关系比较好。数据传递时候还要通过模块端口。
  7. Firmware 部分通过宏或者函数标记,fpga 移植方便。
  8. 每个模块需要提供初始化和独立运行函数。default数据可以从大cmodel提取。
  9. 所有interface可以打印输出。单独load数据。
  10. 保证cmodel编码结果和rtl编码结果,中间结果一一对应。 解码结果和重建帧一一对应。
  11. interface:用指针传,可以命名时候带下标表明输入输出。可以用struct打包。
  12. 寄存器:内部寄存器可以忽略, 接口寄存器用局部数组存。
  13. 组合逻辑: 纯软件逻辑计算
  14. fifo: 为了保证硬件结构一致性,可以用软件包个透传空函数(或者宏定义)。或者数组存。
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值