I should point out that in the digital world, while it is legal, it is discouraged. It is usually preferred to bring out the entire vector to the port and to connect only those bits that you need. Shalom ________________________________ From: owner-verilog-ams@server.eda.org [mailto:owner-verilog-ams@server.eda.org] On Behalf Of Marq Kole Sent: Thursday, October 26, 2006 1:41 PM To: verilog-ams@server.eda.org Subject: RE: Question regarding connecting individual elements of a vector port Dave, Jon, It looks like it can be done, and that the digital guys do it as well. As far as I can tell from the section 12 examples -- as forwarded by Shalom -- the correct way to describe this situation would be: module blackbox(.a(in[0])); input a; electrical [0:1] in; analog begin V(in[0]) <+ 5; V(in[1]) <+ 10; end endmodule Can I presume that this part of the syntax is also covered in the updated LRM 2.3 syntax? Cheers, Marq Marq Kole Competence Leader Robust Design Research NXP Semiconductors "Bresticker, Shalom" <shalom.bresticker@intel.com> Sent by: owner-verilog-ams@server.eda.org 25-10-2006 11:30 To "Jonathan David" <j.david@ieee.org> cc <verilog-ams@server.eda.org> Subject RE: Question regarding connecting individual elements of a vector port Classification 1364-2005 12.3.3 has the following examples: module test(a,b,c,d,e,f,g,h); input [7:0] a; // no explicit declaration - net is unsigned input [7:0] b; input signed [7:0] c; input signed [7:0] d; // no explicit net declaration - net is signed output [7:0] e; // no explicit declaration - net is unsigned output [7:0] f; output signed [7:0] g; output signed [7:0] h; // no explicit net declaration - net is signed wire signed [7:0] b; // port b inherits signed attribute from net decl. wire [7:0] c; // net c inherits signed attribute from port reg signed [7:0] f; // port f inherits signed attribute from reg decl. reg [7:0] g; // reg g inherits signed attribute from port endmodule module complex_ports ({c,d}, .e(f)); // Nets {c,d} receive the first port bits. // Name 'f' is declared inside the module. // Name 'e' is defined outside the module. // Can't use named port connections of first port. module split_ports (a[7:4], a[3:0]); // First port is upper 4 bits of 'a'. // Second port is lower 4 bits of 'a'. // Can't use named port connections because // of part-select port 'a'. module same_port (.a(i), .b(i)); // Name 'i' is declared inside the module as an inout port. // Names 'a' and 'b' are defined for port connections. module renamed_concat (.a({b,c}), f, .g(h[1])); // Names 'b', 'c', 'f', 'h' are defined inside the module. // Names 'a', 'f', 'g' are defined for port connections. // Can use named port connections. module same_input (a,a); input a; // This is legal. The inputs are tied together. module mixed_direction (.p({a, e})); input a; // p contains both input and output directions. output e; Shalom > -----Original Message----- > From: owner-verilog-ams@server.eda.org [mailto:owner-verilog- > ams@server.eda.org] On Behalf Of Jonathan David > > I wouldn't think so, BUT.. is anything like this ever done (and allowed) > in the digital Verilog world? > I would use that principle .. if the digital guys already do this then > its ok.. If they don't we shouldn't either > > ----- Original Message ---- > From: Dave Miller <David.L.Miller@freescale.com> > Is it perfectly valid to have a vector node where some of the elements > are connected to ports and others are used as internal nodes? I can't > see anything that explicitly restricts it from a syntax point of view, > but was wondering if we should disallow it, or leave it intentionally > ambiguous so that it is up to individual implementations? > The situation I am referring to is this below. > > module blackbox(in[0]); > electrical [0:1] in; > analog begin > V(in[0]) <+ 5; > V(in[1]) <+ 10; > end > endmodule > > Here I have two constant voltage sources, where in[0] is used in a port > connection, and in[1] is just a local source. Should this be allowed?Received on Thu Oct 26 05:12:02 2006
This archive was generated by hypermail 2.1.8 : Thu Oct 26 2006 - 05:12:04 PDT