跳转到主要内容
国际橡塑展报名
国际橡塑展报名
国际橡塑展报名

Verilog

Vivado使用技巧(28):支持的Verilog语法

judy 提交于

复杂的电路设计通常使用自顶向下的设计方法,设计过程中的不同阶段需要不同的设计规格。比如架构设计阶段,需要模块框图或算法状态机(ASM)图表这方面的设计说明。一个框图或算法的实现与寄存器(reg)和连线(wire)息息相关。Verilog便具有将ASM图表和电路框图用计算机语言表达的能力,本文将讲述Vivado综合支持的Verilog硬件描述语言

利用Vivado学习Verilog之 UG901

judy /

<font color="#FF8000">作者:小鱼,Xilinx学术合作</font>

<strong>一.概述</strong>

在文章《Verilog HDL入门思路梳理》我们说过应该如何去学习Verilog HDL描述。然而第一步,我们需要知道Verilog有哪些语法,它是否可以综合,可以用这个语法来描述什么逻辑功能电路呢?

其实Xilinx已经贴心地准备好了答案,还给你准备了一堆参考实例。

<strong>二. Verilog行为级描述</strong>
资料名称“Vivado Design Suite User Guide - Synthesis - UG901 (v2018.2) June 6, 2018”。(注:大家可以在Xilinx官网,或者安装DocNav(Xilinx Documentation Navigator) 并在这里面找到这份资料。)

深入理解阻塞和非阻塞赋值的区别

judy /

阻塞与非阻塞赋值的语言结构是Verilog语言中最难理解的概念之一。

有这样的两个要点:
(1)在描述组合逻辑的always块中用阻塞赋值,则综合成组合逻辑的电路结构;
**(2)在描述时序逻辑的always块中用非阻塞赋值,则综合成时序逻辑的电路结构。

这样做的原因是:**

这是因为要使综合前仿真和综合后仿真一致的缘故。

为了更好地理解上述要点,我们需要对Verilog语言中的阻塞赋值和非阻塞赋值的功能和执行时间上的差别有深入的理解。我们定义下面的两个关键字:
RHS——方程式右手方向的表达式或变量可分别缩写成 RHS表达式或RHS变量;
LHS ——方程式左手方向的表达式或变量可分别缩写成LHS 表达式或LHS变量。

IEEE Verilog标准定义了有些语句有确定的执行时间,有些语句没有确定的执行时间。若有两条或两条以上的语句准备在同一时间执行,但由于语句的排列顺序不同,却产生了不同的输出结果。这就是造成Verilog模块冒险和竞争的原因。为了避免产生竞争,理解阻塞和非阻塞赋值在执行时间上的差别是至关重要的。

<strong>1、阻塞赋值</strong>