always语言指导原则

1、每个always只有一个@(event-expression).

2、always块可以表示时序逻辑和组合逻辑。

3、带有posedge和negedge关键字的是表示沿触发的时序逻辑,没有的表示组合逻辑或者电平敏感的锁存器。或者两者都表示。

4、每个在always快中赋值的信号必须定义成reg型或者整形(integer[<msb> :<lsb> ] identifier)。整形变量默认是32位。

5、always块中应该避免组合反馈回路,always块中的赋值必须是明确的。否则,需要设计者在设计中加入电平敏感的锁存器,来保持赋值前的最后一个值。解释如下:

  //我们不建议这样,你懂的,容易出错。

  input a,b,c;

  reg d,e;

  [email protected](a or b or c)//电平敏感列表就是a,b,c

    begin

      e=d & a & b;//因为电平敏感列表里面没有d,所以在d变化时,e不能立即变化,要等到a,b,c变化时才能体现出来。也就是相当于存在一个电平敏感的透明锁存器在暂存d的数据。

      d=e|c;

    end

6、把某一信号值赋值为’bx,综合器把它解释成无关状态,综合器生成的硬件电路做简洁。

摘自:verilog数字系统设计教程(夏宇闻)

时间: 2024-10-11 22:06:17

always语言指导原则的相关文章

Verilog学习笔记设计和验证篇(三)...............同步有限状态机的指导原则

因为大多数的FPGA内部的触发器数目相当多,又加上独热码状态机(one hot code machine)的译码逻辑最为简单,所以在FPGA实现状态机时,往往采用独热码状态机(即每个状态只有一个寄存器置位的状态机).建议采用case语句来建立状态机的模型,因为这些语句表达清晰明了,可以方便的由当前状态转向下一个状态并设置输出.记得:不要忘记在case语句的最后写上default分支,并将状态设置为'bx这就等于告诉综合器case语句已经指定了所有的状态.这样综合器就可以删除不必要的译码电路使生成

第六节:指导原则和最佳实践

理解异常机制固然重要,但同等重要的是理解如何正确使用异常.我经常发现类库开发人员捕捉所有类型的异常,造成应用程序开发人员对问题不知情.本章就异常的使用提供一些指导原则. 重要提示    如果你是类库开发人员,要设计供其他开发人员使用的类型,那么一定要严谨按照这些指导原则行事.你的责任非常重大,要精心设计类库中的类型,使之适用于各种各样的应用程序.记住,你无法做到对自己要调用的代码了如指掌,也不知道哪些代码会调用你的代码.由于无法预知使用类型的每一种情形,所以不要做出任何策略抉择,换言之,你的代码

何时使用引用、指针、按值传递的一些指导原则

问题提出: 1.当一个类的对象作为实参数传递时,使用值传递和引用传递有什么区别?   比如: DateType ExampleFun(CString &strFileName,...)与         DateType ExampleFun(CString strFileName,...) 解答之前,我们先来看2个基本的概念:形参和实参. ->通俗的讲:形参是形式上的参数,实参是实际的参数;->详细的讲:形参只是对实参的一种抽象类型描述,只是声明一个函数(方法)能接受什么类型的实参,

C/C++运算符指导原则

本来觉得自己不会被运算符优先级问题困扰(实际自己写程序时也确实如此),但无奈有些地就考你这个,看了几篇大牛的博客,精简的总结如下三条指导原则: 1.优先级表(起码有个大概) 2.大多数运算符结合方向是"自左至右", 即: 先左后右, 例如a- b+c, b 两侧有- 和+两种运算符的优先级相同, 按先左后右结合方向, b 先与减号结合, 执行a- b 的运算, 再执行加c 的运算. 除了自左至右的结合性外, C 语言有三类运算符参与运算的结合方向是从右至左.即: 单目运算符, 条件运算

设计指导原则

设计指导原则 一. 性能相关: 避免在循环内部new一些没有必要每次都new的对象. 所有与IO相关的操作,都需要考虑性能问题,一般采取的措施是连接池,缓存,减少调用次数,合并请求. 每个业务都要分析整个请求链路,找到瓶颈,通过压测的方式确认问题及验证解决方案. 根据业务情况,使用异步化和最终一致性. CPU,内存,网络IO,磁盘IO这些瓶颈,需要知道在合适的场景牺牲什么换取什么.通俗的讲是空间换时间,还是时间换空间.不同业务场景下,要做合理的取舍.例如多线程并发查询后merge.这个就是利用C

设计抗混叠滤波器的三大指导原则(转载)

原文地址:http://www.ednchina.com/ART_8800523945_28_19999_TA_f443c125.HTM?click_from=8800032061,9950148743,2015-12-19,EDNCOL,NEWSLETTER 抗混叠滤波器的设计包括一个过采样架构和一个补充数字抽取滤波器.这个过采样架构将那奎斯特频率放置在远离信号带宽的位置上,而数字抽取滤波器衰减大多数有害的带外信号.当把二者组合在一起时,它们可以实现更加自由的抗混叠滤波器响应,只需几个分立式组

openstack 升级设计要求的指导原则

不知道其他软件有没有类似的指导原则. Theory of Upgrade Grenade works under the following theory of upgrade. New code should work with old configs(新代码兼容旧的配置) The upgrade process should not require a config change to run a new release. All config behavior is supposed to

【转】ADI的良好接地指导原则

ADI的良好接地指导原则 接地无疑是系统设计中最为棘手的问题之一.尽管它的概念相对比较简单,实施起来却很复杂,遗憾的是,它没有一个简明扼要可以用详细步骤描述的方法来保证取得良好效果,但如果在某些细节上处理不当,可能会导致令人头痛的问题. 对于线性系统而言,"地"是信号的基准点.遗憾的是,在单极性电源系统中,它还成为电源电流的回路.接地策略应用不当,可能严重损害高精度线性系统的性能. 对于所有模拟设计而言,接地都是一个不容忽视的问题,而在基于PCB的电路中,适当实施接地也具有同等重要的意

自动化软件测试的指导原则[译]

在最近与软件测试人员的谈话中,我不断听到同样的事情:测试自动化在大多数项目中是需要的.合理使用以下指导原则,可以有助于自动化测试工作的开展. 指导原则1:避免过早开发测试脚本 我们鼓励软件测试人员,在应用程序开发初期就开展自动化测试.但是,在程序功能还不齐全的情况下,编写自动化测试脚本,效果会大打折扣.如果在程序还在不停改动的情况下编写测试脚本的话,你不得不随时重写你的脚本.但是我们不建议等到整个程序都稳定了才去补充测试脚本,比较好的方法是,审查整个程序,为程序中比较完整的功能去编写自动化测试脚