reg [7:0] mema[255:0];这个例子定义了一个名为mema的存储器,该存储器有256个8位的存储器。该存储器的地址范围是0到255.
4.运算符及表达式:
1)算术运算符。
2)赋值运算符(=,
3)关系运算符(>,
4)逻辑运算符(&&
5)条件运算符(?:
6)位运算符。
7)移位运算符(<<
8)拼接运算符()
9)其它。说明:
1) ~取反。
2) &按位与。
3) |按位或。
4) ^按位异或。
5) ^按位同或(异或非)
1) =等于)
2) !不等于)
3) =等于)
4) !不等于)
===和"!=运算符不同,它在对操作数进行比较时对某些位的不定值x和高阻值z也进行比较,两个操作数必需完全一致,其结果才是1,否则为0
位拼接运算符(concatation),用这个运算符可以把两个或多个信号的某些位拼接起来进行运算操作。
a,b[3:0],w,3’b101}=
缩减运算是对单个操作数进行或与非递推运算,最后的运算结果是一位。
的二进制数c = b;相当于:c =(b[0]&b[1]) b[2] )b[3];
5.关键词:
always,and,assign,begin,buf,bufif0,bufif1,case,casex,casez,cmos,deassign,default,defparam,disable,edge,else,end,endcase,endmodule,endfunction,endprimitive,endspecify, endtable,endtask,event,for,force,forever,fork,function,highz0,highz1, if,initial, inout, input,integer,join,large,macromodule,medium,module,nand,negedge,nmos,nor,not,notif0,notifl, or, output, parameter, pmos, posedge,primitive, pull0, pull1, pullup, pulldown, rcmos, reg, releses, repeat, mmos, rpmos,rtran, rtranif0,rtranif1,scalared,small,specify,specparam,strength,strong0, strong1,supply0, supply1, table, task, time, tran, tranif0, tranif1, tri, tri0, tri1, triand,trior,trireg,vectored,wait,wand,weak0,weak1,while,wire,wor, xnor,xor
6.赋值语句和块语句。
非阻塞(non_blocking)赋值方式(如b <=a; )块结束后才完成赋值操作。2) b的值并不是立刻就改变的。
阻塞(blocking)赋值方式(如b = a; )赋值语句执行完后,块才结束。2) b的值在赋值语句执行完后立刻就改变的。
7.块语句:
块语句通常用来将两条或多条语句组合在一起,使其在格式上看更象一条语句。
顺序块块内的语句是按顺序执行的。
begin语句1;语句2;
语句n;end
并行块块内语句是同时执行的块内每条语句的延迟时间是相对于程序流程控制进入到块内时的**时间的。
fork语句1;语句2;
语句n;join
8.条件语句。
if_else
case9.循环语句。
forever:连续的执行语句…forever begin多条语句end
repeat:连续执行一条语句n次…. repeat(表达式) begin多条语句end
while :while(表达式) begin多条语句end
for :for(表达式1;表达式2;表达式3)语句。
10,结构说明语句。
initial :initial语句在**开始时对各变量进行初始化,另一用途,用initial语句来生成激励波形作为电路的测试**信号。
always:语句在**过程中是不断重复执行的。
task :任务的定义。
function :函数的目的是返回一个用于表达式的值。
11.系统调用函数:
display和$write:任务这两个函数和系统任务的作用是用来输出信息,即将参数p2到pn按参数p1给定的格式输出。
monitor:当启动一个带有一个或多个参数的$monitor任务时,**器则建立一个处理机制,使得每当参数列表中变量或表达式的值发生变化时,整个参数列表中变量或表达式的值都将输出显示。
time和$realtime:用这两个时间系统函数可以得到当前的**时刻。
finish:作用是退出**器,返回主操作系统,也就是结束**过程。
stop:任务的作用是把eda工具(例如**器)置成暂停模式。
readmemb和$readmemh :用来从文件中读取数据到存贮器中。
12.编译预处理:
define:宏定义,用一个指定的标识符(即名字)来代表一个字符串。
include :文件包含”处理,所谓“文件包含”处理是一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。
timescale :时间尺度命令用来说明跟在该命令后的模块的时间单位和时间精度。
ifdef、`else、`endif :条件编译命令,有时希望对其中的一部分内容只有在满足条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。
verilog语法
第三章 verilog hdl的基本语法。前言。verilog hdl是一种用于数字逻辑电路设计的语言。用verilog hdl描述的电路设计就是该电路的verilog hdl模型。verilog hdl既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可以用电路的功能描述也可以用元器件和...
verilog语法总结
整理 张步阳。1.如果没有明确说明,则端口都是wire线网型的,且输入端口只能是wire线网型的。型数据通常以assign关键字指定的组合逻辑信号。wire只能被assign连续赋值,reg 只能在initial和always中赋值。input端口只能定义成wire型。是寄存器数据类型的关键字。寄存...
Verilog语法运用
verilog中条件编译命令 ifdef else endif用法。一般情况下,verilog?hdl源程序中所有的行都参加编译。但是有时候希望对其中的一部份内容只有在条件满足的时候才进行编译,也就是对一部分内容指定编译的条件,这就是 条件编译 有时,希望当满足条件时对一组语句进行编译,当条件不满足...