Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search

Messages from 133375

Article: 133375
Subject: Re: FPGA area use by module?
From: jetmarc@hotmail.com
Date: Thu, 26 Jun 2008 01:52:31 -0700 (PDT)
Links: << >>  << T >>  << A >>
Philip Herzog ha escrito:
> I'm designing a Spartan 3 FPGA with ISE 9.2 and just hit the point where
> the FPGA couldn't be routed anymore since it was too full. Now I have to
> optimize or reduce some modules to win some area, but I can only guess
> which ones use a lot of area so optimizing them would win me significant space.
>
> Is there a tool (or am I overlooking something in ISE) which tells me which
> part of the design uses how much space? I'm aware that optimizing across
> hierarchy may make this information inaccurate, but still I guess it would
> show me the right way...

This is a good free 3rd party tool for this purpose: http://www.conekt.net/fpgaoptim.html

Regards,
Marc

Article: 133376
Subject: Re: Xilinx register inits
From: backhus <nix@nirgends.xyz>
Date: Thu, 26 Jun 2008 11:08:24 +0200
Links: << >>  << T >>  << A >>
Rob schrieb:
> Hi,
> 
> I have a problem with getting the correct startup values for an array
> of bytes on a Xilinx V5
> When the array is declared it is initialised using a function (which
> of course has only constant inputs). In simulation the array appears
> to be correctly initialised, but when the bitfile is downloaded it
> looks as though all the registers are initialised to zero.
> 
> Is it me or XST!?
> 
> Rob
Hi Rob,
aren't there any hints (warnings or infos) in your synthesis report.
It should be noted somewhere if a piece of code is ignored by the 
synthesis tool.

How is your array synthesized? As a bunch of FFs or as RAM? There are 
different coding rules for initialisation. But what should be working 
for both is using some attribute (see the ISE Templates)

Using a function for array/RAM/ROM initialisation is similar to using a 
file. Since this is not covered by the synthesis standard for VHDL 87 or 
93 there's no general guideline of how to do it. But some tools are able 
to do this anyway, so you have to read the tool specific instructions 
very carefully. (or search this newsgroup, it's a common topic)

Have a nice synthesis
   Eilert

Article: 133377
Subject: Re: Signal forwarding between FPGAs
From: Heinrich <Heinrich@myweb.com>
Date: Thu, 26 Jun 2008 10:34:33 +0100
Links: << >>  << T >>  << A >>
Thanks for your answer

 > Or do you intend to have two signals on each fpga like this:
 >
 > fpga1                        fpga2
 > --------                  ------------
 >        |                  |
 >   a_out|----------------->| a_in
 >        |                  |
 >   b_in |<-----------------| b_out
 >        |                  |
 > --------                  ------------

Yes that is exactly what I am trying to do, the control FPGA
is connected to a seriell Port and I wanna forward the rx and tx
signals between the FPGAs so that I can also make use them on the target
FPGA.


 >
 > In this case you need two UCF files. One for each FPGA.
 > And there's no special code needed to access the ports.

Yes, I also have and UCF File for the Target FPGA where I map the
forwarded signals from the control FPGA.
So hopefully its fine what I have implemented :)

Cheers,


Article: 133378
Subject: Re: Signal forwarding between FPGAs
From: Heinrich <Heinrich@myweb.com>
Date: Thu, 26 Jun 2008 10:36:25 +0100
Links: << >>  << T >>  << A >>

> How about timing / synchronization of the data?
> 
> Is a clock being forwarded from one FPGA to the other, to which the
> data is sychronized?
> If not, how do you expect the receiving FPGA to know when each data
> bit is valid?
> 
> If you want to treat the interface as asynchronous, you need an
> additional strobe from the tx which changes when a bit is valid, and
> some logic at the receiver side to sync to the receiver's internal
> clock to mitigate metastability issues.

The logic to handle the tx and rx bits is implemented on the target 
FPGA. So the only thing I have to do is just forward the rx bits on the
Control FPGA to the target FPGA in "real-time" and all the other stuff
is then done by a module on the target FPGA...



Article: 133379
Subject: Re: FPGA area use by module?
From: Jim Wu <jimwu88NOOOSPAM@yahoo.com>
Date: Thu, 26 Jun 2008 03:28:37 -0700 (PDT)
Links: << >>  << T >>  << A >>
You can also try ADEPT, which also extracts hierarchical logical
utilization and lots more...

ADEPT: http://home.comcast.net/%7Ejimwu88/tools/adept/
Screenshot: http://home.comcast.net/%7Ejimwu88/tools/adept/logic_util.jpg
It also exports the view to Excel spreadsheet: e.g
http://home.comcast.net/%7Ejimwu88/tools/adept/logic_util.xls


Cheers,
Jim






Article: 133380
Subject: Re: Xilinx register inits
From: Rob <BertyBooster@googlemail.com>
Date: Thu, 26 Jun 2008 03:29:19 -0700 (PDT)
Links: << >>  << T >>  << A >>
HI Eilert,

The array is being implemented as registers. I've had a look through
the syth report and there are two warnings related to the init
function and they are produced because a 5 bit vector is being
assigned to an 8 bit vector (i'm not sure why simulation didn't warn
about this).
Maybe this one bad line is causing the init function to fail? I'll
reimplement and see what I get.

Rob

