差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

endprimitive [2018/09/14 16:40] (当前版本)
group001 创建
行 1: 行 1:
 +Verilog有内建原语如门,传输管,开关等,这些都是相当小的原语,如果我们需要更为复杂的原语,verilog提供了UDP,也就是用户定义原语(User Defined Primitives). 使用UDP可以建模组合电路和时序电路。\\ 
 +UDP以保留字primitive开始,以endprimitive结束,并紧接着原语的Ports/​terminals。这与module的定义类似。UDP应该定义在module和endmoudle外面。\\ 
 +View Code\\ 
 +<code verilog>​ 
 +1 //This code shows how input/​output ports 
 +2 // and primitve is declared 
 +3 primitive udp_syntax ( 
 +4 a, // Port a 
 +5 b, // Port b 
 +6 c, // Port c 
 +7 d // Port d 
 +8 ); 
 +9 output a; 
 +10 input b,c,d; 
 +11  
 +12 // UDP function code here 
 +13 endprimitive 
 +</​code>​ 
 +在上面的语法中,udp_syntax是原语的名字,包含端口a,b,c,d。\\ 
 +  - 一个UDP只可以包含一个输出和最多10个输入。 
 +  - 输出端口应该是第一个端口,然后才是一个或多个输入端口。 
 +  - 所有的UDP都是标量,也就是,向量端口不允许。 
 +  - UDP不能是双向端口。 
 +  - 时序UDP的输出端需要额外声明为reg类型。 
 +  - 组合UDP的输出端声明为reg类型是非法的。