我正在尝试编译一些非常基本的Verilog文件,其中模块输入/输出由教师给出,我编写单个数据流分配,但是我在教师的部分得到了语法错误。这是源文件的精简版本:
var gulp = require('gulp')
var jade = require('gulp-jade')
var browserSync = require('browser-sync').create()
gulp.task('jade', function(){
gulp.src('app/shit*/*.jade', {base: 'app'})
.pipe(jade())
.pipe(gulp.dest('build'))
})
gulp.task('watch', function() {
gulp.watch('app/shit*/*.jade', ['jade'])
})
gulp.task('browser-sync', function() {
browserSync.init({
server: {
baseDir: "build"
}
})
gulp.watch("build/**/*.html", browserSync.reload)
gulp.watch("build/**/*.css", browserSync.reload)
})
gulp.task('default', ['watch', 'browser-sync'])
我用module syntax1 (
input A, B,
output C
);
assign C = A && B; // Only line that I can modify
endmodule
编译它并获得此输出:
verilog syntax1.v
如果我更改前三行(我希望不是我必须做的)并重新编译,它可以工作:
Host command: [path removed for stackoverflow]/verilog.exe
Command arguments:
syntax1.v
Tool: VERILOG-XL 08.20.001-d log file created Jan 9, 2016 17:56:34
Tool: VERILOG-XL 08.20.001-d Jan 9, 2016 17:56:34
[license is here]
Compiling source file "syntax1.v"
Error! syntax error [Verilog]
"syntax1.v", 2: input<-
Error! Input, output or inout (C) not defined in port
list [Verilog-INOPL]
"syntax1.v", 3:
Error! syntax error [Verilog]
"syntax1.v", 4: )<-
Error! Identifier (A) not declared [Verilog-IDSND]
"syntax1.v", 6:
Error! Identifier (B) not declared [Verilog-IDSND]
"syntax1.v", 6:
5 errors
End of Tool: VERILOG-XL 08.20.001-d Jan 9, 2016 17:56:34
Verilog输出:
module syntax2 (A, B, C);
input A, B;
output C;
assign C = A && B;
endmodule
所以要么Verilog不喜欢参数列表中声明的输入和输出,要么我做错了。我看到网页示例就像在Host command: [path removed for stackoverflow]/verilog.exe
Command arguments:
syntax2.v
Tool: VERILOG-XL 08.20.001-d log file created Jan 9, 2016 17:49:02
Tool: VERILOG-XL 08.20.001-d Jan 9, 2016 17:49:02
[license is here]
Compiling source file "syntax2.v"
Highest level modules:
syntax2
0 simulation events (use +profile or +listcounts option to count)
CPU time: 0.0 secs to compile + 0.0 secs to link + 0.0 secs in simulation
End of Tool: VERILOG-XL 08.20.001-d Jan 9, 2016 17:49:03
中完成的那样,所以我认为这是我最终的配置问题。我是否有可能针对不同版本的Verilog进行编译?
答案 0 :(得分:1)
您正在使用ANSI样式标题的示例代码,IEEE标准1364-2001(又名Verilog-2001)及更高版本支持该样式代码。根据维基百科的List of HDL sinulators,Verilog-XL仅支持IEEE Std 1364-1995(又名Verilog-1995)。也许Cadence添加了Verilog-2001支持,维基百科没有记录,查找或尝试-2001
,-v2k
或类似的命令行选项。
你屏蔽了你的路径,所以我不知道你是不是单独或通过Cadence Incisive安装了Verilog-XL。如果您有敏锐内容,请尝试使用ncverilog
或irun
代替verilog
您应该考虑更改为其他模拟器。现代模拟器不仅限于Verilog-1995。
如果要继续使用Verilog-XL,则需要将标题样式更改为非ANSI样式;以下示例。注意:Verilog-1995不支持@*
,因此除非您使用脚本为您声明敏感度列表,否则FSM将更难编写。
module syntax1 ( A, B, C );
input A;
input B;
output C;
assign C = A && B; // Only line that I can modify
endmodule