| |||
我们在进行各级顶层文件集成时使用了emacs编辑器以及其自带的verilog文件自动连线脚本。
在手工修改各级顶层文件时应注意如下一些规则,否则,在重新进行自动连线时会导致手工修改部分被工具自动抹掉:
在例化模块时,如果端口信号的例化名和参考名不一致,应放到注释语句/*AUTOINST*/前面
人工定义的wire信号应放在注释语句/*AUTOWIRE*/前面
/*AUTOSENSE*/ // 生成敏感信号列表 /*AUTOARG*/ // 生成模块参数表 /*AUTOINST*/ // 实例化(可配合正则表达式和Lisp) /*AUTO_TEMPLATE*/ // 创建模板 /*AUTOINSTPARAM*/ // 实例化时填充参数列表 /*AUTOWIRE*/ // 声明连接线 /*AUTOREG*/ // 声明寄存器 /*AUTOINPUT*/ // 声明输入信号 /*AUTOOUTPUT*/ // 声明输出信号 /*AUTORESET*/ // 寄存器变量初始化 /*AUTOREGINPUT*/ // 声明输入激励
// Local Variables: // 定义库变量
// verilog-library-directories:("." "subdir" "subdir2") // 指定扩展目录
// verilog-library-files:("/some/path/technology.v" "/some/path/tech2.v") // 指定扩展文件
// verilog-library-extensions:(".v" ".h") // 指定附加扩展名
// eval:(verilog-read-includes) // 读取include文件
// eval:(verilog-read-defines) // 读取当前文件中的define
// eval:(verilog-read-defines "group_standard_includes.v") // 读取define文件
// End:emacs --batch --no-site-file -l verilog-mode.el filename.v -f verilog-auto -f save-buffer // 脚本运行
/2