【Verilog高级教程】换种方式定义位宽,解读“+:“ 本文介绍了在 Verilog 中常见的位宽定义方式以及新引入的":+" 和 "-:" 语法。在常规位宽定义方式中,推荐使用 [msb_expr:lsb_expr] 的整数指定方式来定义位宽,以提高代码的可读性。然后,详细介绍了":+" 和 "-:" 的使用方法和规则,并通过示例代码解释了它们的工作原理和应用场景。最后,强调了这种新语法在简化大位宽设计中的重要性,以及提高代码可读性和可维护性的优势。
[静态时序分析简明教程(十二)]浅议tcl语言 本文中,我们总结了Tcl语句的相关使用方法,提供了大量的案例来讲解:Tcl的变量、表达式、运算符列表遍历、决策、循环、Tcl过程,其中还会涉及到额外的语句如open/close、gets/puts、catch、info、source、incr、exit。
[静态时序分析简明教程(十一)]模式分析与约束管理 为了区分芯片的不同模式,我们使用set_case_analysis的语句来进行sdc的约束,而针对于整体的约束管理来说,我们区分出自顶向下的方法和自底向上的方法,其各有利弊,我们可以将其结合,来进行实际芯片的约束管理。
[静态时序分析简明教程(十)]组合电路路径set_max/min_delay 组合电路路径可以使用set_input/output_delay或set_max_delay进行约束。如果路径从输入端口贯穿到输出端口,则最好使用set_input_delay和set_output_delay的组合来约束该路径。 通常,由于在大多数情况下,重点在于确保延迟小于期望值,因此,使用set_max_delay比使用 set_min_delay更频繁。
[静态时序分析简明教程(九)]多周期路径set_multicycle_path 在DMUX或者异步复位同步释放的情境中,data或复位信号并不是单拍被下一级获取,而是需要经过几个时钟周期后才进行采样,因此,我们可以通过set_multicycle_path的SDC命令进行约束,该命令不仅可以约束**建立时间检查或保持时间**检查,也可以约束捕获沿或采样沿
[静态时序分析简明教程(八)]虚假路径 对于常规时序约束外的特殊路径,我们希望时序分析工具宽松的检查或者根本不检查,针对于这些非常规的时序约束,在第八章,我们将讨论虚假路径的概念,这种路径对应工具**不检查**,而在第九章,我们将讨论多周期路径,这种路径对应工具使用宽松的检查标准。
静态时序分析简明教程(七)]端口延迟 set_input_delay和set_output_delay需要保证正确的设定,以此来确保时序的正确,假如设定不正确,单个的单元电路可能会满足自身时序要求,但整体的集成设计可能会出现时序违例,在讨论set_input_delay的过程中,我们需要关注到:启动时钟才是参考时钟,而在set_input_delay的过程中,采样时钟才是参考时钟。
静态时序分析简明教程(六)]时钟组与其他时钟特性 在第二章中,我们讨论了一个复杂的电路设计不可能只存在一个时钟域,面对不可避免地多时钟域问题,我们采用**时钟组**的方式来描述不同时钟之间的关系。而在第三章中,我们使用SDC命令去约束和描述那些非理想的时钟特性,如过渡时间、偏移、抖动、延迟等。虽然说在布局布线完成后,他们的数值或者形态会发生改变,但这些约束依旧值得学习,因为他们在整个芯片设计的前面阶段为我们提供了重要的参考。
静态时序分析简明教程(五)]生成时钟的sdc约束方法 这篇文章中,我们讲解了如何根据源时钟,产生新时钟的SDC约束方法,通过multiply的方式使时钟倍频,通过divide的方式使时钟分频,通过-source的方式标识源时钟(老时钟),也可以通过-edge的方式对齐源时钟和生成时钟的边沿,此外我们还讨论了有关时钟相位偏移的sdc相关约束方法。
静态时序分析简明教程(四)]时钟常规约束 我们讨论了STA分析/SDC约束中最为基本的命令——时钟约束,具体的内容可以区分为创建时钟,命名时钟,注释时钟,虚拟时钟,标识时钟这样的一些基本内容,而我们在下一节中,我们会讨论时钟信号的其他特性,如分频,倍频,门控等内容。