阅读芯片源码(RTL)

====part one====

主要的原则。

一个rtl可以是这样的:

经常大家习惯于算法和数据结构。对于设计的部分,落实不一定多。

另外一个rtl也可以是这样的:

所以从不同的层面来讲,一个Rtl有不同的表述。

首先大概把所有的部分浏览一遍,看看有些什么。

其次,找到重点的部分。

重点分两种,一种是熟悉的,一种是重要的。

如果重要的不懂,那就先看熟悉的。

再次,找到其中的逻辑。这是因为单点的记忆是不能得到很好的收获的。

重要的,对rtl来讲,存储,状态机,interface都是重点。interface中,要注意信号之间的紧密关系,比如握手。或者信号的处理要求:要求在何种状态响应,要响应什么。

逻辑行中,如果向下面说的,如果多个if 分支,或者非常多的if层次,那更有可能是重要的。反之,多个分开的if,则更不一定是重要的。

熟悉的,有时不是真熟悉,而只是熟悉其中一个字眼,基于这个字眼,能够联想,就是扫雷。

在逻辑寻找中,应该注意分支。比如一个if block中,平行的几个分支是按什么来切分的。逻辑中,还应该注意层次,还是if,如果if中还有if,那么两个if的逻辑层次是依据什么来的呢?

要知道模块关系。

interface的确很重要。双边关系。指的两个模块之间的关系。可以先明确起来。去掉一看就没有明确意义的。去掉普通意义,大的意义的。合并同类项。找出动词,状态词。

宁深入,不求全。一个interface串一串,串到底。就像开辟根据地,至少在每一个模块(地方)都能扎下根来。即使是个小树苗,也比走马观花好。

比如,

两个模块hndler和dp之间的interface。

选最亮的那些名字拿出来,就是,没有看过代码的人都觉得很厉害的拿出来。

然后再把这些信号归并同类项。--的是一类,**的是一类。 (这里首先分了数据和控制状态类两类)。

在每一类中,挑一个去熟悉,那么,就可以对脉络,甚至精要熟悉了。

interface: 如果归类之后,发现还是挺多的。那么结合一些基本背景,获知核心的一类。

在一类信号中,发现每个信号的不同点。

以及将信号,与特定的fifo, interface等联系在一起。

skill: look around。如果一个点位看得稀里糊涂,那么,就看看其他的。比如看时序,看得糊涂,那么就看一下逻辑。算法是灵魂,状态机设计,关键信号设计,counter设计是一些骨架。

在状态机设计中,有一些紧状态和松状态,前者依赖一些counter,后者则是依赖一些外部信号,往往时间不确定。紧是自身的时间要求,而松是外部的时间,两者是应该配合起来的。

阅读的最终目的,是得到可记忆,可以传达,值得传达的东西。比如一个算法,一个方法。而非得到事情本身。

得到算法,也是一种映射,将各种信号,数据之间的关系,映射到一些处理上去。

====part two====

怎么学习一个之前未学习过的领域。

这实际是一个升级的过程。

那么,其实很多面向市场,产品,项目的,人,都是有非常强的学习能力的。所以,要论实操,不一定,比得过技术人。但是见识和沟通因而不可忽视。

升级的学习。其实应该是利用现有的知识,扩展到新的领域。比如说RTL,从控制类的代码,到信号处理类的代码,到协议类的代码。这些代码的跨度也许很大。但是,看完之后,就知,比起其他代码,这些差异就不那么大了。

不大,在于,最后都会落实到状态机,FIFO, RAM,关键信号的设计上。而区别在于核心的逻辑。有些是控制器,有些事DSP,有些是协议加速器。因此,如这个图:

如此,上半部分就是灵魂了。下半部分是壳体。大部分的设计,在下半部分是有共通之处的。而要学习的也就是上半部分的逻辑。

====part three====

面向verilog

经常碰到的问题是,信号tracing一下又回去了。让人看不清。

好在,现在大部分的代码遵循一个规则,<= 和=之分。所以可以尝试在两次<=之间作为一个小段落,停一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/194953.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CICD 持续集成与持续交付——gitlab

部署 虚拟机最小需求&#xff1a;4G内存 4核cpu 下载&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 安装依赖性 [rootcicd1 ~]# yum install -y curl policycoreutils-python openssh-server perl[rootcicd1 ~]# yum install -y gitlab-ce-15.9.3-ce.0…