On Jun 26, 9:08 am, backhus <n...@nirgends.xyz> wrote:
> Rob schrieb:> Hi,
>
> > I have a problem with getting the correct startup values for an array
> > of bytes on a Xilinx V5
> > When the array is declared it is initialised using a function (which
> > of course has only constant inputs). In simulation the array appears
> > to be correctly initialised, but when the bitfile is downloaded it
> > looks as though all the registers are initialised to zero.
>
> > Is it me or XST!?
>
> > Rob
>
> Hi Rob,
> aren't there any hints (warnings or infos) in your synthesis report.
> It should be noted somewhere if a piece of code is ignored by the
> synthesis tool.
>
> How is your array synthesized? As a bunch of FFs or as RAM? There are
> different coding rules for initialisation. But what should be working
> for both is using some attribute (see the ISE Templates)
>
> Using a function for array/RAM/ROM initialisation is similar to using a
> file. Since this is not covered by the synthesis standard for VHDL 87 or
> 93 there's no general guideline of how to do it. But some tools are able
> to do this anyway, so you have to read the tool specific instructions
> very carefully. (or search this newsgroup, it's a common topic)
>
> Have a nice synthesis
>    Eilert


Article: 133381
Subject: Re: FPGA area use by module?
From: Martin Thompson <martin.j.thompson@trw.com>
Date: Thu, 26 Jun 2008 11:35:58 +0100
Links: << >>  << T >>  << A >>
jetmarc@hotmail.com writes:

> This is a good free 3rd party tool for this purpose:
> http://www.conekt.net/fpgaoptim.html

You beat me to it :) Thanks for the kind words BTW!

While I'm here, I've been hacking on this tool lately to get things
like arrays of LUTs with similar names merged into a single entry so
that the details of what's being used up within your lowest level
blocks is visible.

Watch this space...

Cheers,
Martin

-- 
martin.j.thompson@trw.com 
TRW Conekt - Consultancy in Engineering, Knowledge and Technology
http://www.conekt.net/electronics.html

Article: 133382
Subject: SYSACE problems on ML402 (virtex 4)
From: paolo.furia@gmail.com
Date: Thu, 26 Jun 2008 03:38:50 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hi all,
I'm working on a self reconfigurating system on ml402 (a virtex 4 sx35
device). I tested all bitstreams, full and partial, and they work
fine. The problems come when I try to make a self reconfiguration
loading bitstreams stored in CF. I successfully generated the
system.ace file and I put it on the CF with a partial bitstream. I set
the M2:M0 pin to 111 and the selector to SYSACE (also the persist bit
option is set correctly). When I turn on the board it loads the
system.ace file and configure the system that works fine. The done led
is turned on, but also the error led is turned on and the system can't
open the partial bitstream from CF. I tried to put some other types of
files on CF and make a C code to open and read them, but the result is
the same: done led turned on (system configured), and error led turned
on. Through serial the program says me that it can't open files
because it can't find them.
Has anyone any suggestion? Has anyone successfully reconfigured a
virtex device through hwicap and CF?
I'd really appreciate your help. Thanks.

Regards,

Paolo Furia

Article: 133383
Subject: mapping error
From: fmostafa <fatma.abouelella@ugent.be>
Date: Thu, 26 Jun 2008 05:15:19 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hi all;

i am trying to use  lock_pins   to lock theinstantiated  LUTs  pins  ,
iam using ISE 9.1 and my family is virtex 2 pro, first i tried to do
this using ucf file and it works, but i want to do this by adding this
attribute in the vhdl file , i got an error during the mapping phase ,
i don't know what is it

what i wrote in the vhdl

attribute INIT : string;
attribute INIT of LUT1_o0_s: label is "2";
attribute lock_pins: string;
attribute lock_pins of LUT1_o0_s: label is "true";
begin



LUT1_o0_s : LUT1
generic map (
	INIT =>"01")
port map (O => o0_s,
	I0 => aleft0right);


and the error

Using target part "2vp30ff896-7".
Mapping design into LUTs...
ERROR:MapLib:688 - Pin true in LOCK_PINS constraint does not exist.

Error found in mapping process, exiting...
Errors found during the mapping phase.  Please see map report file for
more
details.  Output files will not be written.



thanks
fatma


Article: 133384
Subject: How to start DMA from user_logic.vhdl (hardware side)
From: "fatfpga@googlemail.com" <fatfpga@googlemail.com>
Date: Thu, 26 Jun 2008 05:42:58 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hi,

is it possible to configure and start the Xilinx IPIF dma s/g transfer
via the userlogic. how can i write into the
dma registers from vhdl?

thnx


sebastian

Article: 133385
Subject: Re: Xilinx register inits
From: backhus <nix@nirgends.xyz>
Date: Thu, 26 Jun 2008 15:00:57 +0200
Links: << >>  << T >>  << A >>

Hi Rob,
Besides the bus widths issue, here's what you can do for initialisation 
without need for a function.

e.g. (kept simple with 8 bit only)


constant init_vector : std_logic_vector(7 downto 0) := "10011001";



reg1:process(Reset,clock)
   begin
     if Reset='1' then
       four bit register <= init_vector(7 downto 3);
     elsif rising_edge(clock) then
      ...
   end

reg2:process(Reset,clock)
   begin
     if Reset='1' then
       one_bit_register <= init_vector(0);
     elsif rising_edge(clock) then
      ...
   end

optional:
   Reset <='0';

_____________________

