如何在MAX +PLUS®IIVerilog HDL设计中实例化三态节点?-Altera-Intel社区-FPGA CPLD-ChipDebug

如何在MAX +PLUS®IIVerilog HDL设计中实例化三态节点?

在Verilog HDL中有三种方法可以创建三态节点:

  • 实例化bufif1模块。 syntax: bufif1 tristate_name (out, in, oe);
  • 通过创建包含单个三态基元的虚拟图形设计文件( .gdf ),文本设计文件( .tdf )或VHDL设计文件( .vhd ),在MAX + PLUS II软件中实例化三态基元(例如, ,< my_tri > .gdf )。在顶级Verilog HDL代码中实例化< my_tri > .gdf
     eq:module tristate(out,in,output_enab);
    输出;
    输入,输出_enab;
    my_tri tristate_name(.in(in),. out(out),
                               .oe(output_enab));
    endmodule 
  • ?:条件语句。
     eq:模块三态(in,out,oe);
    输入,oe;
    输出;
    分配= oe? in:1'bz;
    endmodule 

MAX + PLUS II编译器不支持三态节点的行为建模。

以下是MAX + PLUS II软件将错误实现的Verilog HDL代码示例:

模块三态(in,out,oe);

输入,oe;
输出;

reg temp;

assign out = temp;

总是@(in或oe)
如果(oe)
temp = in; // MAX + PLUS II会
                    //不将它综合为三态
其他
temp = 1'bz;

endmodule 

如果你有一个always@块来仿真三态行为,MAX + PLUS II软件将对输入和输出使能信号进行AND运算,而不是创建一个三态缓冲器。

给出的前三个示例将有效地仿真MAX + PLUS II Verilog HDL设计中的三态节点。

请登录后发表评论

    没有回复内容