电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

多年之后重新看verilog记录

 

1.1 声明(declaration)存在于

Begin:name

HERE

End

fork:name

HERE

Join

Function;

HERE

Endfunction

Task;

HERE

Endtask

Module;

HERE

Endmodule

其中声明包含:input,output,register,integer,parameter等,但并不是所有的声明都可以存在于上述的结构中.

1.2 always,initial,task和function是4中construct。

但是4中construct的结构是不同的。

1.3        

module ModuleName [( Port,...)];
ModuleItems...
endmodule
macromodule ModuleName [( Port,...)];
ModuleItems...
endmodule
ModuleItem = {either}
Declaration
Defparam
ContinuousAssignment
Instance
Specify
Initial
Always
Declaration = {either}
Port
Net
Register
Parameter
Event
Task
Function

1.4       parameter声明存在于:

Begin:name

HERE

End

fork:name

HERE

Join

Function;

HERE

Endfunction

Task;

HERE

Endtask

Module;

HERE

Endmodule

参数在编译的时候被替换掉。

1.5  statements包括以下:

TimingControl Statement {语句可以为空}
Begin
Fork
ProceduralAssignment
ProceduralContinuousAssignment
Force
If
Case
For
Forever
Repeat
While
Disable
-> EventName; {事件触发器}
TaskEnable

在何处使用
initial-
always-
begin--end
fork--join
task--endtask {允许为空}
function--endfunction
if()--else- {允许为空}
case- label:--endcase {允许为空}
for()-
forever-
repeat()-
while()-

1.6  task

Task taskname;

Declaration

statement

Endtask

其中declaration包括:

input [ Range] Name,...;
output [ Range] Name,...;
inout [ Range] Name,...;
Register
Parameter
Event

1.7  function

function [ RangeOrType] FunctionName;
Declarations...
Statement
endfunction

Declaration = {either}

input [ Range] Name,...;
Register
Parameter
Event

1.8 begin语句块

begin [: Label
[ Declarations...]]
Statements...
end
Declaration = {either} Register Parameter Event

1.9 fork语句块

fork [ : Label
[ Declarations...]]
Statements...
join
Declaration = {either} Register Parameter Event

博主
windzjy@tom.com
windzjy's Blog
windzjy
点击跳转