Thus the registers become initialized to the constant value on Reset.
And if Reset is tied to a constant inactive value, the initialisation 
values should still be used by XST as power-on init values (not 100% 
sure) , while the reset network is ripped away.

Thus you have a central point where you can change your init values and 
may even use hex values if you like (e.g: X"99" for the example above)

Have a nice synthesis
   Eilert

Rob schrieb:
> HI Eilert,
> 
> The array is being implemented as registers. I've had a look through
> the syth report and there are two warnings related to the init
> function and they are produced because a 5 bit vector is being
> assigned to an 8 bit vector (i'm not sure why simulation didn't warn
> about this).
> Maybe this one bad line is causing the init function to fail? I'll
> reimplement and see what I get.
> 
> Rob
> 
> On Jun 26, 9:08 am, backhus <n...@nirgends.xyz> wrote:
>> Rob schrieb:> Hi,
>>
>>> I have a problem with getting the correct startup values for an array
>>> of bytes on a Xilinx V5
>>> When the array is declared it is initialised using a function (which
>>> of course has only constant inputs). In simulation the array appears
>>> to be correctly initialised, but when the bitfile is downloaded it
>>> looks as though all the registers are initialised to zero.
>>> Is it me or XST!?
>>> Rob
>> Hi Rob,
>> aren't there any hints (warnings or infos) in your synthesis report.
>> It should be noted somewhere if a piece of code is ignored by the
>> synthesis tool.
>>
>> How is your array synthesized? As a bunch of FFs or as RAM? There are
>> different coding rules for initialisation. But what should be working
>> for both is using some attribute (see the ISE Templates)
>>
>> Using a function for array/RAM/ROM initialisation is similar to using a
>> file. Since this is not covered by the synthesis standard for VHDL 87 or
>> 93 there's no general guideline of how to do it. But some tools are able
>> to do this anyway, so you have to read the tool specific instructions
>> very carefully. (or search this newsgroup, it's a common topic)
>>
>> Have a nice synthesis
>>    Eilert
> 

Article: 133386
Subject: Re: FPGA area use by module?
From: John McCaskill <jhmccaskill@gmail.com>
Date: Thu, 26 Jun 2008 07:20:58 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Jun 25, 3:01 pm, Philip Herzog <p...@arcor.de> wrote:
> Hi!
>
> I'm designing a Spartan 3 FPGA with ISE 9.2 and just hit the point where
> the FPGA couldn't be routed anymore since it was too full. Now I have to
> optimize or reduce some modules to win some area, but I can only guess
> which ones use a lot of area so optimizing them would win me significant =
space.
>
> Is there a tool (or am I overlooking something in ISE) which tells me whi=
ch
> part of the design uses how much space? I'm aware that optimizing across
> hierarchy may make this information inaccurate, but still I guess it woul=
d
> show me the right way...
>
> -   Philip
> --
> Frauenparkpl=E4tze sind eine gute Sache - fr=FCher ist
> man als Triebt=E4ter stundenlang ziellos durch's
> Parkhaus geirrt. (Andreas Leidig)


Any module that has been put in an area group will have its own
resource utilization reported in the area groups section of the map
report.

For all of the cores that we have designed for our EDK package, we
create core level UCF files and put the core in an area group.  Some
times we put constraints on the area group, and some times it is just
there to get more detailed reporting.

Refer to the Xilinx constraint guide for more information on area
group constraints.

Regards,

John McCaskill
www.FasterTechnology.com/cores.html

Article: 133387
Subject: System Generator Xilinx ML403
From: eric <erixx@gmx.net>
Date: Thu, 26 Jun 2008 16:58:12 +0200
Links: << >>  << T >>  << A >>
Is it possible to use the System Generator for DSP with the ML403 with 
GigabitEthernet or USB? They only support ML402 directly, why?
Has anybody a BSB and sources how to manage it to use ML403 for DSP
with Matlab programs?

Thx

Eric

From webmaster@nillakaes.de Thu Jun 26 09:24:38 2008
Path: nlpi102-int.nbdc.sbc.com!nlpi062.nbdc.sbc.com!prodigy.com!nlpi057.nbdc.sbc.com!prodigy.net!feeder.erje.net!news01.khis.de!feed.cnntp.org!news.cnntp.org!not-for-mail
Message-Id: <4863c2c9$0$25950$6e1ede2f@read.cnntp.org>
From: Thorsten Kiefer <webmaster@nillakaes.de>
Subject: synthesis error
Newsgroups: comp.arch.fpga
Date: Thu, 26 Jun 2008 18:24:38 +0200
User-Agent: KNode/0.10.4
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7Bit
Lines: 214
Organization: CNNTP
NNTP-Posting-Host: b591fc99.read.cnntp.org
X-Trace: DXC=HY]\l705LaBhh8ai[0e3CKWoT\PAgXa?AA?mbOAB4R0ECWCf629N19DhldKiGb`JFM@:RE_EF8ZCF42BE>kFbKBF
X-Complaints-To: abuse@cnntp.org
Xref: prodigy.net comp.arch.fpga:145968
X-Received-Date: Thu, 26 Jun 2008 12:24:47 EDT (nlpi102-int.nbdc.sbc.com)

Hi,
synthesizing the following code yields an error.

CODE :

----------------------------------------------------------------------------------
-- Company: 
-- Engineer: 
-- 
-- Create Date:    16:22:54 06/23/2008 
-- Design Name: 
-- Module Name:    main - Behavioral 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.numeric_std.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity main is
        port(
                clk,reset : in std_logic;
                btn: std_logic_vector(2 downto 0);
                rx : in std_logic;
                tx : out std_logic;
                led: out std_logic_vector(7 downto 0);
                sseg : out std_logic_vector(7 downto 0);
                an : out std_logic_vector(3 downto 0);

                -- to/from chip
                ad : out std_logic_vector(17 downto 0);
                we_n, oe_n : out std_logic;
                -- SRAM chip a
                dio_a : inout std_logic_vector(15 downto 0);
                ce_a_n,ub_a_n,lb_a_n : out std_logic;
                -- SRAM chip b
                dio_b : inout std_logic_vector(15 downto 0);
                ce_b_n,ub_b_n,lb_b_n : out std_logic
        );
end main;

architecture Behavioral of main is
        signal tx_full, rx_empty: std_logic;
        signal rx_data,tx_data : std_logic_vector(7 downto 0);
        signal btn_tick: std_logic;
        signal mem : std_logic;
        signal mem_rw : std_logic;
        signal mem_addr : std_logic_vector(17 downto 0);
        signal mem_data_f2s : std_logic_vector(31 downto 0);
        signal mem_data_s2f : std_logic_vector(31 downto 0);
        signal mem_ready : std_logic;
        signal h2a_hex : std_logic_vector(3 downto 0);
        signal h2a_ascii : std_logic_vector(7 downto 0);
        signal wr_uart,rd_uart : std_logic;
        
        type state_t is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10);
        type regs_t is record
                        state : state_t;
                        led : std_logic_vector(7 downto 0);
                        hex : unsigned(3 downto 0);
                end record;
        signal r_reg,r_next : regs_t;
        
begin
        uart_unit : entity uart
                port map(clk=>clk,reset=>reset,rd_uart=>rd_uart,wr_uart=>wr_uart,
                        rx=>rx,w_data=>tx_data,tx_full=>tx_full,rx_empty=>rx_empty,
                        r_data=>rx_data,tx=>tx);
        btn_db_unit : entity debounce
                port
map(clk=>clk,reset=>reset,button=>btn(0),db_level=>open,db_tick=>btn_tick);
        sram_unit : entity sram_ctrl
                port
map(clk=>clk,reset=>reset,ad=>ad,we_n=>we_n,oe_n=>oe_n,dio_a=>dio_a,ce_a_n=>ce_a_n,
                
ub_a_n=>ub_a_n,lb_a_n=>lb_a_n,dio_b=>dio_b,ce_b_n=>ce_b_n,ub_b_n=>ub_b_n,lb_b_n=>lb_b_n,
                
mem=>mem,rw=>mem_rw,addr=>mem_addr,data_f2s=>mem_data_f2s,data_s2f=>mem_data_s2f,ready=>mem_ready);
        hex2a : entity hex2ascii port map(hex=>h2a_hex,ascii=>h2a_ascii);
        
        an <= "1110";
        sseg <= '1' & (not tx_full) & "11" & (not rx_empty) & "111";

        process(clk,reset)
        begin
                if reset = '1' then
                        r_reg.state <= s0;
                        r_reg.led <= "11111111";
                        r_reg.hex <= (others=>'0');
                elsif rising_edge(clk) then
                        r_reg <= r_next;
                end if;
        end process;
        
        process(r_reg)
        begin
                r_next <= r_reg;
                mem_addr <= "000000000000000000";
                mem_rw <= '0';
                mem_data_f2s <= "00000000000000000000000000000000";
                wr_uart <= '0';
                tx_data <= "00000000";
                
                case r_reg.state is
                        when s0 =>
                                if btn_tick='1' then
                                        r_next.state <= s1;
                                        mem_addr <= "111111111111111111";
                                        mem_rw <= '0';
                                        mem_data_f2s <= "01010101010101010101010101010101";
                                end if;
                        when s1 =>
                                if mem_ready='1' then
                                        r_next.state <= s2;
                                end if;
                        when s2 =>
                                r_next.state <= s3;
                                mem_addr <= "111111111111111111";
                                mem_rw <= '1';
                        when s3 =>
                                if mem_ready='1' then
                                        r_next.state <= s4;
                                end if;
                        when s4 =>
                                r_next.led <= mem_data_f2s(7 downto 0);
                                r_next.state <= s5;
                        when s5 =>
                                wr_uart <= '1';
                                r_next.hex <= r_reg.hex + 1;
                                r_next.state <= s6;
                        when others =>
                                r_next.state <= s0;
                end case;
        end process;
        
        tx_data <= h2a_ascii;
        h2a_hex <= std_logic_vector(r_reg.hex);
        led <= r_reg.led;
end Behavioral;


ERROR:
=========================================================================
*                         Low Level Synthesis                           *
=========================================================================

ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<7>>; this
signal is connected to multiple drivers.
Drivers are: 
   Output port doA<7> of instance <hex2a/Mrom_ascii> of inferred macro ROM
   Signal <h2a_ascii<7>> in Unit <main> is assigned to GND

ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<6>>; this
signal is connected to multiple drivers.
Drivers are: 
   Output port doA<6> of instance <hex2a/Mrom_ascii> of inferred macro ROM
   Signal <h2a_ascii<6>> in Unit <main> is assigned to GND

ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<5>>; this
signal is connected to multiple drivers.
Drivers are: 
   Output port doA<5> of instance <hex2a/Mrom_ascii> of inferred macro ROM
   Signal <h2a_ascii<5>> in Unit <main> is assigned to GND

ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<4>>; this
signal is connected to multiple drivers.
Drivers are: 
   Output port doA<4> of instance <hex2a/Mrom_ascii> of inferred macro ROM
   Signal <h2a_ascii<4>> in Unit <main> is assigned to GND

ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<3>>; this
signal is connected to multiple drivers.
Drivers are: 
   Output port doA<3> of instance <hex2a/Mrom_ascii> of inferred macro ROM
   Signal <h2a_ascii<3>> in Unit <main> is assigned to GND

ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<2>>; this
signal is connected to multiple drivers.
Drivers are: 
   Output port doA<2> of instance <hex2a/Mrom_ascii> of inferred macro ROM
   Signal <h2a_ascii<2>> in Unit <main> is assigned to GND

ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<1>>; this
signal is connected to multiple drivers.
Drivers are: 
   Output port doA<1> of instance <hex2a/Mrom_ascii> of inferred macro ROM
   Signal <h2a_ascii<1>> in Unit <main> is assigned to GND

ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<0>>; this
signal is connected to multiple drivers.
Drivers are: 
   Output port doA<0> of instance <hex2a/Mrom_ascii> of inferred macro ROM
   Signal <h2a_ascii<0>> in Unit <main> is assigned to GND



Where do is assign h2s_ascii to ground ?

Best regards
Thorsten

Article: 133388
Subject: Re: synthesis error
From: "Mike Lewis" <someone@micrsoft.com>
Date: Thu, 26 Jun 2008 12:35:59 -0400
Links: << >>  << T >>  << A >>

"Thorsten Kiefer" <webmaster@nillakaes.de> wrote in message 
news:4863c2c9$0$25950$6e1ede2f@read.cnntp.org...
> Hi,
> synthesizing the following code yields an error.
>
> CODE :
>
> ----------------------------------------------------------------------------------
> -- Company:
> -- Engineer:
> -- 
> -- Create Date:    16:22:54 06/23/2008
> -- Design Name:
> -- Module Name:    main - Behavioral
> -- Project Name:
> -- Target Devices:
> -- Tool versions:
> -- Description:
> --
> -- Dependencies:
> --
> -- Revision:
> -- Revision 0.01 - File Created
> -- Additional Comments:
> --
> ----------------------------------------------------------------------------------
> library IEEE;
> use IEEE.STD_LOGIC_1164.ALL;
> use IEEE.numeric_std.ALL;
>
> ---- Uncomment the following library declaration if instantiating
> ---- any Xilinx primitives in this code.
> --library UNISIM;
> --use UNISIM.VComponents.all;
>
> entity main is
>        port(
>                clk,reset : in std_logic;
>                btn: std_logic_vector(2 downto 0);
>                rx : in std_logic;
>                tx : out std_logic;
>                led: out std_logic_vector(7 downto 0);
>                sseg : out std_logic_vector(7 downto 0);
>                an : out std_logic_vector(3 downto 0);
>
>                -- to/from chip
>                ad : out std_logic_vector(17 downto 0);
>                we_n, oe_n : out std_logic;
>                -- SRAM chip a
>                dio_a : inout std_logic_vector(15 downto 0);
>                ce_a_n,ub_a_n,lb_a_n : out std_logic;
>                -- SRAM chip b
>                dio_b : inout std_logic_vector(15 downto 0);
>                ce_b_n,ub_b_n,lb_b_n : out std_logic
>        );
> end main;
>
> architecture Behavioral of main is
>        signal tx_full, rx_empty: std_logic;
>        signal rx_data,tx_data : std_logic_vector(7 downto 0);
>        signal btn_tick: std_logic;
>        signal mem : std_logic;
>        signal mem_rw : std_logic;
>        signal mem_addr : std_logic_vector(17 downto 0);
>        signal mem_data_f2s : std_logic_vector(31 downto 0);
>        signal mem_data_s2f : std_logic_vector(31 downto 0);
>        signal mem_ready : std_logic;
>        signal h2a_hex : std_logic_vector(3 downto 0);
>        signal h2a_ascii : std_logic_vector(7 downto 0);
>        signal wr_uart,rd_uart : std_logic;
>
>        type state_t is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10);
>        type regs_t is record
>                        state : state_t;
>                        led : std_logic_vector(7 downto 0);
>                        hex : unsigned(3 downto 0);
>                end record;
>        signal r_reg,r_next : regs_t;
>
> begin
>        uart_unit : entity uart
>                port 
> map(clk=>clk,reset=>reset,rd_uart=>rd_uart,wr_uart=>wr_uart,
> 
> rx=>rx,w_data=>tx_data,tx_full=>tx_full,rx_empty=>rx_empty,
>                        r_data=>rx_data,tx=>tx);
>        btn_db_unit : entity debounce
>                port
> map(clk=>clk,reset=>reset,button=>btn(0),db_level=>open,db_tick=>btn_tick);
>        sram_unit : entity sram_ctrl
>                port
> map(clk=>clk,reset=>reset,ad=>ad,we_n=>we_n,oe_n=>oe_n,dio_a=>dio_a,ce_a_n=>ce_a_n,
>
> ub_a_n=>ub_a_n,lb_a_n=>lb_a_n,dio_b=>dio_b,ce_b_n=>ce_b_n,ub_b_n=>ub_b_n,lb_b_n=>lb_b_n,
>
> mem=>mem,rw=>mem_rw,addr=>mem_addr,data_f2s=>mem_data_f2s,data_s2f=>mem_data_s2f,ready=>mem_ready);
>        hex2a : entity hex2ascii port map(hex=>h2a_hex,ascii=>h2a_ascii);
>
>        an <= "1110";
>        sseg <= '1' & (not tx_full) & "11" & (not rx_empty) & "111";
>
>        process(clk,reset)
>        begin
>                if reset = '1' then
>                        r_reg.state <= s0;
>                        r_reg.led <= "11111111";
>                        r_reg.hex <= (others=>'0');
>                elsif rising_edge(clk) then
>                        r_reg <= r_next;
>                end if;
>        end process;
>
>        process(r_reg)
>        begin
>                r_next <= r_reg;
>                mem_addr <= "000000000000000000";
>                mem_rw <= '0';
>                mem_data_f2s <= "00000000000000000000000000000000";
>                wr_uart <= '0';
>                tx_data <= "00000000";
>
>                case r_reg.state is
>                        when s0 =>
>                                if btn_tick='1' then
>                                        r_next.state <= s1;
>                                        mem_addr <= "111111111111111111";
>                                        mem_rw <= '0';
>                                        mem_data_f2s <= 
> "01010101010101010101010101010101";
>                                end if;
>                        when s1 =>
>                                if mem_ready='1' then
>                                        r_next.state <= s2;
>                                end if;
>                        when s2 =>
>                                r_next.state <= s3;
>                                mem_addr <= "111111111111111111";
>                                mem_rw <= '1';
>                        when s3 =>
>                                if mem_ready='1' then
>                                        r_next.state <= s4;
>                                end if;
>                        when s4 =>
>                                r_next.led <= mem_data_f2s(7 downto 0);
>                                r_next.state <= s5;
>                        when s5 =>
>                                wr_uart <= '1';
>                                r_next.hex <= r_reg.hex + 1;
>                                r_next.state <= s6;
>                        when others =>
>                                r_next.state <= s0;
>                end case;
>        end process;
>
>        tx_data <= h2a_ascii;
>        h2a_hex <= std_logic_vector(r_reg.hex);
>        led <= r_reg.led;
> end Behavioral;
>
>
> ERROR:
> =========================================================================
> *                         Low Level Synthesis                           *
> =========================================================================
>
> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<7>>; this
> signal is connected to multiple drivers.
> Drivers are:
>   Output port doA<7> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>   Signal <h2a_ascii<7>> in Unit <main> is assigned to GND
>
> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<6>>; this
> signal is connected to multiple drivers.
> Drivers are:
>   Output port doA<6> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>   Signal <h2a_ascii<6>> in Unit <main> is assigned to GND
>
> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<5>>; this
> signal is connected to multiple drivers.
> Drivers are:
>   Output port doA<5> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>   Signal <h2a_ascii<5>> in Unit <main> is assigned to GND
>
> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<4>>; this
> signal is connected to multiple drivers.
> Drivers are:
>   Output port doA<4> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>   Signal <h2a_ascii<4>> in Unit <main> is assigned to GND
>
> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<3>>; this
> signal is connected to multiple drivers.
> Drivers are:
>   Output port doA<3> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>   Signal <h2a_ascii<3>> in Unit <main> is assigned to GND
>
> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<2>>; this
> signal is connected to multiple drivers.
> Drivers are:
>   Output port doA<2> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>   Signal <h2a_ascii<2>> in Unit <main> is assigned to GND
>
> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<1>>; this
> signal is connected to multiple drivers.
> Drivers are:
>   Output port doA<1> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>   Signal <h2a_ascii<1>> in Unit <main> is assigned to GND
>
> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<0>>; this
> signal is connected to multiple drivers.
> Drivers are:
>   Output port doA<0> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>   Signal <h2a_ascii<0>> in Unit <main> is assigned to GND
>
>
>
> Where do is assign h2s_ascii to ground ?
>
> Best regards
> Thorsten

h2s_ascii  is neither an input nor is it assigned anything .. it is a 
floating undefined net .. that is your problem.

Mike 



Article: 133389
Subject: Re: Xilinx SecureIP simulation and third-party simulators?
From: wdc.crest2@gmail.com
Date: Thu, 26 Jun 2008 09:59:10 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Jun 25, 2:49 pm, Duth <premd...@gmail.com> wrote:
> 11.1 is planned to be released a year after 10.1. That means plan for
> March 2009. Xilinx is considering working with some customers on a
> beta program to get feedback for the NCSim and Synopsys support. If
> interested in this, please contact your Xilinx FAE.
>
> Aldec simulators are not supported by Xilinx and that is why you will
> probably need to talk to Aldec to get their roadmaps.

Thank you for an straightforward response.  When I contacted Aldec
about Verilog-2005 SecureIP support, they hinted that the vendor
(Xilinx)
must provide an encrypted model for the Aldec-simulator, i.e., the
IP-publisher is responsible for re-generating the IP-model on each
supported platform (simulator.)  Here's Aldec's apnote on EDK 10.1:

http://support.aldec.com/KnowledgeBase/Article.aspx?aid=000737

"Import and Simulation Behavioral model including SecureIP encryption.

Currently, the MicroBlaze behavioral model is not provided for Aldec
Active-HDL7.3sp1 simulator. If you are interested in it please ask
Xilinx support to encrypt them as SecureIP for us."

I don't know whether that's really the case... I assume the *real*
issue is more complicated than just this, otherwise EDK 10.1 would
have shipped with out-of-the-box Synopsys/VCS and Cadence/NCsim
support?

Article: 133390
Subject: Re: mapping error
From: Jim Wu <jimwu88NOOOSPAM@yahoo.com>
Date: Thu, 26 Jun 2008 11:05:16 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Jun 26, 8:15 am, fmostafa <fatma.abouele...@ugent.be> wrote:
> Hi all;
>
> i am trying to use  lock_pins   to lock theinstantiated  LUTs  pins  ,
> iam using ISE 9.1 and my family is virtex 2 pro, first i tried to do
> this using ucf file and it works, but i want to do this by adding this
> attribute in the vhdl file , i got an error during the mapping phase ,
> i don't know what is it
>
> what i wrote in the vhdl
>
> attribute INIT : string;
> attribute INIT of LUT1_o0_s: label is "2";
> attribute lock_pins: string;
> attribute lock_pins of LUT1_o0_s: label is "true";
> begin
>
> LUT1_o0_s : LUT1
> generic map (
>         INIT =>"01")
> port map (O => o0_s,
>         I0 => aleft0right);
>
> and the error
>
> Using target part "2vp30ff896-7".
> Mapping design into LUTs...
> ERROR:MapLib:688 - Pin true in LOCK_PINS constraint does not exist.
>
> Error found in mapping process, exiting...
> Errors found during the mapping phase.  Please see map report file for
> more
> details.  Output files will not be written.
>
> thanks
> fatma

Try changing "true" to "ALL".

Cheers,
HTH,
Jim (jimwu88 NOOOSPAM at yahoo NOOOSPAM dot com)
http://home.comcast.net/%7Ejimwu88/tools/

Article: 133391
Subject: Re: mapping error
From: Jim Wu <jimwu88NOOOSPAM@yahoo.com>
Date: Thu, 26 Jun 2008 11:17:54 -0700 (PDT)
Links: << >>  << T >>  << A >>
Forgot to mention that the "Constraints Guide" PDF in %XILINX%\doc
\usenglish\books\docs\cgd is a good reference for constraint related
issue.

Cheers,
Jim (jimwu88 NOOOSPAM at yahoo NOOOSPAM dot com)
http://home.comcast.net/%7Ejimwu88/tools/

Article: 133392
Subject: Re: synthesis error
From: Ed McGettigan <ed.mcgettigan@xilinx.com>
Date: Thu, 26 Jun 2008 12:56:50 -0700
Links: << >>  << T >>  << A >>
Mike Lewis wrote:
> "Thorsten Kiefer" <webmaster@nillakaes.de> wrote in message 
> news:4863c2c9$0$25950$6e1ede2f@read.cnntp.org...
>> Hi,
>> synthesizing the following code yields an error.
>>
>> CODE :
>>

.. snip..

>>        signal h2a_hex : std_logic_vector(3 downto 0);
>>        signal h2a_ascii : std_logic_vector(7 downto 0);

.. snip..

>>        hex2a : entity hex2ascii port map(hex=>h2a_hex,ascii=>h2a_ascii);
>>

.. snip ..

>>
>>        tx_data <= h2a_ascii;
>>

.. snip ..

>> ERROR:Xst:528 - Multi-source in Unit <main> on signal <h2a_ascii<7>>; this
>> signal is connected to multiple drivers.
>> Drivers are:
>>   Output port doA<7> of instance <hex2a/Mrom_ascii> of inferred macro ROM
>>   Signal <h2a_ascii<7>> in Unit <main> is assigned to GND
>>

.. snip ..

>>
>>
>> Where do is assign h2s_ascii to ground ?
>>
>> Best regards
>> Thorsten
> 
> h2s_ascii  is neither an input nor is it assigned anything .. it is a 
> floating undefined net .. that is your problem.
> 

It assigned to something, but we and the synthesizer don't know what it 
is as the hex2ascii component wasn't defined.  There was probably 
another synthesis warning on the "hex2a : entity hex2ascii" line.

Ed McGettigan
--
Xilinx Inc.

Article: 133393
Subject: Re: Xilinx register inits
From: "KJ" <kkjennings@sbcglobal.net>
Date: Thu, 26 Jun 2008 16:27:22 -0400
Links: << >>  << T >>  << A >>

"backhus" <nix@nirgends.xyz> wrote in message 
news:g403su$soj$1@news.hs-bremen.de...
>
> Hi Rob,
> Besides the bus widths issue, here's what you can do for initialisation 
> without need for a function.
>
<snip>
>
> _____________________
>
> Thus the registers become initialized to the constant value on Reset.
> And if Reset is tied to a constant inactive value, the initialisation 
> values should still be used by XST as power-on init values (not 100% sure) 
> , while the reset network is ripped away.

This is in no way equivalent to assigning an initial value.  While it is 
generally better from a design perspective to reset things with a reset 
signal rather than counting on intial value assignments, what you've 
described with tying reset to a 'constant value' will end up either not 
initializing anything on reset since the code inside the "if Reset = '1' 
then" will never be executed (assuming Reset is tied to a constant '0') or 
the code inside the "elsif rising_edge(clock) then" will never be executed 
(assuming that Reset is tied to a constant '1').  In either case, you won't 
get what you want.

Kevin Jennings



Article: 133394
Subject: Re: Xilinx register inits
From: "KJ" <kkjennings@sbcglobal.net>
Date: Thu, 26 Jun 2008 16:37:46 -0400
Links: << >>  << T >>  << A >>

"KJ" <kkjennings@sbcglobal.net> wrote in message 
news:tZS8k.1343$np7.1219@flpi149.ffdc.sbc.com...
>
Slight correction to previous, I missed the word 'inactive' in your sentence 
"And if Reset is tied to a constant inactive value..". This means then the 
latter part of my post was not correct, but the first part still is.

In any case, the code inside the "if Reset = '1' then" portion will be 
synthesized away, and no assignments having to do with 'init_vector' will 
occur, ever...not a very good replacement for an initial value assignment.

Kevin Jennings



Article: 133395
Subject: Re: Beginner : Rotary switch (quad sw)
From: -jg <Jim.Granville@gmail.com>
Date: Thu, 26 Jun 2008 15:39:31 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Jun 26, 12:28 am, meralonu...@gmail.com wrote:
> Spartan 3E starter kit:
> I tried (like all beginners) to read rotary switch (knob) using FSM
> with 8 states, 4 for CW and 4 for CCW movements. I did not debounce
> phased switch inputs. It works fine. But I remember seeing much debate
> on this issue and claims of success with 4 FF's (plus debouncers). My
> design created 3 FFs and works fine without debouncers. What have I
> done wrong? Do "Spartan 3E starter kits" already have debouncers?
> Another question: When I include something like a<=a+1; and a<=a-1; it
> puts adders and stuff. Is it possible to force the use of async. up-
> down counters?
> Thanks
The smallest possible Quad design uses 2 FFs, so you have done nothing
wrong.
The earlier discussion here included an optional 'anti-flicker' state
engine of 2 more FF's
that could have some merit for user interfaces (but added backlash, so
less ideal
for machine control)
The Two FF design, effectively overlays the state follower, with the
two LSB bits in the
counter.
It is also a design decision, on what you do with the illegal states.

Check your report file.
If you avoided syncronisers, and have more than one state bit
dependent on
an async pin, then you _could_ have aperture errors
- in a hand control, it will be hard to even spot this,
but in a machine control, it could cause serious
control problems.
-jg


Article: 133396
Subject: Re: Signal forwarding between FPGAs
From: Tom <tom.derham@gmail.com>
Date: Thu, 26 Jun 2008 15:55:36 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Jun 26, 6:36=A0pm, Heinrich <Heinr...@myweb.com> wrote:
> The logic to handle the tx and rx bits is implemented on the target
> FPGA. So the only thing I have to do is just forward the rx bits on the
> Control FPGA to the target FPGA in "real-time" and all the other stuff
> is then done by a module on the target FPGA...

Well ok, but if you don't tell us what you've done, we can't tell you
if you've done it correctly or not!

If you've got data lines only (no clock or async handshaking), you
need clock transferred by some other method - either explicitly or in
a way that the clock can be extracted/implied from the data stream.

-T

Article: 133397
Subject: Re: Beginner : Rotary switch (quad sw)
From: Peter Alfke <alfke@sbcglobal.net>
Date: Thu, 26 Jun 2008 18:23:17 -0700 (PDT)
Links: << >>  << T >>  << A >>
Starting on April 20 this year there was a 3-week long thread about
quadrature decoding. 85 postings!!!
Let me summarize for a beginner:
You should assume that the quadrature input is asynchronous, can have
totally undefined duty cycle (down to pulses below 1 ns) and will have
undefined bounce whenever it makes or breaks contact.
You can however assume that, when one contact changes, the other one
will be stable.
Then you have to decide how many counts you want to decode: One count
per any change, or one count per full cycle. Then you must decide
whether a one-quadrature or 2-quadrature ambiguity is acceptable. You
can also call that backlash.
Manually operated switches are very forgiving, robotics shaft encoders
can be far more demanding.
I put two designs into the Xilinx forums or blogs, but various people
had widely varying opinions.
I think this here is a fair synopsis.
Peter Alfke, Xilinx Applications.

Article: 133398
Subject: NVRAM design in CPLD
From: jay <heavenfish@gmail.com>
Date: Thu, 26 Jun 2008 21:21:48 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hi all,

For the ram implied in a CPLD design, will the data written in it
remain after power off?

I have a small rom in my curent CPLD design, occasionally I need
change the content inside, instead of reprogramming it, I want
something like a nvram that I can update through the uP dynamicallly.

Thanks,
Jay

Article: 133399
Subject: Re: synthesis error
From: Thomas Stanka <usenet_nospam_valid@stanka-web.de>
Date: Thu, 26 Jun 2008 22:50:05 -0700 (PDT)
Links: << >>  << T >>  << A >>
On 26 Jun., 18:24, Thorsten Kiefer <webmas...@nillakaes.de> wrote:
> Hi,
> synthesizing the following code yields an error.
[..]
> Where do is assign h2s_ascii to ground ?

You connect h2a_ascii with tx_data. I guess tx_data is the real
problem, as it is connected to gnd in process and h2a_ascii in
concurrent statement. Without the component declarations I can only
guess, that the entity inside drives h2a and sources tx_data. It would
be a good idea to include the  component declarations.
I know why I use std_ulogic instead of std_logic :).

bye Thomas



Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search