Verilog语法遗漏点

1 关于参数定义

Parameter:parameter只能定义在端口生命的前面,如

Input[whith:0] a;

Parameter whith=4;

这样的参数定义出现在声明的后面会报错

2 关于always

always块不仅可以描述时序逻辑,也可以描述组合逻辑

如wire a,b;  assign a=b

与reg a; wire b;  [email protected](b) a=b;     可见,always块内允许阻塞赋值

不过需要注意的是

always中,等号左边的变量必须是reg型,而不能是wire型,无论是组合逻辑还是时序逻辑均成立,但是最终变量a被综合成了连线,而不是寄存器!!!!

3 关于if  else

If…else…语句,只能依附于always等程序模块不能单独使用,如果想单独使用,用三目运算符代替

4 不定态X表示不可推断电平,高阻态Z相当于断路状态

5 REG型量不一定被综合成寄存器

Verilog中,块内被赋值的变量,都必须是寄存器reg类型!!如上述2中的介绍,但是reg型变量不一定被综合成寄存器,组合逻辑中被综合成互连,不完全组合逻辑中,描述成锁存器。所以寄存器变量不一定被综合成寄存器。

6 归约运算符

归约运算符是一种单目运算符;被操作数具有一定的位宽,操作的结果都是1位。

如wire[3:0]bus 4’hf;

Wire result = &bus;

上述赋值相当于assign result=bus[0]&bus[1]&bus[2]&bus[3];//归约与运算符

如果是|,相当于assign result bus[0]| bus[1]|bus[2]|bus[3];//归约或运算符

如果是^,相当于………………………………………………………………..//归约异或运算符

实例参数重载方式,这个是为了输入端口宽度进行灵活配置的方式(遇到再看)

8 关于[email protected]()敏感列表

[email protected](posedge clk)

[email protected](signal)

关于电平敏感,表示电平发生变化就执行块内的内容。

原文地址:https://www.cnblogs.com/shaonianpi/p/9991670.html

时间: 2024-11-02 05:10:26

Verilog语法遗漏点的相关文章

Verilog语法--Gate门

Verilog中已有一些建立好的逻辑门和开关的模型.在所涉及的模块中,可通过实例引用这些门与开关模型,从而对模块进行结构化的描述. 逻辑门: and (output,input,...) nand (output,input,...) or (output,input,...) nor (output,input,...) xor (output,input,...) xnor (output,input,...) 缓冲器和与非门 buf (output,...,input) not (outp

verilog语法结构

数据流描述方式: 用数据流描述对一个设计建模的最基本方式是连续赋值语句.连续赋值语法assign [delay] LHS_net = RHS_ expression 'timescale 1ns/1ns module Decoder2_4(A,B,EN,Z); input A,B,EN; output [0:3] Z; wire Abar,Bbar;                                   //线网类型定义两个连线型变量 assign #1 Abar = A~; as

verilog语法实例学习(9)

常用的时序电路介绍 寄存器 一个触发器可以存储一位数据,由n个触发器组成的电路可以存储n位数据,我们把这一组触发器叫做寄存器.寄存器中每个触发器共用同一个时钟. 下面是n位寄存器的代码,我们通过一个参数定义n,在实例化时传入参数n. module regne (D, clk,Rst_n,E,Q); parameter n=4; input [n-1:0] D; input clk; input Rst_n; //复位信号 input E; //使能信号 output reg [n-1:0] Q;

verilog语法之memory存储器

命名规则:reg[n-1:0] 存储器名[m-1:0] 说明:这是m个n位的存储器,该存储器的地址范围是0-(m-1) 举例:reg[3:0] memo[255:0] 说明:这是256个4位存储器,该存储器地址范围是0-255 赋值:memo[200] = 4'b1010; 说明:给第200地址单元赋值4'b1010: 精确到位:memo[56][2] 说明:第56地址的第2位数据 赋值:wire data=memo[56][1]; 说明:把memo中第56地址的第1位数据赋值给data:

Verilog HDL基础语法讲解之模块代码基本结构

Verilog HDL基础语法讲解之模块代码基本结构 ? 本章主要讲解Verilog基础语法的内容,文章以一个最简单的例子"二选一多路器"来引入一个最简单的Verilog设计文件的基本结构. 以下为本章中例子中的代码: 01????/*======================================= 02????*????file neme : mux2.v 03????*????author????:????小梅哥 04????*????Verison????:????

Verilog HDL程序设计——基本要素

Verilog基本上熟悉了,继续整理一下Verilog的学习笔记吧.前面记载了Verilog的结构,写Verilog的结构有了,但是该怎么写呢?在写之前就得了解一下Verilog的一些基本要素了,也就是Verilog是怎么一点一点写出来的. 一.标识符与注释 前面已经说到,模块名的定义要符合标识符的定义,那么什么是标识符呢?它的语法是什么呢? ①标识符是赋给对象的唯一名称,通过标识符可以提及相应的对象,Verilog语法将对转义标识符中的字符逐个处理. ②标识符可以是字母.数字.下划线和美元符$

永远的流水灯(Verilog)

1. 为了更好地学习FPGA和深入理解Verilog语法,首先从最简单的流水灯做起.虽然简单,但是也包含了不少知识.通过这次实验项目,可以了解开发软件的使用及Verilog的编程方法,熟悉模块化设计的方法. 2. 该项目主要实现的功能为: (1)10位的流水灯 (2)中间两个led灯每隔100ms闪烁一次 (3)两边的led灯每隔100ms流动一下,从中间向两边流水. 3.  具体实现如下 (1)首先定义一个时间计数寄存器counter,每当达到预定的100ms时,计数寄存器就清零,否则的话寄存

verilog逻辑复制

本文转自:http://www.cnblogs.com/linjie-swust/archive/2012/03/27/FPGA_verilog.html 在FPGA设计中经常使用到逻辑复制,逻辑复制也用在很多场合. 1.    信号驱动级数非常大,扇出很大,需要增加驱动力 逻辑复制最常使用的场合时调整信号的扇出.如果某个信号需要驱动后级很多单元,此时该信号的扇出非常大,那么为了增加这个信号的驱动能力,一种办法就是插入多级Buffer,但是这样虽然能增加驱动能力,但是也增加了这个信号的路径延时.

Verilog语言

Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,两种HDL均为IEEE标准.Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的. Verilog是由Gateway Design Automation公司的工程师Prabhu Goel和菲尔·莫比(Phil Moorby)发明的.1990年,Gateway设计自动化被Cadence公司收