微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Emacs verilog AUTOINST & parameter问题

Emacs verilog AUTOINST & parameter问题

时间:10-02 整理:3721RD 点击:
Emacs Verilog比较好用,号称神的语言,但,有个问题一直困扰我,寻求无果。
假设代码中有两层hierarchy,顶层叫top,底层叫down,
即在top中例化down。
一般使用Emacs的/AUTOINST/来自动连接例化时的连接关系。
但,倘若down模块中有使用localparam参数化某个端口的位宽,
那么,/AUTOINST/连接出来的也是带参数的!
这带来的问题就是:top中也需要定义该参数!
如:down中定义
                  parameter WIDTH = 2;
                  input [WIDTH-1:0] IN;
top 中例化
                  down Udown(/AUTOINST/);  // AUTOINST两边应该是注释符,防火墙会屏蔽,所以未补全
这样的结果是 :
                  down Udown(.IN(IN[WIDTH-1:0]));// 造成了top中需要定义WIDTH!

不知各位大大有无处理方法。
PS:
我遇到的情况是down为IP,应该为设计通用而使用parameter,所以自然不希望改动down的代码;
有一种法子,是在top中例化down的时候,涉及parameter的端口,不使用/AUTOINST/补齐,不过这样似乎不太好。
1、我期望的是,或者是奢望,Emacs-verilog中,C-c C-a后,top例化模块down端口上的参数显式表现出来?
     即
                   down Udown(.IN(IN[1:0]));
      哪怕是
                   down Udown(.IN(IN[2-1:0]));
     也成啊。

2、对于parameter的处理,因为各种IP(我见过的一般都)有不少parameter设定,整合的时候,大家如何处理或者说是抽取这么多的parameter至顶层使用?

可能我太不务正业了,
不过,很渴望交流一下各位大大的做法,
诚恳请教各位大大!
在此先谢过!

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

网站地图

Top