我在编写perl/python脚本方面非常流利,但在编写代码时,我发现自己经常使用google来查找某些内置函数的操作数的确切顺序,或者我所知道的某些功能的确切名称.虽然谷歌工作得相当好,但它确实需要一些搜索,大约一半的时间,参考页面没有我需要的正确示例.
有没有人知道perl或python的任何好的快速参考,在一个地方有大部分重要的使用信息和基本的例子?我应该自己动手吗?或者大多数人使用IDE并且不需要这种帮助?(我使用vim,BTW).
谢谢!
您好Stack_overflow专家!
我想创建一个同时有效的perl代码和有效的verilog代码的文件.实际的verilog和perl功能根本不需要相关.像这样的东西的标准术语是多语言程序,但我找不到verilog + perl的例子.我知道将它作为2个单独的文件可能是一个更好的主意,但在这种情况下,将相关内容放在同一个文件中会很好.我也很好奇,知道这是否可行.
这是我想要的东西:
$THIS_IS_VERILOG_CODE = <<'_THIS_IS_VERILOG_CODE_';
module my_and_gate #(parameter WIDTH=1) (a,b,z);
input [WIDTH-1:0] a,b;
output [WIDTH-1:0] z;
assign z = a & b;
endmodule
_THIS_IS_VERILOG_CODE_
`ifdef _THIS_IS_PERL_CODE_
sub print_instance {
my ($a, $b, $z, $i, $width) = @_;
print "my_and_gate and$i #(.WIDTH($width)) (.a($a), .b($b), .z($z));\n";
}
&print_instance(first, second, both, 5, 3);
`endif // _THIS_IS_PERL_CODE_
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何以不会弄乱相反语言的方式编写*THIS_IS*行.
更新:可能值得注意的是,当以perl身份运行时,我希望该文件只生成perl代码的结果:
my_and_gate and5 #(.WIDTH(3)) (.a(first), .b(second), .z(both));
Run Code Online (Sandbox Code Playgroud)
当解析为Verilog时,我希望它被解释为verilog部分:
module my_and_gate #(parameter WIDTH=1) (a,b,z);
input [WIDTH-1:0] a,b;
output [WIDTH-1:0] z;
assign z …Run Code Online (Sandbox Code Playgroud)