用硬件思维去理解verilog

  • 格式:doc
  • 大小:13.50 KB
  • 文档页数:2

下载文档原格式

  / 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用硬件思维去理解verilog

·基本硬件设计模式·

读者如果学习了verilog,并且有了一定的实践经验的话应该强烈的感受到,verilog和软件(诸如C++/C++)有着本质且明显的差别,是一条不可跨越的鸿沟。所以初学者把C和verilog拿来作比较是完全没用的,甚至会把初学者绕晕,影响学习效率的提高。

虽然verilog比硬件更抽象,但是最终实现的结果就是一堆硬件电路。所以评价一个verilog 代码的好坏不是看代码量多少,而是看最终实现的功能和性能(有速度和面积2方面)。假设面积为S,性能为V,定义品质数Q=S/V,Q越小,设计的电路越成功。

评价一个设计者代码水平较高,只是这个设计由硬件向verilog表现形式转换更流畅,合理。一个设计最终实现的性能,很大程度上取决于设计的硬件方案是否高效合理。这是两回事。

也因上述2点,verilog设计不刻意追求代码简洁,合理的设计方法是首先理解要设计的电路,也就是把需求转化为数字电路,对此电路的结构和连接十分清晰,然后再用verilog 表达出这段电路。也就是说,verilog只是简化了电路设计的工作量,本质上就是设计数字电路,永远绕不开电路这点!这也决定了不能凭空去想代码,因为只有存在的电路才是可实现的,而存在的代码未必可以变成存在的电路。

大家也应该知道,在没有verilog这种高级语言之前都是用原理图设计,必须先构思好整个电路框架,才能去实现。有了verilog以后这种思路并没有被抛弃,依然需要大家去思考电路结构,只有深入理解了电路本身,才能够有高效的设计。

·实例说明·

世界上没有工作2次就自动停下的触发器,所以下面的电路综合是无法实现的。

repeat(2)@(posedge clk)

d 合成电路,他比较生硬,没有大家想的那么灵活。

至此可以得出一个基本结论,面向硬件的设计模式,就是要从电路特征和行为来编写代码。