Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Stop ISE from trimming signals for a ring oscillator?

24 views
Skip to first unread message

Sam Kerr

unread,
Nov 21, 2009, 4:34:37 PM11/21/09
to
Hello all,

I'm trying to implement a ring oscillator using 1 nand gate connected to a
series of not gates. Synthesis produces no relevant warnings, but
translation says all the wires are source-less and is removing them,
despite settings I have provided through constraints.

In the ISE map options, I have checked "Register Duplication" as well as
adding a Keep constraint in the verilog source, which is below.

Here is an example of some of the messages I'm seeing:

The signal "puf1/mux2/N1" is sourceless and has been removed.
The signal "puf1/mux2/N2" is sourceless and has been removed.
The signal "puf1/mux1/N1" is sourceless and has been removed.
The signal "puf1/mux1/N2" is sourceless and has been removed.
The signal "puf1/oscillator1/N0" is sourceless and has been removed.
The signal "puf1/oscillator1/N1" is sourceless and has been removed.
The signal "puf1/oscillator1/inputGate/N1" is sourceless and has been removed.
The signal "puf1/oscillator1/inputGate/N2" is sourceless and has been removed.
The signal "puf1/oscillator1/GATELOOP[35]..endGate/N1" is sourceless and has been removed.
The signal "puf1/oscillator1/GATELOOP[35]..endGate/N2" is sourceless and has been removed.
The signal "puf1/oscillator1/GATELOOP[35].gate/N1" is sourceless and has been removed.
The signal "puf1/oscillator1/GATELOOP[35].gate/N2" is sourceless and has been removed.
The signal "puf1/oscillator1/GATELOOP[34].gate/N1" is sourceless and has been removed.
The signal "puf1/oscillator1/GATELOOP[34].gate/N2" is sourceless and has been removed.
...

What is also interesting, is my Verilog source does not define an N1 or N2
signal, and I can't figure out what these correspond to.

Here is the Verilog code I'm using.

module ringoscillator(
output wire out
);

(* KEEP = "TRUE" *) wire connector;
(* KEEP = "TRUE" *) wire [36:0] w;

nandgate inputGate(.i1(connector), .i2(1'b1), .out(w[0]));

// generate inverters
genvar i;

generate
for(i = 0; i < 36; i = i + 1)
begin : GATELOOP
invertergate gate(.in(w[i]), .out(w[i+1]));
if(i+1 == 36)
invertergate endGate(.in(w[i+1]), .out(connector));
end
endgenerate

assign out = connector;

endmodule

module nandgate(input wire i1, i2, output wire out);
assign out = ~(i1 & i2);
endmodule

module invertergate(input wire in, output wire out);
assign out = ~in;
endmodule

Are there any flaws in the code or settings I can make to stop ISE from removing my logic?

Thanks for any help!

Antti

unread,
Nov 21, 2009, 4:56:14 PM11/21/09
to

WHY SO COMPLICATED??

just take xilinx own ring oscillator code, it works
(one place is s3e sk ref designs, freq measurement example)

Antti

Sam Kerr

unread,
Nov 22, 2009, 12:07:41 PM11/22/09
to Antti


Thanks for this advice, where can I find these designs?

Antti

unread,
Nov 22, 2009, 1:44:04 PM11/22/09
to

read what i said :)

www.xilinx.com
look for S3E starter kit
reference designs
picoblaze frequency meter

Antti


0 new messages