学习SOC--RTL代码编写指南

本文介绍了在FPGA设计中,如何进行RTL代码编写,包括设计说明书的准备、模块划分、可测性考虑、芯片速度优化以及DesignWare的使用。强调了模块功能描述、接口信号、时钟复位、总线接口的选择,并提供了DesignWare在综合中的应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、模块RTL代码编写前都必须准备设计说明书。一般来说,设计说明书主要描述一下内容:

    1.1、模块功能简要介绍

    1.2、模块接口信号以及系统框图   

    1.3、模块寄存器地址及功能描述

    1.4、时钟信号连接(Multicycle Path/False Path/Negedge Clock/Generated Clock)

    1.5、复位信号连接(Gated Reset/Soft Reset)

    1.6、模块挂载总线--ARM公司的AMBA和AXI总线,IBM公司的Processor Local Bus

2、模块划分

    2.1、确保只有顶层模块中才包含IO引脚。

    2.2、顶层模块还应该包含边界扫描单元等测试逻辑。

    2.3、IP选择及设计

        2.3.1、确定那些模块是基于标准单元库进行设计,那些模块需要购买IP。

        2.3.2、模块接口协议要尽可能简单。一个常用技巧就是在设计传输接口建立申请应答机制。

        2.3.3、分钟分布,关键路径布线,电源和地址布线,IP模块支持的测试结构保持与系统芯片一致。

3、可测性

芯片可测性是指在芯片的生产测试中发现生产缺陷的能力。对于数字电路,通常使用扫描链提高可测试性。一般来说,综合工具中会有对RTL可测试的检查工具。但RTL设计人员应当尽量避免在RTL编写中引入影响可测试的问题:

    3.1、复位信号在测试过程中应当设置为无效,否则测试过程可能被复位信号打乱。 

    3.2、门控时钟在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值