微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Verilog中任务的调用

Verilog中任务的调用

时间:10-02 整理:3721RD 点击:
我的很多模块中都需要进行乘加运算,于是我做了两个跟乘法器,加法器通讯的任务.请问在Verilog中,在不同的模块中怎样调用同一个任务?我把所有task放在一个文件中取名为task.v,然后在不同的模块中用`include去包含这个文件.但编译通不过.Verilog能在不同的模块中调用同一个任务么?

Verilog中任务的调用
你的include语句是放在module ****();的上面还是下面?

Verilog中任务的调用
放在模块的最上面一行.但问题的关键是task.v本身编译就通不过.
我的task.v文件如下:
//*************************************************************
//********Define multiplier and adder interface****************
//*************************************************************
task Mult1;
input [15:0]in1;
input [15:0]in2;
output [15:0]a;
output [15:0]b;
output latch;

reg [15:0]a;
reg [15:0]b;
reg latch;

begin
a=in1;
b=in2;
latch=1'b1;
end
endtask
需要调用这个任务的模块如下:
`include "task.v"
module dsp(******);
*****
endmodule

Verilog中任务的调用
改成:
module dsp(****);
`include "task.v"
*****
endmodule

Verilog中任务的调用
放上放下有什么区别?

Verilog中任务的调用
楼上说得有问题把?怎么能这样放?

Verilog中任务的调用
是不是应该把那个模块的程序代码也应该放进去
还是和vhdl一样,可以调用其他模块
我现在就在开发一个系统设计,其中很多模块设计
怎么具体去调用

Verilog中任务的调用
写成task.h吧

Verilog中任务的调用
把路径写完整,或是放在同一个目录.如果是用modelsim注意放在仿真的目录.
`include
应放在MODULE前面.

Verilog中任务的调用
task应该放在module里面,放在外面编译肯定通不过。
为什么要用task呢?据说task不可综合。

verilog dsp.v task.v
task Mult1;
input [15:0]in1;
input [15:0]in2;
output [15:0]a;
output [15:0]b;
output latch;

reg [15:0]a;
reg [15:0]b;
reg latch;

always@(in1 or in2)
begin
a= #1 in1;
b= #1 in2;
latch= #1 1'b1;
end
endtask

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top