RTL编码适当缩进的好处,比你想象的要多

随着功能复杂度的快速提升,对芯片的要求也是随着提高,所以现在一款芯片的开发,往往需要数十人,长达几个月的共同开发才能完成。


因为Verilog HDL的语法相对开放,所以每个人开发的Verilog HDL之间的差异也是非常的大。但是一个设计团队之间,进行RTL模块的交叉review、相互调用是非常频繁的事情,所以为了增强RTL代码的可移植性,以及review的效率,我们通常在一个项目开始的时候,会统一整理一个RTL编码规则,里面的内容包括,命名的规则、单词的缩略原则,一些标准电路的常用写法等等。往往这个编码规则会写的很具体,但是个人认为,这是非常有必要的。在前面的五篇文章中,我们已经聊了一些,今天的文章,我就继续来聊一聊一般常见的规则。

RTL编码适当缩进的好处,比你想象的要多


RTL推荐编码规则

采用合适的缩进来保证RTL代码的层次,提升可读性。对每一个RTL设计者来说,相信对缩进是非常熟悉的,在我看来,需要缩进的地方,主要有三处,分别是:

  1. 同一个always块内部,通过缩进表现出逻辑层次;
  2. 对于较长的逻辑代码,通过缩进进行续行;
  3. 对于嵌套语句,通过缩进表现嵌套关系。
RTL编码适当缩进的好处,比你想象的要多


下面我们就来分别看看这三种情况。

同一个always块内部

大家知道,我们在always块里面进行编码时,一般通过begin-end的关键字来区分程序块,同一个begin-end里面的语句,我们看做是一个块内语句。例如:

reg[1:0] a;

reg[1:0] b;

always@(posedge clk or negedge rst_n)

begin :pos0

if(~rst_n)

begin:pos1

a <= 2'b00;

b <= 2'b00;

end

else

begin:pos2

a <= 2'b01;

b <= 2'b10;

end

end

在上面例子中,我们看到整个always块实现了对register a,b的初始化和赋值,里面分别有三对begin-end,pos0,pos1,pos2,pos0对应整个always块,pos1对应的是对register a,b的初始化,pos2对应的是对register a,b的赋值。我们在每个always块里面,都通过适当的缩进来凸显出这三对begin-end的之间逻辑关系。

这样做的好处是显而易见的,在阅读过程中,我们除了可以非常舒适的阅读感受之外,更加重要的是,可以根据缩进量,来判断RTL代码的相互操作关系,假如是严格对齐的多行代码,那么我们就可以认为他们的控制逻辑是相同的,会同时改变状态,这样大大减少了分析多行代码的时间。

RTL编码适当缩进的好处,比你想象的要多

小结

今天我们只是介绍了缩进的第一类情况,在后面的文章中,我将继续介绍缩进的另外两种情况,欢迎大家和我讨论。

展开阅读全文

页面更新:2024-05-04

标签:复杂度   嵌套   篇文章   赋值   可读性   初始化   语句   芯片   逻辑   层次   好处   规则   情况   代码   关系   文章   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top