Verilog 我得到一个错误,说1)意外的genvar 2)未定义I 模块时钟 ( 输入逻辑wclk,rclk ); 初始开始 wclk=1'b0; rclk=1'b0; 终止 任务锁; 开始 genvar i; 生成 开始 对于(i=0;i
Verilog 我得到一个错误,说1)意外的genvar 2)未定义I 模块时钟 ( 输入逻辑wclk,rclk ); 初始开始 wclk=1'b0; rclk=1'b0; 终止 任务锁; 开始 genvar i; 生成 开始 对于(i=0;i,verilog,system-verilog,Verilog,System Verilog,Generate通常用于生成模块、函数、任务等的多个实例。它用于重复顶级结构 genvar通常用于generate块。对于您的情况,您确实不需要genvar和generate 为您提供一个小的编辑示例: module clock ( input logic wclk,rclk ); initial begin wclk = 1'b0; rclk = 1'b0; end task genclock; begin genvar i; generate
Generate
通常用于生成模块
、函数
、任务
等的多个实例。它用于重复顶级结构
genvar
通常用于generate
块。对于您的情况,您确实不需要genvar
和generate
为您提供一个小的编辑示例:
module clock
(
input logic wclk,rclk
);
initial begin
wclk = 1'b0;
rclk = 1'b0;
end
task genclock;
begin
genvar i;
generate
begin
for(i=0;i<20;i++)
begin
#10
wclk=~wclk;
rclk=~rclk;
#20
rclk=~rclk;
#20
wclk=~wclk;
#40
wclk=~wclk;
#40
rclk=~rclk;
#80
wclk=~wclk;
#100
rclk=~rclk;
#10
wclk=~wclk;
#2
rclk=~rclk;
#150
wclk=~wclk;
rclk=~rclk;
#30
wclk=~wclk;
#44
rclk=~rclk;
end
#100
$finish;
end
endgenerate
end
endtask
endmodule
模块时钟(wclk、rclk);
输入reg wclk;
输入reg rclk;
初始开始
wclk=1'b0;
rclk=1'b0;
$finish;
终止
任务锁;
整数i;
开始
对于(i=0;i
module clock(wclk, rclk);
input reg wclk;
input reg rclk;
initial begin
wclk = 1'b0;
rclk = 1'b0;
$finish;
end
task genclock;
integer i;
begin
for(i=0;i<20;i=i+1)
#10
wclk <= ~wclk;
rclk <= ~rclk;
#20
rclk <= ~rclk;
#20
wclk <= ~wclk;
#40
wclk <= ~wclk;
#40
rclk <= ~rclk;
#80
wclk <= ~wclk;
#100
rclk <= ~rclk;
#10
wclk <= ~wclk;
#2
rclk <= ~rclk;
#150
wclk <= ~wclk;
rclk <= ~rclk;
#30
wclk <= ~wclk;
#44
rclk <= ~rclk;
#100;
end
endtask
endmodule