FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 11-21-2009, 09:34 PM
Sam Kerr
Guest
 
Posts: n/a
Default Stop ISE from trimming signals for a ring oscillator?

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!
Reply With Quote
  #2 (permalink)  
Old 11-21-2009, 09:56 PM
Antti
Guest
 
Posts: n/a
Default Re: Stop ISE from trimming signals for a ring oscillator?

On Nov 21, 11:34*pm, Sam Kerr <stk...@purdue.edu> wrote:
> 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!


WHY SO COMPLICATED??

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

Antti
Reply With Quote
  #3 (permalink)  
Old 11-22-2009, 05:07 PM
Sam Kerr
Guest
 
Posts: n/a
Default Re: Stop ISE from trimming signals for a ring oscillator?



On Sat, 21 Nov 2009, Antti wrote:

> On Nov 21, 11:34*pm, Sam Kerr <stk...@purdue.edu> wrote:
> > 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 orN2
> > 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 fromremoving my logic?
> >
> > Thanks for any help!

>
> WHY SO COMPLICATED??
>
> just take xilinx own ring oscillator code, it works
> (one place is s3e sk ref designs, freq measurement example)
>
> Antti
>



Thanks for this advice, where can I find these designs?
Reply With Quote
  #4 (permalink)  
Old 11-22-2009, 06:44 PM
Antti
Guest
 
Posts: n/a
Default Re: Stop ISE from trimming signals for a ring oscillator?

On Nov 22, 7:07*pm, Sam Kerr <stk...@purdue.edu> wrote:
> On Sat, 21 Nov 2009, Antti wrote:
> > On Nov 21, 11:34*pm, Sam Kerr <stk...@purdue.edu> wrote:
> > > Hello all,

>
> > > I'm trying to implement a ring oscillator using 1 nand gate connectedto 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 wellas
> > > 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 beenremoved.
> > > The signal "puf1/oscillator1/inputGate/N2" is sourceless and has beenremoved.
> > > 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!

>
> > WHY SO COMPLICATED??

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

>
> > Antti

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


read what i said

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

Antti


Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Need some help creating a ring oscillator on a Spartan-3AN Sam Kerr FPGA 13 11-05-2009 08:27 PM
Disable optimisation - Ring oscillator Franck Y FPGA 7 04-10-2008 09:33 AM
Trimming of signals jonasmaes@gmail.com VHDL 2 10-12-2007 12:09 AM
Ring Oscillator Redux Kevin Neilson FPGA 5 09-23-2004 01:49 PM
ring oscillator calibration Siva Velusamy FPGA 9 08-27-2004 11:42 AM


All times are GMT +1. The time now is 05:36 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved