当前位置:首页 > 科技  > 芯片

IC设计思维:增加复用性的6种方法

来源: 责编: 时间:2023-09-11 22:35:12 223观看
导读 很多芯片在设计之初,就已经考虑如何增加代码的复用性,尽量减少工作量,降低错误概率。增加复用性的几个场景:不同项目之间的代码复用性不同工艺之间的代码复用性同一个模块例化多份,分别工作在不同模式下同一个项目不同环
很多芯片在设计之初,就已经考虑如何增加代码的复用性,尽量减少工作量,降低错误概率。
增加复用性的几个场景:
    • 不同项目之间的代码复用性
    • 不同工艺之间的代码复用性
    • 同一个模块例化多份,分别工作在不同模式下
    • 同一个项目不同环境(RTL验证,FPGA demo 验证)之间的代码复用性
本章节将简单谈谈几种增加代码复用性的方法。

1、基础模块IP化x3R28资讯网——每日最新资讯28at.com

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

2、模块参数化x3R28资讯网——每日最新资讯28at.com

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

module ip_bus_sync #( // parameter DATA_WDTH = 16 , // parameter INI_VALUE = {DATA_WDTH{1'b0}} //)( input i_src_clk , // input i_src_rst_n , // input [DATA_WDTH-1:0] i_src_din , // input i_dst_clk , // input i_dst_rst_n , // output reg [DATA_WDTH-1:0] o_dst_dout //
);

//逻辑代码
endmodule

3、宏定义区分代码分支x3R28资讯网——每日最新资讯28at.com

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

generategenvar i;
for ( i=0; i<DATA_WDTH; i=i+1 )begin : SDFFY2D_INST
SDFFY_*CELL_TYPE* SDFFY2D //此处CELL_TYPE指的是具体的器件型号( .CK (i_dst_clk),.D (i_src_din[i] ),.Q (o_dst_dout[i]),.SI (1'b0 ), //DFT 输入信号,由DFT工程师在网表中完成连线.SE (1'b0 ) //DFT 使能信号,由DFT工程师在网表中完成连线);
endendgenerate
`else
reg [(DATA_WDTH-1):0] din_d0; //reg [(DATA_WDTH-1):0] din_d1; //
assign o_dst_dout = din_d1;
always @( posedge i_dst_clk ) begindin_d0 <= i_src_din;din_d1 <= din_d0;end
`endif

4、使用参数选择代码分支x3R28资讯网——每日最新资讯28at.com

在同一个宏定义分支下(例如同在ASIC或者FPGA项目),我们可能需要奖模块例化多份,以支持如下场景:x3R28资讯网——每日最新资讯28at.com

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

generate
if (FUNCTION_MODE==`MULTI_FUNCTION) begin:MULTI_FUNCTION_CODE
//多function 逻辑
end
else begin:SINGLE_FUNCTION_CODE
// 单function 逻辑
end
endendgenerate

5、IP接口隔离x3R28资讯网——每日最新资讯28at.com

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

6、std cell 隔离x3R28资讯网——每日最新资讯28at.com

我们通常会将std cell外包一层或者多层代码,这样就能将工艺与设计代码尽量分离。x3R28资讯网——每日最新资讯28at.com

常见的有bit同步器,ram,clk-gating,clk mux等模块。如下是单bit同步器的案例。
module  ip_bit_sync #( parameter      DATA_WDTH = 1    // bit width)(input  wire                     i_dst_clk,   // destination clockinput  wire [(DATA_WDTH-1):0]   i_src_din,   // data inputoutput wire [(DATA_WDTH-1):0]   o_dst_dout   // data output);`ifdef FOR_ASIC_DESIGNgenerategenvar  i;for ( i=0; i<DATA_WDTH; i=i+1 )begin : SDFFY2D_INSTSDFFY_*CELL_TYPE*  SDFFY2D   //此处CELL_TYPE指的是具体的器件型号(    .CK   (i_dst_clk),.D    (i_src_din[i] ),.Q    (o_dst_dout[i]),.SI   (1'b0     ),   //DFT 输入信号,由DFT工程师在网表中完成连线.SE   (1'b0     )    //DFT 使能信号,由DFT工程师在网表中完成连线);endendgenerate`elsereg  [(DATA_WDTH-1):0]   din_d0;       //reg  [(DATA_WDTH-1):0]   din_d1;       //assign o_dst_dout = din_d1;always @( posedge i_dst_clk ) begindin_d0  <= i_src_din;din_d1  <= din_d0;end`endifendmodule


这个技术研讨会不要错过!x3R28资讯网——每日最新资讯28at.com

时间:2023年9月26日 9:00~18:00x3R28资讯网——每日最新资讯28at.com

地点:深圳湾万怡酒店4楼大宴会厅x3R28资讯网——每日最新资讯28at.com

(免费参会、免费午餐、参会赢好礼)x3R28资讯网——每日最新资讯28at.com

x3R28资讯网——每日最新资讯28at.com


x3R28资讯网——每日最新资讯28at.com

icspec【芯片求购】https://www.icspec.com/inquiry/index/1/0

本文链接:http://www.28at.com/showinfo-27-9402-0.htmlIC设计思维:增加复用性的6种方法

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 纤薄高颜值,商旅轻出行,瑞亨65W超薄氮化镓充电器评测

下一篇: 用于太空应用的抗辐射电路设计与优化

标签:
  • 热门焦点
  • 一加Ace2 Pro官宣:普及16G内存 引领24G

    一加Ace2 Pro官宣:普及16G内存 引领24G

    一加官方今天继续为本月发布的新机一加Ace2 Pro带来预热,公布了内存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引领,还有呢?#一加Ace2Pro#,2023 年 8 月,敬请期待。”同时
  • 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    前言在使用SpringBoot开发中或者在求职面试中都会使用到很多注解或者问到注解相关的知识。本文主要对一些常用的注解进行了总结,同时也会举出具体例子,供大家学习和参考。注解
  • JavaScript学习 -AES加密算法

    JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 自律,给不了Keep自由!

    自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
  • 大厂卷向扁平化

    大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • 三星Galaxy Z Fold/Flip 5国行售价曝光 :最低7499元/12999元起

    三星Galaxy Z Fold/Flip 5国行售价曝光 :最低7499元/12999元起

    据官方此前宣布,三星将于7月26日也就是明天在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 三星显示已开始为AR设备研发硅基LED微显示屏

    三星显示已开始为AR设备研发硅基LED微显示屏

    7月18日消息,据外媒报道,随着苹果首款头显产品Vision Pro在6月份正式推出,AR/VR/MR等头显产品也就将成为各大公司下一个重要的竞争领域,对显示屏这一关
  • Meta盲目扩张致超万人被裁,重金押注元宇宙而前景未明

    Meta盲目扩张致超万人被裁,重金押注元宇宙而前景未明

    图片来源:图虫创意日前,Meta创始人兼CEO 马克&middot;扎克伯发布公开信,宣布Meta计划裁员超11000人,占其员工总数13%。他公开承认了自己的预判失误:&ldquo;不仅
Top