设为首页 - 加入收藏
广告 1000x90
您的当前位置:主页 > 抖音运营 > 引流推广 > 正文

复用性是什么(几种芯片设计增加代码复用性的

来源:引流技巧 编辑:引流技巧 时间:2024-11-14

很多芯片在设计之初,就已经考虑如何增加代码的复用性,尽量减少工作量,降低错误概率。 增加复用性的几个场景:

不同项目之间的代码复用性

不同工艺之间的代码复用性

同一个模块例化多份,分别工作在不同模式下

同一个项目不同环境(RTL验证,FPGAdemo 验证)之间的代码复用性

本章节将简单谈谈几种增加代码复用性的方法。

1、基础模块IP化

在各家ASIC/FPGA项目的代码目录中,我们经常能看到各类小的基础模块,例如各类跨时钟模块、各类调度仲裁模块、各类RAM读写模块、各类总线接口模块等等。它们可能命名为share_ip_*或base_ip_*或cmn_ip_*,又或者其他名称,几乎每个设计者都需要用到这些基础模块。 我们在需要实现其相关功能时,只需要例化模块即可,简单高效,有降低了bug概率。

2、模块参数化

在进行模块设计时,我们需要尽量保证模块参数化,尽量避免使用立即数(例如10’d0)。 被参数化的信号可能是数据位宽,用户数量或者其他类型的信号。

moduleip_bus_sync#(//
parameterDATA_WDTH=16,//
parameterINI_VALUE={DATA_WDTH{1'b0}}//)(
inputi_src_clk,//
inputi_src_rst_n,//
input[DATA_WDTH-1:0]i_src_din,//
inputi_dst_clk,//
inputi_dst_rst_n,//
outputreg[DATA_WDTH-1:0]o_dst_dout//);//逻辑代码endmodule

3、宏定义区分代码分支

ASIC项目的代码一般至少有两个版本:ASIC版本和验证版本(FPGA/加速器)。部分公司还会同时出两个系列的芯片,ASIC系列和FPGA系列。因此我们通常需要通过宏定义区分不同的代码分支和参数

`ifdefFOR_ASIC_DESIGN//ASIClogic
//参数定义`else
//其他分支逻辑
//参数定义`endif

`ifdefFOR_ASIC_DESIGN

generate
genvari;

for(i=0;i

4、使用参数选择代码分支

在同一个宏定义分支下(例如同在ASIC或者FPGA项目),我们可能需要奖模块例化多份,以支持如下场景:

Case1:同一个模块,工作在同的模式下,为了节约资源,只需要保留对应模式的代码逻辑。Case2:同一个模块,其支持的功能数量不同,所需要的RAM等资源也不相同,需要例化不同规格的RAM。
modulexxxxx#(
parameterFUNCTION_MODE=`MULTI_FUNCTION
)
(
//各类IO信号
);

generate

if(FUNCTION_MODE==`MULTI_FUNCTION)begin:MULTI_FUNCTION_CODE

//多function逻辑

endelsebegin:SINGLE_FUNCTION_CODE

//单function逻辑endendendgenerate

5、IP接口隔离

不同Vendor的IP的用户侧接口大概率是不一样的,为了避免因为IP替换导致的大量代码修改,可以在设计之处就考虑将IP接口隔离。例如通过2类接口转换模块(控制类和数据类),将所需要的控制信号和数据流信号转换成通用的内部信号,这样无论怎么替换IP,都只需要修改少量代码。

复用性是什么(几种芯片设计增加代码复用性的方法)复用性是什么(几种芯片设计增加代码复用性的方法)

4、std cell 隔离

我们通常会将std cell外包一层或者多层代码,这样就能将工艺与设计代码尽量分离。

常见的有bit同步器,ram,clk-gating,clk mux等模块。如下是单bit同步器的案例。

moduleip_bit_sync#(parameterDATA_WDTH=1//bitwidth)(inputwirei_dst_clk,//destinationclockinputwire[(DATA_WDTH-1):0]i_src_din,//datainputoutputwire[(DATA_WDTH-1):0]o_dst_dout//dataoutput);`ifdefFOR_ASIC_DESIGNgenerategenvari;for(i=0;i

声明:本文内容及配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。

微商引流技巧网 www.yinliujiqiao.com 联系QQ:1716014443 邮箱:1716014443@qq.com

Copyright © 2019-2024 强大传媒 网站地图 rss地图

Top