Xilinx ISE 8.1i Trouble

A

Alex

Guest
The VHDL source and UCF file are at the bottom of this document.

The error that I'm getting is:
NCD was not produced. All logic was removed from design. This
is usually due to having no input or output PAD connections in the
design and
no nets or symbols marked as 'SAVE'. You can either add PADs or
'SAVE'
attributes to the design, or run 'map -u' to disable logic trimming
in the
mapper.

I've got all my ports connected (see the UCF), and my logic seems right
(it's just a sample from the Xilinx "Quick Start") ... what am I
missing? I can get something simple working (like, OUTPUT(0) <=
SWITCH1; -- as the whole body), but anything more complex generates
this error.

Any help would be greatly appreciated. Thank you!



The VHDL:
entity ffff is
Port ( CLOCK : in STD_LOGIC;
DIRECTION : in STD_LOGIC;
COUNT_OUT : out STD_LOGIC_VECTOR (3 downto 0));
end ffff;

architecture Behavioral of ffff is
signal count_int : std_logic_vector(3 downto 0) := "0000";
begin
process (CLOCK)
begin
if CLOCK='1' and CLOCK'event then
if DIRECTION='1' then
count_int <= count_int + 1;
else
count_int <= count_int - 1;
end if;
end if;
end process;
COUNT_OUT <= count_int;
end Behavioral;



The UCF:
NET "CLOCK" LOC = "C9" | IOSTANDARD = LVCMOS33;
NET "CLOCK" PERIOD = 20.0ns HIGH 40%;

NET "COUNT_OUT<0>" LOC = "F12" ;
NET "COUNT_OUT<1>" LOC = "E12" ;
NET "COUNT_OUT<2>" LOC = "E11" ;
NET "COUNT_OUT<3>" LOC = "F11" ;
NET "DIRECTION" LOC = "L13" ;
 
Try

NET "COUNT_OUT[0]" LOC = "F12" ;
NET "COUNT_OUT[1]" LOC = "E12" ;
NET "COUNT_OUT[2]" LOC = "E11" ;
NET "COUNT_OUT[3]" LOC = "F11" ;

-girmann

Alex wrote:
The VHDL source and UCF file are at the bottom of this document.

The error that I'm getting is:
NCD was not produced. All logic was removed from design. This
is usually due to having no input or output PAD connections in the
design and
no nets or symbols marked as 'SAVE'. You can either add PADs or
'SAVE'
attributes to the design, or run 'map -u' to disable logic trimming
in the
mapper.

I've got all my ports connected (see the UCF), and my logic seems right
(it's just a sample from the Xilinx "Quick Start") ... what am I
missing? I can get something simple working (like, OUTPUT(0) <=
SWITCH1; -- as the whole body), but anything more complex generates
this error.

Any help would be greatly appreciated. Thank you!



The VHDL:
entity ffff is
Port ( CLOCK : in STD_LOGIC;
DIRECTION : in STD_LOGIC;
COUNT_OUT : out STD_LOGIC_VECTOR (3 downto 0));
end ffff;

architecture Behavioral of ffff is
signal count_int : std_logic_vector(3 downto 0) := "0000";
begin
process (CLOCK)
begin
if CLOCK='1' and CLOCK'event then
if DIRECTION='1' then
count_int <= count_int + 1;
else
count_int <= count_int - 1;
end if;
end if;
end process;
COUNT_OUT <= count_int;
end Behavioral;



The UCF:
NET "CLOCK" LOC = "C9" | IOSTANDARD = LVCMOS33;
NET "CLOCK" PERIOD = 20.0ns HIGH 40%;

NET "COUNT_OUT<0>" LOC = "F12" ;
NET "COUNT_OUT<1>" LOC = "E12" ;
NET "COUNT_OUT<2>" LOC = "E11" ;
NET "COUNT_OUT<3>" LOC = "F11" ;
NET "DIRECTION" LOC = "L13" ;
 
Same exact error, I'm afraid. Thanks for the try, though.

girmann@gmail.com wrote:
Try

NET "COUNT_OUT[0]" LOC = "F12" ;
NET "COUNT_OUT[1]" LOC = "E12" ;
NET "COUNT_OUT[2]" LOC = "E11" ;
NET "COUNT_OUT[3]" LOC = "F11" ;

-girmann

Alex wrote:
The VHDL source and UCF file are at the bottom of this document.

The error that I'm getting is:
NCD was not produced. All logic was removed from design. This
is usually due to having no input or output PAD connections in the
design and
no nets or symbols marked as 'SAVE'. You can either add PADs or
'SAVE'
attributes to the design, or run 'map -u' to disable logic trimming
in the
mapper.

I've got all my ports connected (see the UCF), and my logic seems right
(it's just a sample from the Xilinx "Quick Start") ... what am I
missing? I can get something simple working (like, OUTPUT(0) <=
SWITCH1; -- as the whole body), but anything more complex generates
this error.

Any help would be greatly appreciated. Thank you!



The VHDL:
entity ffff is
Port ( CLOCK : in STD_LOGIC;
DIRECTION : in STD_LOGIC;
COUNT_OUT : out STD_LOGIC_VECTOR (3 downto 0));
end ffff;

architecture Behavioral of ffff is
signal count_int : std_logic_vector(3 downto 0) := "0000";
begin
process (CLOCK)
begin
if CLOCK='1' and CLOCK'event then
if DIRECTION='1' then
count_int <= count_int + 1;
else
count_int <= count_int - 1;
end if;
end if;
end process;
COUNT_OUT <= count_int;
end Behavioral;



The UCF:
NET "CLOCK" LOC = "C9" | IOSTANDARD = LVCMOS33;
NET "CLOCK" PERIOD = 20.0ns HIGH 40%;

NET "COUNT_OUT<0>" LOC = "F12" ;
NET "COUNT_OUT<1>" LOC = "E12" ;
NET "COUNT_OUT<2>" LOC = "E11" ;
NET "COUNT_OUT<3>" LOC = "F11" ;
NET "DIRECTION" LOC = "L13" ;
 
"Alex" <alexmchale@gmail.com> wrote in message
news:1150811188.026823.5240@r2g2000cwb.googlegroups.com...

The error that I'm getting is:
NCD was not produced. All logic was removed from design. This
is usually due to having no input or output PAD connections in the
design and
no nets or symbols marked as 'SAVE'.
What are you using to synthesize your design?

If you are using XST (i.e. synthesis within ISE), make sure the "add I/O
pads" option is checked in the GUI or passed on the command line. Otherwise
the netlist created from synthesis will have no I/Os, and the mapper will
throw away your design because it cannot affect the outside world...

Cheers,

-Ben-
 
Alex wrote:
The VHDL source and UCF file are at the bottom of this document.

The error that I'm getting is:
NCD was not produced. All logic was removed from design. This
is usually due to having no input or output PAD connections in the
design and
no nets or symbols marked as 'SAVE'. You can either add PADs or
'SAVE'
attributes to the design, or run 'map -u' to disable logic trimming
in the
mapper.
Might I suggest you use use the numeric_std library? That works fine for
me. From the par report file:

Device Utilization Summary:

Number of BUFGMUXs 1 out of 16 6%
Number of External IOBs 6 out of 140 4%
Number of LOCed IOBs 6 out of 6 100%

Number of SLICEs 3 out of 1408 1%

Using this file:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity ffff is
Port ( CLOCK : in STD_LOGIC;
DIRECTION : in STD_LOGIC;
COUNT_OUT : out STD_LOGIC_VECTOR (3 downto 0));
end ffff;

architecture Behavioral of ffff is
signal count_int : unsigned(3 downto 0) := "0000";
begin
process (CLOCK)
begin
if CLOCK='1' and CLOCK'event then
if DIRECTION='1' then
count_int <= count_int + 1;
else
count_int <= count_int - 1;
end if;
end if;
end process;
COUNT_OUT <= std_logic_vector(count_int);
end Behavioral;
 
Yes, I am indeed using XST. Where is this "add I/O pads" option within
ISE?

Thanks!

Alex McHale


Ben Jones wrote:
"Alex" <alexmchale@gmail.com> wrote in message
news:1150811188.026823.5240@r2g2000cwb.googlegroups.com...

The error that I'm getting is:
NCD was not produced. All logic was removed from design. This
is usually due to having no input or output PAD connections in the
design and
no nets or symbols marked as 'SAVE'.

What are you using to synthesize your design?

If you are using XST (i.e. synthesis within ISE), make sure the "add I/O
pads" option is checked in the GUI or passed on the command line. Otherwise
the netlist created from synthesis will have no I/Os, and the mapper will
throw away your design because it cannot affect the outside world...

Cheers,

-Ben-
 
"Alex" <alexmchale@gmail.com> wrote in message
news:1150821352.453929.125790@c74g2000cwc.googlegroups.com...
Yes, I am indeed using XST. Where is this "add I/O pads" option within
ISE?
Process Properties for XST | Xilinx Specific Options | Add I/O Buffers
(should be checked).

Cheers,

-Ben-
 
In that case, that did not solve the problem. That was already
enabled.

Any other thoughts? This is a complete road block for me in
development. I just don't understand why this thing won't work with
anything more complicated than directly wiring the switch to the LED.

I can send a zip of my project to anyone willing to help. I'm using
Xilinx 8.1i WebPACK, with the latest service pack.

Thank you.

Alex McHale

Ben Jones wrote:
"Alex" <alexmchale@gmail.com> wrote in message
news:1150821352.453929.125790@c74g2000cwc.googlegroups.com...
Yes, I am indeed using XST. Where is this "add I/O pads" option within
ISE?

Process Properties for XST | Xilinx Specific Options | Add I/O Buffers
(should be checked).

Cheers,

-Ben-
 
Delving a bit deeper, I see that I am getting the following warnings
before the final error. When I disable "Add I/O Buffers," I get these
warnings on all of my lines. When it is enabled, I only get it for my
CLOCK.

While I'm sure my net list is correct, this must be a symptom of the
issue that's preventing my vhdl to load.

Any ideas?




WARNING:NgdBuild:483 - Attribute "LOC" on "CLOCK" is on the wrong type
of
object. Please see the Constraints Guide for more information on
this
attribute.
WARNING:NgdBuild:483 - Attribute "IOSTANDARD" on "CLOCK" is on the
wrong type of
object. Please see the Constraints Guide for more information on
this
attribute.
 
Alex wrote:

While I'm sure my net list is correct, this must be a symptom of the
issue that's preventing my vhdl to load.

Any ideas?
Get a vhdl simulator and learn to use it.

-- Mike Treseler
 
Not that I don't appreciate your brilliant insight, but all of the
above has simulated just fine. The problem is in actually implementing
it. I'm having a software issue, somewhere, and the question is..
where.

Thanks, though. You're a real gentleman
..

Mike Treseler wrote:
Alex wrote:

While I'm sure my net list is correct, this must be a symptom of the
issue that's preventing my vhdl to load.

Any ideas?

Get a vhdl simulator and learn to use it.

-- Mike Treseler
 
Alex (alexmchale@gmail.com) wrote:
: Delving a bit deeper, I see that I am getting the following warnings
: before the final error. When I disable "Add I/O Buffers," I get these
: warnings on all of my lines. When it is enabled, I only get it for my
: CLOCK.

: While I'm sure my net list is correct, this must be a symptom of the
: issue that's preventing my vhdl to load.

: Any ideas?


: WARNING:NgdBuild:483 - Attribute "LOC" on "CLOCK" is on the wrong type
: of
: object. Please see the Constraints Guide for more information on
: this
: attribute.

Perhaps you might want ro refer to the Constraints Guied as mentioned in
the warning? It might prove instructive.

Synchronous clocks are routed on dedicated clock nets, and if you're not
brining the clock into the device on a dedicated clock input pin then
things won't work as it is not possible to directly connect the "CLOCK"
net to a non clock pin. You'll need to insert the correct buffer.

cds


: WARNING:NgdBuild:483 - Attribute "IOSTANDARD" on "CLOCK" is on the
: wrong type of
: object. Please see the Constraints Guide for more information on
: this
: attribute.
 
Alex wrote:
Not that I don't appreciate your brilliant insight, but all of the
above has simulated just fine.
Sorry, I missed that point.
I'll try your code on ISE and quartus when I get to work.

-- Mike Treseler
 
Hi Alex,

I can take a look at it if you send it to me.

/Mikhail


"Alex" <alexmchale@gmail.com> wrote in message
news:1150894390.663027.173230@g10g2000cwb.googlegroups.com...
In that case, that did not solve the problem. That was already
enabled.

Any other thoughts? This is a complete road block for me in
development. I just don't understand why this thing won't work with
anything more complicated than directly wiring the switch to the LED.

I can send a zip of my project to anyone willing to help. I'm using
Xilinx 8.1i WebPACK, with the latest service pack.

Thank you.

Alex McHale

Ben Jones wrote:
"Alex" <alexmchale@gmail.com> wrote in message
news:1150821352.453929.125790@c74g2000cwc.googlegroups.com...
Yes, I am indeed using XST. Where is this "add I/O pads" option
within
ISE?

Process Properties for XST | Xilinx Specific Options | Add I/O Buffers
(should be checked).

Cheers,

-Ben-
 
Try commenting out the very first line of your UCF file (add # symbol in
the beginning of the line). It seems as the pin you chose is not a proper
clock pin...

/Mikhail



"Alex" <alexmchale@gmail.com> wrote in message
news:1150896252.928027.280080@c74g2000cwc.googlegroups.com...
Delving a bit deeper, I see that I am getting the following warnings
before the final error. When I disable "Add I/O Buffers," I get these
warnings on all of my lines. When it is enabled, I only get it for my
CLOCK.

While I'm sure my net list is correct, this must be a symptom of the
issue that's preventing my vhdl to load.

Any ideas?




WARNING:NgdBuild:483 - Attribute "LOC" on "CLOCK" is on the wrong type
of
object. Please see the Constraints Guide for more information on
this
attribute.
WARNING:NgdBuild:483 - Attribute "IOSTANDARD" on "CLOCK" is on the
wrong type of
object. Please see the Constraints Guide for more information on
this
attribute.
 
Mike Treseler wrote:

I'll try your code on ISE and quartus when I get to work.
This file:

http://home.comcast.net/~mike_treseler/ffff.vhd

synthesizes fine with quartus 6.0 and ise8.1i
using a clean project and default contraints.
http://home.comcast.net/~mike_treseler/ffff.pdf

-- Mike Treseler


Device utilization summary:
---------------------------
Selected Device : 4vfx12sf363-12
Number of Slices: 3 out of 5472 0%
Number of Slice Flip Flops: 4 out of 10944 0%
Number of 4 input LUTs: 4 out of 10944 0%
Number of bonded IOBs: 6 out of 240 2%
Number of GCLKs: 1 out of 32 3%
---------------------------
Constraint | Requested| Actual |
Autotimespec constraint for clock net | N/A | 1.190ns|
 
I snagged a different computer, installed WebPACK, the service packs,
and tried again. It worked. It would appear that something is
"broken" in my install on my workstation.

Now to figure out how to program the flash so that the circuit "sticks"
between power cycles...

Thanks for looking. I appreciate it.



Mike Treseler wrote:
Mike Treseler wrote:

I'll try your code on ISE and quartus when I get to work.

This file:

http://home.comcast.net/~mike_treseler/ffff.vhd

synthesizes fine with quartus 6.0 and ise8.1i
using a clean project and default contraints.
http://home.comcast.net/~mike_treseler/ffff.pdf

-- Mike Treseler


Device utilization summary:
---------------------------
Selected Device : 4vfx12sf363-12
Number of Slices: 3 out of 5472 0%
Number of Slice Flip Flops: 4 out of 10944 0%
Number of 4 input LUTs: 4 out of 10944 0%
Number of bonded IOBs: 6 out of 240 2%
Number of GCLKs: 1 out of 32 3%
---------------------------
Constraint | Requested| Actual |
Autotimespec constraint for clock net | N/A | 1.190ns|
 

Welcome to EDABoard.com

Sponsor

Back
Top