【SoC设计的简单艺术】第二章:简化RTL设计

在这里插入图片描述
本章概述了RTL设计中的挑战,以及我们可以用来简化它们的一些基本技术。

挑战

在RTL设计中的基本挑战是,有很多事情同时发生。硬件设计涉及处理并发性,并发性本身就是一个固有的难题。

此外,在RTL中,我们不仅描述设计的功能,还要描述大量的实现细节。例如,我们定义基本的时钟结构以及复位是同步还是异步的。通过我们编写的RTL代码,决定了将使用锁存器还是触发器。

历史上,我们使用代码结构和编码风格来开发易于综合、容易实现时序收敛并满足功耗和门数约束的代码。代码的清晰度往往是一个次要考虑因素。

随着设计变得越来越复杂,同时描述功能和实现的挑战也变得更加困难。例如,像USB 3.0这样的接口协议涉及多个复杂的算法。尽管我们认为这些算法是对数据包进行操作,但这些是串行接口;我们必须逐位或逐字地实现这些算法。开发正确的算法并同时定义其串行实现是一项复杂的任务。在任何复杂的任务中,最终都会发现将其分成两个独立的任务分别解决会更容易一些。

同时设计功能和实现细节的一个副产品是代码量往往会变得相当大。源代码文件大小常常达到数十页。代码结构通常是为了适应编译器的需求,而不一定是为阅读和调试代码的人类设计的。所有这些导致代码难以分析、审查和调试。

语法错误

另一个副产品

尝试编写对综合友好的代码的另一个副产品是我们最终会得到很多语法上的冗余。例如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼德兰的喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值