我希望将simple_port绑定到多个VHDL std_logic_vectors
。
更具体地说,我想将一个10位简单端口连接到两个5位总线,这样它们都构建了一个10位向量,我可以从Specman写入。
我试图在hdl_path()
中这样做,但在编译VHDL存根时我遇到了VHDL编译器错误。
keep port.hdl_path="A & B"
其中A和B为5位std_logic_vectors
。
答案 0 :(得分:2)
使用verilog时,使用hdl_expression()端口属性支持将simple_port连接到HDL信号串联的功能。 这甚至出现在hdl_expression()文档中:
但是,具有VHDL代理的端口不支持hdl_expression()端口属性。 解决这个问题的方法是定义两个简单的端口,每个端口都有适当的矢量大小,如下例所示:
p0: out simple_port of uint(bits:5) is instance;
p1: out simple_port of uint(bits:5) is instance;
keep p0.hdl_path()=="bus1";
keep p1.hdl_path()=="bus2";
p_top:uint(bits:10);
event write_to_p_top is change(p_top)@sys.any;
on write_to_p_top {
p1$=p_top[4:0];
p2$=p_top[9:5]
};
在您的代码中,您需要做的就是为顶级变量'p_top'指定值。 这将触发具有适当值的实际端口的写入序列。
注意:这可以使用simple_port列表
推广到任意数量的端口