Jmeter——结合Allure展示测试报告

在平时用jmeter做测试时&#xff0c;生成报告的模板&#xff0c;不是特别好。大家应该也知道allure报告&#xff0c;页面美观。 先来看效果图&#xff0c;报告首页&#xff0c;如下所示&#xff1a; 报告详情信息&#xff0c;如下所示&#xff1a; 运行run.py文件&#xff0c;…

AVL树实现

目录 ​编辑 一&#xff0c;AVL树的概念 二&#xff0c;实现AVL树&#xff08;部分&#xff09; 1.AVL树的节点 2.AVL数的插入 1.当根节点为nullptr时要执行如下代码&#xff1a; 2.当根节点不为nullptr时 1.当parent的_bf变为0时&#xff0c;parent之前的_bf的大小就是…

前端面试:如何实现并发请求数量控制?

题目&#xff1a;实现一个并发请求函数concurrencyRequest(urls, maxNum) 要求如下&#xff1a; 要求最大并发数 maxNum;每当有一个请求返回&#xff0c;就留下一个空位&#xff0c;可以增加新的请求;所有请求完成后&#xff0c;结果按照 urls 里面的顺序依次打出&#xff1b;…

C++初阶-内存管理

内存管理 一、C/C内存分布二、C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free三、C内存管理方式new/delete操作内置类型new和delete操作自定义类型 四、operator new与operator delete函数operator new与operator delete函数 五、new和delete的实现原理内置类…

论文-分布式-拜占庭将军问题

目录 0-前言 1-导引 2-不可能性 3将军(1叛徒)问题不存在解/不能达成共识 少于3m1个将军(有m个叛徒)不存在解/不能达成共识 精确一致性与近似一致性是同等困难的 3-使用口头消息的解 “口头消息”的含义 OM(m)算法的步骤 OM(m)算法的正确性推导 4-使用签名消息情况下…

054-第三代软件开发-信号槽

第三代软件开发-信号槽 文章目录 第三代软件开发-信号槽项目介绍信号槽实现原理与MFC消息映射机制区别Qt信号槽机制的优缺点 关键字&#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#x…

内容运营策略:个性化推荐

一、推荐系统流程 典型的推荐系统包括3个部分&#xff0c;即召回层&#xff08; Recall )、排序层&#xff08; Rank )和重排层&#xff08; ReRank )。 1&#xff0e;召回层&#xff08; Recall ) 召回层主要是从全量库中首先获取用户可能感兴趣的候选集&#xff0c;是推荐系…

Pytest自动化测试框架:mark用法---测试用例分组执行

pytest中的mark&#xff1a; mark主要用于在测试用例/测试类中给用例打标记(只能使用已注册的标记名)&#xff0c;实现测试分组功能&#xff0c;并能和其它插件配合设置测试方法执行顺序等。 如下图&#xff0c;现在需要只执行红色部分的测试方法&#xff0c;其它方法不执行&am…

pytest测试框架介绍(1)

又来每天进步一点点啦~~~ 一、Pytest介绍&#xff1a; pytest 是一个非常成熟的全功能的Python测试框架&#xff1b; pytest 简单、灵活、易上手&#xff1b; 支持参数化 能够支持简单的单元测试和复杂的功能测试&#xff0c;可以做接口自动化测试&#xff08;pytestrequests&…

谈谈一个IT杂家的职业生涯规划,你的护城河被AI 攻破了么?

文章大纲 未来AI领域的专家是深度学习老中医数据为什么不断的在变化&#xff1f;炼金术(Alchemy)AI“老中医”的经验难以复制 AIGC 还未能克服的难点&#xff1a;忽然的惊喜与价值观对齐失控既是智能获得突破的重要原因&#xff0c;又是智能突破所不可避免的伴生结果大模型在泛…

Google Earth Engine(GEE)操作

地理信息网站 Eatrth Explorer操作界面 在研究中&#xff0c;我们常需要遥感数据。在下面的网站中&#xff0c;可以得到遥感数据。 EarthExplorer (usgs.gov)https://earthexplorer.usgs.gov/登陆网站&#xff1a; 通常&#xff0c;在Additional Criteria中&#xff0c;可以…