J
Jan Bruns
Guest
Hallo,
First, a working example:
module testrom1 (a,o);
input a;
output o;
reg o;
always @(a) begin
o = a;
end
endmodule
While the following 2 prodcuce errors:
module testrom2 (a,o);
input a;
output o;
reg o;
always @(a) assign o = a;
endmodule
-> ERROR:Xst:855 - Unsupported procedural assignment for signal <o>.
module testrom3 (a,o);
input a;
output o;
always @(a) assign o = a;
endmodule
Te me, this looked like xst doesn't like assignment to nets.
But, in contrast, look at this possibly working example:
module testmul(q, a,b, clk);
output [31:0] q;
reg [31:0] q;
input [15:0] a,b;
input clk;
always @(posedge clk)
begin
q = a*b;
assign q = q; //coment this, and the pad won't get result
end
endmodule
With "assign q = q;" commented out, timingan can't detect"a<0>(Pad) to q<31>(Pad)"-Path.
What's the reason for this?
Gruss
Jan Bruns
First, a working example:
module testrom1 (a,o);
input a;
output o;
reg o;
always @(a) begin
o = a;
end
endmodule
While the following 2 prodcuce errors:
module testrom2 (a,o);
input a;
output o;
reg o;
always @(a) assign o = a;
endmodule
-> ERROR:Xst:855 - Unsupported procedural assignment for signal <o>.
module testrom3 (a,o);
input a;
output o;
always @(a) assign o = a;
endmodule
ERROR:HDLCompilers:42 - testrom.v line 4 Illegal LHS of procedural continuous assignment
Te me, this looked like xst doesn't like assignment to nets.
But, in contrast, look at this possibly working example:
module testmul(q, a,b, clk);
output [31:0] q;
reg [31:0] q;
input [15:0] a,b;
input clk;
always @(posedge clk)
begin
q = a*b;
assign q = q; //coment this, and the pad won't get result
end
endmodule
With "assign q = q;" commented out, timingan can't detect"a<0>(Pad) to q<31>(Pad)"-Path.
What's the reason for this?
Gruss
Jan Bruns