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 58975

Article: 58975
Subject: Block ram simulation
From: "Christian Obel" <s991518@student.dtu.dk>
Date: Tue, 5 Aug 2003 21:17:11 +0200
Links: << >>  << T >>  << A >>
I am doing a project for a Virtex2 fpga with the Free ISE WebPACK 5.2i with
all the latest patches. I am writing a piece of behavioral VHDL that will
synthesize as dual ported block ram and a testbench to verify its behavior
by writing three values to it and then read them back. This works all fine
in a behavioral simulation, but when I advance to a post-translate or
post-place & route simulation the last of the three values read ( the first
written) is wrong. Can someone tell me what is wrong? Maybe it is never
written?

I have also tried to instantiate the block ram manualy (RAMB1_s36_s36). This
gives exactly the same problem.

Sincerely Christian.

This is my VHDL

----Memory.vhd------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity memory is
  Port ( clk : in std_logic;
  reset : in std_logic;
  write_addr : in std_logic_vector(8 downto 0);
  write_data : in std_logic_vector(31 downto 0);
  write_en : in std_logic;
  read_addr : in std_logic_vector(8 downto 0);
  read_data : out std_logic_vector(31 downto 0);
  read_en : in std_logic);
end memory;

architecture Behavioral of memory is
  type mem_type is array (511 downto 0) of std_logic_vector(31 downto 0);
  signal data : mem_type := (OTHERS => (OTHERS => '0'));
begin
  process (clk)
  begin
    IF clk'event AND clk = '1' then
      if write_en = '1' then
       data(CONV_INTEGER(UNSIGNED(write_addr))) <= write_data;
     end if;
     IF read_en = '1' THEN
       read_data <= data(CONV_INTEGER(UNSIGNED(read_addr)));
     END IF;
    end if;
  end process;
end Behavioral;
-------------------------



--Testbench----------------------

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;

ENTITY testbench IS
END testbench;

ARCHITECTURE behavior OF testbench IS

 COMPONENT memory
 PORT(
  clk : IN std_logic;
  reset : IN std_logic;
  write_addr : IN std_logic_vector(8 downto 0);
  write_data : IN std_logic_vector(31 downto 0);
  write_en : IN std_logic;
  read_addr : IN std_logic_vector(8 downto 0);
  read_data : OUT std_logic_vector(31 downto 0);
  read_en : in std_logic
  );
 END COMPONENT;

 SIGNAL clk :  std_logic;
 SIGNAL reset :  std_logic;
 SIGNAL write_addr :  std_logic_vector(8 downto 0);
 SIGNAL write_data :  std_logic_vector(31 downto 0);
 SIGNAL write_en :  std_logic;
 SIGNAL read_addr :  std_logic_vector(8 downto 0);
 SIGNAL read_data :  std_logic_vector(31 downto 0);
 SIGNAL read_en : std_logic;

BEGIN

 uut: memory PORT MAP(
  clk => clk,
  reset => reset,
  write_addr => write_addr,
  write_data => write_data,
  write_en => write_en,
  read_addr => read_addr,
  read_data => read_data,
  read_en => read_en
 );

  PROCESS
  BEGIN
    clk <= '0';
    wait for 50 ns;
    clk <= '1';
    wait for 50 ns;
  END PROCESS;


reset <= '1', '0' after 7 ns;
read_en <= '1';
read_addr <= "100000000", "000100001" after 107 ns, "001000010" after 207
ns, "000000000" after 307 ns, "000000001" after 407 ns, "000000010" after
507 ns;
write_addr <= "000000010", "000000001" after 107 ns, "000000000" after 207
ns, "010000000" after 307 ns, "000010001" after 407 ns, "000001010" after
507 ns;
write_data <= X"00000003", X"00000002" after 107 ns, X"00000001" after 207
ns;
write_en <= '1', '0' after 307 ns;

END;

-------------------------------------------



Article: 58976
Subject: Re: Block ram simulation
From: Mike Treseler <mike.treseler@flukenetworks.com>
Date: Tue, 05 Aug 2003 12:38:25 -0700
Links: << >>  << T >>  << A >>
Christian Obel wrote:
> I am doing a project for a Virtex2 fpga with the Free ISE WebPACK 5.2i with
> all the latest patches. I am writing a piece of behavioral VHDL that will
> synthesize as dual ported block ram and a testbench to verify its behavior
> by writing three values to it and then read them back. This works all fine
> in a behavioral simulation, but when I advance to a post-translate or
> post-place & route simulation the last of the three values read ( the first
> written) is wrong. Can someone tell me what is wrong? Maybe it is never
> written?

Maybe you need to register the address.
http://groups.google.com/groups?q=sync_ram+entity+lpm_ram_dq

  -- Mike Treseler


Article: 58977
Subject: Re: model sim block ram sim
From: Mike Treseler <mike.treseler@flukenetworks.com>
Date: Tue, 05 Aug 2003 12:42:08 -0700
Links: << >>  << T >>  << A >>
io@duke.edu wrote:
> Hi -
> 
> I am trying to run a very simple simulation to verify the functionality of
> the "block ram" component in my spartan ii fpga.  I am using modelsim
> tools that I downloaded from the xilinx website, and I'm using the
> "ramb4_s8" primitive.  The simulation appears to work properly except that
> there appears to be a delay of one clock cycle when reading from the
> memory.  In other words, if I enable the ram, deassert the write enable,
> and select the read address, I need TWO rising clock edges to get the
> correct data to appear at the data_out port.  I am doing a simple
> behavioral simulation so there shouldn't be any delay issues involved.
> The data sheet clearly shows that I should only need one rising clock edge
> to execute the read.  Any ideas?  Thanks very much!!!
> 
> --Iyad
> 
> -------------------------------
> Iyad Obeid
> Dept. of Biomedical Engineering
> Duke University
> io@duke.edu
> (919)660-5104   www.duke.edu/~io

Maybe you need to register the address.
http://groups.google.com/groups?q=sync_ram+entity+lpm_ram_dq

  -- Mike Treseler


Article: 58978
Subject: Re: Conflict found between ActiveHDL6.1 and ModelSim SE
From: "Paul Baxter" <pauljnospambaxter@hotnospammail.com>
Date: Tue, 5 Aug 2003 20:48:27 +0100
Links: << >>  << T >>  << A >>
Have you tried AHDL 6.1 service pack 1?

Though using it with Altera (cos I have to) there are various fixes to bits
and pieces. YMMV

"Jay" <yuhaiwen@hotmail.com> wrote in message
news:bgnoeu$qa34o$1@ID-195883.news.uni-berlin.de...
> When both of them were installed on my pc, I found:
> 1.ModelSim can't compile Xilinx library
> 2.ISE will give a fatal error when ActiveHDL try generate post-PAR timing
> simulation model
>
> and they both can work well separately.
>
>



Article: 58979
Subject: Re: Xuart Lite Linux driver
From: Jon Masters <jonathan@jonmasters.org>
Date: Tue, 05 Aug 2003 21:23:54 +0100
Links: << >>  << T >>  << A >>
Peter Ryser wrote:

> Linux support for Virtex-II Pro is available as part of the LinuxPPC kernel
> tree. Access to this tree which is synchronized with the main kernel tree in
> regular intervals is available from http://www.penguinppc.org/kernel.shtml.
> MontaVista is just one host for the tree.

I know as I have several different (in fact more than several now) 
trees. The setup I have is mostly from the Mind patches to the 
Montavista tree manually applied to 2.4.20 by me because I prefer the 
kernel.org one without all the additional board support I do not need.

> Unfortunately, the code available in the LinuxPPC repository has not
 > yet been moved into the main kernel tree.

I had a discussion with some people recently about that.
The thing is that there are so many different sources for PowerPC Linux. 
I use yet another set of patches for my Powerbook which also runs Linux 
from the benh tree.

Jon.


Article: 58980
Subject: Re: Xuart Lite Linux driver
From: Jon Masters <jonathan@jonmasters.org>
Date: Tue, 05 Aug 2003 21:26:01 +0100
Links: << >>  << T >>  << A >>
Peter Ryser wrote:
> Jon,
> 
> besides what John has produced for uCLinux, Xilinx is working with
> MontaVista to integrate UartLite support into the Linux kernel tree for
> PowerPC.

Any ideas when this will be available? At the moment I have stuck the 
driver John wrote in to 2.4.20 and changed most of the relevent parts. 
The plan is to assist debug what he has unless Xilinx and Montavista are 
likely to have a driver out within the next week or two.

Jon.


Article: 58981
Subject: Re: model sim block ram sim
From: jimwu88NOOOSPAM@yahoo.com (Jim Wu)
Date: 5 Aug 2003 14:18:56 -0700
Links: << >>  << T >>  << A >>
My apologies if it is too obvious, but did you count the clock cycle
that sets up the read address as one of the TWO clock cycles?

If you can post your code or waveform, that would be helpful.

Jim Wu
jimwu88NOOOOOSPAM@yahoo.com

io@duke.edu wrote in message news:<Pine.GSO.4.56.0308051041170.29999@hudson11.acpub.duke.edu>...
> Hi -
> 
> I am trying to run a very simple simulation to verify the functionality of
> the "block ram" component in my spartan ii fpga.  I am using modelsim
> tools that I downloaded from the xilinx website, and I'm using the
> "ramb4_s8" primitive.  The simulation appears to work properly except that
> there appears to be a delay of one clock cycle when reading from the
> memory.  In other words, if I enable the ram, deassert the write enable,
> and select the read address, I need TWO rising clock edges to get the
> correct data to appear at the data_out port.  I am doing a simple
> behavioral simulation so there shouldn't be any delay issues involved.
> The data sheet clearly shows that I should only need one rising clock edge
> to execute the read.  Any ideas?  Thanks very much!!!
> 
> --Iyad
> 
> -------------------------------
> Iyad Obeid
> Dept. of Biomedical Engineering
> Duke University
> io@duke.edu
> (919)660-5104   www.duke.edu/~io

Article: 58982
Subject: Re: Xuart Lite Linux driver
From: Peter Ryser <ryserp@xilinx.com>
Date: Tue, 05 Aug 2003 14:20:49 -0700
Links: << >>  << T >>  << A >>
I really hope (we are working on it) that at some point in time Virtex-II Pro will

become part of the main kernel tree. Until then penguinppc is the place to go to
for the open source kernel support for V2P. Alternatively, especially for
commercial purposes, I recommend to contact MontaVista for professional support.

The reason why I suggest to use penguinppc or MontaVista is the tight integration
into EDK. EDK is able to generate a board support package, i.e. layer 0 and 1
drivers, tailored for the use within Linux. Parameters like base address, high
address, optimizations, and available functions for a given peripheral are
automatically copied from the hardware description into the Linux kernel. The same

is true for the latest drivers shipping with EDK which update the sources in the
kernel tree.

- Peter



Jon Masters wrote:

> Peter Ryser wrote:
>
> > Linux support for Virtex-II Pro is available as part of the LinuxPPC kernel
> > tree. Access to this tree which is synchronized with the main kernel tree in
> > regular intervals is available from http://www.penguinppc.org/kernel.shtml.
> > MontaVista is just one host for the tree.
>
> I know as I have several different (in fact more than several now)
> trees. The setup I have is mostly from the Mind patches to the
> Montavista tree manually applied to 2.4.20 by me because I prefer the
> kernel.org one without all the additional board support I do not need.
>
> > Unfortunately, the code available in the LinuxPPC repository has not
>  > yet been moved into the main kernel tree.
>
> I had a discussion with some people recently about that.
> The thing is that there are so many different sources for PowerPC Linux.
> I use yet another set of patches for my Powerbook which also runs Linux
> from the benh tree.
>
> Jon.


Article: 58983
Subject: Re: Xuart Lite Linux driver
From: Peter Ryser <ryserp@xilinx.com>
Date: Tue, 05 Aug 2003 14:24:53 -0700
Links: << >>  << T >>  << A >>
It will probably take more than two weeks. One reason is the OCP support in
the open source kernel being broken at the moment (or at least the last time
I checked).

- Peter


Jon Masters wrote:

> Peter Ryser wrote:
> > Jon,
> >
> > besides what John has produced for uCLinux, Xilinx is working with
> > MontaVista to integrate UartLite support into the Linux kernel tree for
> > PowerPC.
>
> Any ideas when this will be available? At the moment I have stuck the
> driver John wrote in to 2.4.20 and changed most of the relevent parts.
> The plan is to assist debug what he has unless Xilinx and Montavista are
> likely to have a driver out within the next week or two.
>
> Jon.


Article: 58984
Subject: Re: Block ram simulation
From: Peter Alfke <peter@xilinx.com>
Date: Tue, 05 Aug 2003 14:43:00 -0700
Links: << >>  << T >>  << A >>
Virtex BlockRAMs always register the address internally, even during a
read access.
(Which is sometimes desirable, sometimes not).
Peter Alfke

Mike Treseler wrote:
> 
> Christian Obel wrote:
> > I am doing a project for a Virtex2 fpga with the Free ISE WebPACK 5.2i with
> > all the latest patches. I am writing a piece of behavioral VHDL that will
> > synthesize as dual ported block ram and a testbench to verify its behavior
> > by writing three values to it and then read them back. This works all fine
> > in a behavioral simulation, but when I advance to a post-translate or
> > post-place & route simulation the last of the three values read ( the first
> > written) is wrong. Can someone tell me what is wrong? Maybe it is never
> > written?
> 
> Maybe you need to register the address.
> http://groups.google.com/groups?q=sync_ram+entity+lpm_ram_dq
> 
>   -- Mike Treseler

Article: 58985
Subject: Re: model sim block ram sim
From: Peter Alfke <peter@xilinx.com>
Date: Tue, 05 Aug 2003 14:57:26 -0700
Links: << >>  << T >>  << A >>
In Virtex BlockRAMs nothing happens without being instigated by a clock
edge. That's why they are called synchronous RAMs.
Peter Alfke

Jim Wu wrote:
> 
> My apologies if it is too obvious, but did you count the clock cycle
> that sets up the read address as one of the TWO clock cycles?
> 
> If you can post your code or waveform, that would be helpful.
> 
> Jim Wu
> jimwu88NOOOOOSPAM@yahoo.com
> 
> io@duke.edu wrote in message news:<Pine.GSO.4.56.0308051041170.29999@hudson11.acpub.duke.edu>...
> > Hi -
> >
> > I am trying to run a very simple simulation to verify the functionality of
> > the "block ram" component in my spartan ii fpga.  I am using modelsim
> > tools that I downloaded from the xilinx website, and I'm using the
> > "ramb4_s8" primitive.  The simulation appears to work properly except that
> > there appears to be a delay of one clock cycle when reading from the
> > memory.  In other words, if I enable the ram, deassert the write enable,
> > and select the read address, I need TWO rising clock edges to get the
> > correct data to appear at the data_out port.  I am doing a simple
> > behavioral simulation so there shouldn't be any delay issues involved.
> > The data sheet clearly shows that I should only need one rising clock edge
> > to execute the read.  Any ideas?  Thanks very much!!!
> >
> > --Iyad
> >
> > -------------------------------
> > Iyad Obeid
> > Dept. of Biomedical Engineering
> > Duke University
> > io@duke.edu
> > (919)660-5104   www.duke.edu/~io

Article: 58986
Subject: Re: model sim block ram sim
From: io@duke.edu
Date: Tue, 5 Aug 2003 18:23:06 -0400
Links: << >>  << T >>  << A >>
I assert the read address on the falling edge of the clock.  On the first
rising edge that follows, I expect to see the data stored at that read
address, but instead i have to wait for the second rising clk edge to see
it.

The vhdl code is below.  The waveforms are at www.duke.edu/~io/wave.jpg

Thank you!

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use work.constants.all;

library UNISIM;
use UNISIM.VCOMPONENTS.all;

entity ramtest is

  port (
    we   : in  std_logic;
    en   : in  std_logic;
    rst  : in  std_logic;
    clk  : in  std_logic;
    addr : in  std_logic_vector(8 downto 0);
    di   : in  std_logic_vector(7 downto 0);
    do   : out std_logic_vector(7 downto 0));

end ramtest;

architecture xilinx of ramtest is

  component RAMB4_S8
    port (
      WE   : IN  STD_LOGIC;
      EN   : IN  STD_LOGIC;
      RST  : IN  STD_LOGIC;
      CLK  : IN  STD_LOGIC;
      ADDR : IN  STD_LOGIC_VECTOR(8 DOWNTO 0);
      DI   : IN  STD_LOGIC_VECTOR(7 DOWNTO 0);
      DO   : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
  end component;

begin  -- xilinx

  R0 : RAMB4_S8 port map (
    WE   => we,
    EN   => en,
    RST  => rst,
    CLK  => clk,
    ADDR => addr,
    DI   => di,
    DO   => do);


end xilinx;


On Tue, 5 Aug 2003, Jim Wu wrote:

> My apologies if it is too obvious, but did you count the clock cycle
> that sets up the read address as one of the TWO clock cycles?
>
> If you can post your code or waveform, that would be helpful.
>
> Jim Wu
> jimwu88NOOOOOSPAM@yahoo.com
>
> io@duke.edu wrote in message news:<Pine.GSO.4.56.0308051041170.29999@hudson11.acpub.duke.edu>...
> > Hi -
> >
> > I am trying to run a very simple simulation to verify the functionality of
> > the "block ram" component in my spartan ii fpga.  I am using modelsim
> > tools that I downloaded from the xilinx website, and I'm using the
> > "ramb4_s8" primitive.  The simulation appears to work properly except that
> > there appears to be a delay of one clock cycle when reading from the
> > memory.  In other words, if I enable the ram, deassert the write enable,
> > and select the read address, I need TWO rising clock edges to get the
> > correct data to appear at the data_out port.  I am doing a simple
> > behavioral simulation so there shouldn't be any delay issues involved.
> > The data sheet clearly shows that I should only need one rising clock edge
> > to execute the read.  Any ideas?  Thanks very much!!!
> >
> > --Iyad
> >
> > -------------------------------
> > Iyad Obeid
> > Dept. of Biomedical Engineering
> > Duke University
> > io@duke.edu
> > (919)660-5104   www.duke.edu/~io
>

-------------------------------
Iyad Obeid
Dept. of Biomedical Engineering
Duke University
io@duke.edu
(919)660-5104   www.duke.edu/~io

Article: 58987
Subject: Re: JTAG programmers
From: Rob Judd <judd@ob-wan.com>
Date: Wed, 06 Aug 2003 08:31:08 +1000
Links: << >>  << T >>  << A >>
Thanks, found it. That looks like exactly the thing. Now where did I put
that breadboard ...

Rob


Andrew Paule wrote:
> 
> The HC part on the schematic is supplied with VCC from your board - you
> can also get parts with dual voltage supply that allow this type of
> interface, (CB3T ti parts one example).  Check Altera's web site for the
> byteblaster MV, there are schematics for the thing up there too, and you
> could wire through the RESET line so that all TAP controllers would work.
> 
> Andrew.
> 
> Rob Judd wrote:
> 
> >Hi y'all,
> >
> >Right, we're making some progress on parts sourcing, thanks in no small
> >way to some of you out there who shall remain nameless to avoid
> >embarrassment. (Thanks!)
> >
> >What has come up next is the requirement for a JTAG programmer. I've
> >found one here:
> >
> >http://www.ee.latrobe.edu.au/~djc/PALS/SMALL_PALS.htm
> >
> >but wonder whether using it on devices only capable of 3v3 or lower may
> >kill them. I'm also wondering whether some of the chips I'm considering
> >(Actel APA150, Altera EP1C3/EP1C6, Atmel AT94K05, Xilinx
> >XC2S200E/XC3S200 and Lattice OR3T80) have particular programming needs
> >that make a generic JTAG pod unworkable. If it merely requires level
> >translation, I'm golden.
> >
> >Comments?
> >
> >Rob
> >
> >

Article: 58988
Subject: Re: Xuart Lite Linux driver
From: John Williams <jwilliams@itee.uq.edu.au>
Date: Wed, 06 Aug 2003 08:55:47 +1000
Links: << >>  << T >>  << A >>
Peter Ryser wrote:

> One reason is the OCP support in
> the open source kernel being broken at the moment (or at least the last time
> I checked).

It sure is!  I'm bringing across the PPC kernel drivers into uClinux at 
the moment, and there's some funny stuff going on in there!  Some wierd 
hard-coded assumptions about the names given to OPB peripherals, and 
some other crazy things - but the workaround was quite simple.

Good news though, I have got the GPIO and ethernet drivers to compile 
and link essential as-is on microblaze uClinux - things are moving quickly.

Peter, I know there are some issues with the ethernet driver re: 
scatter-gather and DMA - but does it at least work?

The reason I ask is that if I spend the time to integrate an ethernet 
MAC into the microblaze-uclinux hardware target and get the driver in, 
can I be reasonably confident that the driver itself works properly, and 
that any errors are therefore mine?! :)

Cheers,

John


Article: 58989
Subject: Re: Xuart Lite Linux driver
From: John Williams <jwilliams@itee.uq.edu.au>
Date: Wed, 06 Aug 2003 08:57:58 +1000
Links: << >>  << T >>  << A >>
Jon Masters wrote:
> Hi,
> 
> I contacted Insight Memec about obtaining a Virtex II 1000 development 
> board for home use. I trust this is the board you are using?

correct.  I've got an earlier, revision 1 board, they are up to rev 3 
now but the same FPGA configuration still works on the newer board.

John



Article: 58990
Subject: Re: model sim block ram sim
From: Iyad Obeid <io@duke.edu>
Date: Tue, 5 Aug 2003 18:59:16 -0400
Links: << >>  << T >>  << A >>
Right you are.  That solved the problem quite effectively.  Thanks.  I 
usually use the default timing for my behavioral sims and I've never run 
into this kind of issue before.

Thanks for your time, everyone.

--Iyad

On Tue, 5 Aug 2003, Brian Philofsky wrote:

> 
> 
> 
> It looks like you are running your clock at 10 GHz.  There is a 100ps 
> propagation delay in the model but that is also your period you have 
> defined for your simulation clock.  I suggest slowing down your clock to 
> a more realistic speed and that may improve things for you.
> 
> --  Brian
> 
> 
> io@duke.edu wrote:
> > I assert the read address on the falling edge of the clock.  On the first
> > rising edge that follows, I expect to see the data stored at that read
> > address, but instead i have to wait for the second rising clk edge to see
> > it.
> > 
> > The vhdl code is below.  The waveforms are at www.duke.edu/~io/wave.jpg
> > 
> > Thank you!
> > 
> > library IEEE;
> > use IEEE.STD_LOGIC_1164.ALL;
> > use IEEE.STD_LOGIC_ARITH.ALL;
> > use IEEE.STD_LOGIC_UNSIGNED.ALL;
> > use work.constants.all;
> > 
> > library UNISIM;
> > use UNISIM.VCOMPONENTS.all;
> > 
> > entity ramtest is
> > 
> >   port (
> >     we   : in  std_logic;
> >     en   : in  std_logic;
> >     rst  : in  std_logic;
> >     clk  : in  std_logic;
> >     addr : in  std_logic_vector(8 downto 0);
> >     di   : in  std_logic_vector(7 downto 0);
> >     do   : out std_logic_vector(7 downto 0));
> > 
> > end ramtest;
> > 
> > architecture xilinx of ramtest is
> > 
> >   component RAMB4_S8
> >     port (
> >       WE   : IN  STD_LOGIC;
> >       EN   : IN  STD_LOGIC;
> >       RST  : IN  STD_LOGIC;
> >       CLK  : IN  STD_LOGIC;
> >       ADDR : IN  STD_LOGIC_VECTOR(8 DOWNTO 0);
> >       DI   : IN  STD_LOGIC_VECTOR(7 DOWNTO 0);
> >       DO   : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
> >   end component;
> > 
> > begin  -- xilinx
> > 
> >   R0 : RAMB4_S8 port map (
> >     WE   => we,
> >     EN   => en,
> >     RST  => rst,
> >     CLK  => clk,
> >     ADDR => addr,
> >     DI   => di,
> >     DO   => do);
> > 
> > 
> > end xilinx;
> > 
> > 
> > On Tue, 5 Aug 2003, Jim Wu wrote:
> > 
> > 
> >>My apologies if it is too obvious, but did you count the clock cycle
> >>that sets up the read address as one of the TWO clock cycles?
> >>
> >>If you can post your code or waveform, that would be helpful.
> >>
> >>Jim Wu
> >>jimwu88NOOOOOSPAM@yahoo.com
> >>
> >>io@duke.edu wrote in message news:<Pine.GSO.4.56.0308051041170.29999@hudson11.acpub.duke.edu>...
> >>
> >>>Hi -
> >>>
> >>>I am trying to run a very simple simulation to verify the functionality of
> >>>the "block ram" component in my spartan ii fpga.  I am using modelsim
> >>>tools that I downloaded from the xilinx website, and I'm using the
> >>>"ramb4_s8" primitive.  The simulation appears to work properly except that
> >>>there appears to be a delay of one clock cycle when reading from the
> >>>memory.  In other words, if I enable the ram, deassert the write enable,
> >>>and select the read address, I need TWO rising clock edges to get the
> >>>correct data to appear at the data_out port.  I am doing a simple
> >>>behavioral simulation so there shouldn't be any delay issues involved.
> >>>The data sheet clearly shows that I should only need one rising clock edge
> >>>to execute the read.  Any ideas?  Thanks very much!!!
> >>>
> >>>--Iyad
> >>>
> >>>-------------------------------
> >>>Iyad Obeid
> >>>Dept. of Biomedical Engineering
> >>>Duke University
> >>>io@duke.edu
> >>>(919)660-5104   www.duke.edu/~io
> >>
> > 
> > -------------------------------
> > Iyad Obeid
> > Dept. of Biomedical Engineering
> > Duke University
> > io@duke.edu
> > (919)660-5104   www.duke.edu/~io
> 
> 
> 

-------------------------------
Iyad Obeid
Dept. of Biomedical Engineering
Duke University
io@duke.edu
(919)660-5109   www.duke.edu/~io



Article: 58991
Subject: Re: model sim block ram sim
From: Peter Alfke <peter@xilinx.com>
Date: Tue, 05 Aug 2003 16:08:37 -0700
Links: << >>  << T >>  << A >>
Here is what should work:
You decide on a clock edge (polarity), either rising or falling.
Right before this clock edge ( set-up time is very short, about 1 ns)
you must have valid address and valid  clock enable and Read/write control.
A few nanoseconds ( 3ns?) after this clock edge you see the data on the
Dout lines.

If you do a write the same way, you will also always read the data that
you addressed. In Virtex-II you have a choice to read the old (previous)
data or the new data (the one you are just writing)

Set-up and hold times are extremely short: clock-to-out delay is
relatively long ( since it includes decoding and other delays).
Peter Alfke
===================
io@duke.edu wrote:
> 
> I assert the read address on the falling edge of the clock.  On the first
> rising edge that follows, I expect to see the data stored at that read
> address, but instead i have to wait for the second rising clk edge to see
> it.
> 
> The vhdl code is below.  The waveforms are at www.duke.edu/~io/wave.jpg
> 
> Thank you!
> 
> library IEEE;
> use IEEE.STD_LOGIC_1164.ALL;
> use IEEE.STD_LOGIC_ARITH.ALL;
> use IEEE.STD_LOGIC_UNSIGNED.ALL;
> use work.constants.all;
> 
> library UNISIM;
> use UNISIM.VCOMPONENTS.all;
> 
> entity ramtest is
> 
>   port (
>     we   : in  std_logic;
>     en   : in  std_logic;
>     rst  : in  std_logic;
>     clk  : in  std_logic;
>     addr : in  std_logic_vector(8 downto 0);
>     di   : in  std_logic_vector(7 downto 0);
>     do   : out std_logic_vector(7 downto 0));
> 
> end ramtest;
> 
> architecture xilinx of ramtest is
> 
>   component RAMB4_S8
>     port (
>       WE   : IN  STD_LOGIC;
>       EN   : IN  STD_LOGIC;
>       RST  : IN  STD_LOGIC;
>       CLK  : IN  STD_LOGIC;
>       ADDR : IN  STD_LOGIC_VECTOR(8 DOWNTO 0);
>       DI   : IN  STD_LOGIC_VECTOR(7 DOWNTO 0);
>       DO   : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
>   end component;
> 
> begin  -- xilinx
> 
>   R0 : RAMB4_S8 port map (
>     WE   => we,
>     EN   => en,
>     RST  => rst,
>     CLK  => clk,
>     ADDR => addr,
>     DI   => di,
>     DO   => do);
> 
> end xilinx;
> 
> On Tue, 5 Aug 2003, Jim Wu wrote:
> 
> > My apologies if it is too obvious, but did you count the clock cycle
> > that sets up the read address as one of the TWO clock cycles?
> >
> > If you can post your code or waveform, that would be helpful.
> >
> > Jim Wu
> > jimwu88NOOOOOSPAM@yahoo.com
> >
> > io@duke.edu wrote in message news:<Pine.GSO.4.56.0308051041170.29999@hudson11.acpub.duke.edu>...
> > > Hi -
> > >
> > > I am trying to run a very simple simulation to verify the functionality of
> > > the "block ram" component in my spartan ii fpga.  I am using modelsim
> > > tools that I downloaded from the xilinx website, and I'm using the
> > > "ramb4_s8" primitive.  The simulation appears to work properly except that
> > > there appears to be a delay of one clock cycle when reading from the
> > > memory.  In other words, if I enable the ram, deassert the write enable,
> > > and select the read address, I need TWO rising clock edges to get the
> > > correct data to appear at the data_out port.  I am doing a simple
> > > behavioral simulation so there shouldn't be any delay issues involved.
> > > The data sheet clearly shows that I should only need one rising clock edge
> > > to execute the read.  Any ideas?  Thanks very much!!!
> > >
> > > --Iyad
> > >
> > > -------------------------------
> > > Iyad Obeid
> > > Dept. of Biomedical Engineering
> > > Duke University
> > > io@duke.edu
> > > (919)660-5104   www.duke.edu/~io
> >
> 
> -------------------------------
> Iyad Obeid
> Dept. of Biomedical Engineering
> Duke University
> io@duke.edu
> (919)660-5104   www.duke.edu/~io

Article: 58992
Subject: Re: Size does matter
From: "Marc Van Riet" <marcvanriet@yahoo.com>
Date: Wed, 6 Aug 2003 01:30:31 +0200
Links: << >>  << T >>  << A >>

"Rob Judd" <judd@ob-wan.com> wrote in message news:3F2E2B51.DF30933F@ob-wan.com...
> Marc,
>
> By a very strange coincidence, a Belgian friend of mine (well, he's from
> Bruges so he's a bit weird :) who designs very tiny RF and micro boards
> (mostly portable stuff using MSP430) happened to have a kit from
> www.kanda.com that uses the AT40K chip. He offered it to me - complete
> with tool chain - for as long as I need it.
>
> So, it looks like I'm AVR'ing for now, but I'd rather be drinking a nice cold Orval.
>
> Rob
>

Fill us in later on.  I'd love to here how it turns out.

Prefer Duvel myself as heavy beer for every occasion.  For most of the other more special beers I tend to forget what
each one tastes like, which gives me an excuse to try them all again later :-)  Orval is a bit bitter though, of the
Trappist beers I prefer something like a Westmalle Triple.

Liked your Australian expat story about new-years eve in Belgium.  Just give a mail if you're ever back in Belgium and
want to go and have a drink.

Regards,
Marc




Article: 58993
Subject: 6th MAPLD: End of Early Registration and Program Announcement
From: "Richard B. Katz" <richard.b.katz@nospamplease.nasa.gov>
Date: 6 Aug 2003 00:16:25 GMT
Links: << >>  << T >>  << A >>


           End of Early Registration and Program Announcement


                   6th MAPLD International Conference


           Ronald Reagan Building and International Trade 
Center
                           Washington, D.C.
                         9-11 September 2003


   About 120 papers on programmable devices and technologies 
and
   related aspects of digital engineering will be presented at
   the 6th Military and Aerospace Programmable Logic Devices
   (MAPLD) International Conference.  Early registration closes
   Friday, August 8, 2003.


   This year, there will be special emphasis on the following 
themes: 


      • Reliability of Hardware and Designs; Fault Tolerance 
      • Reconfigurable/Adaptive Computing Systems 
      • Long-term (> 15 years) Space Missions
      • Hardware and Software: The Line is Blurring 
      • Radiation Hardening by Design 
      • Digital Signal Processing with Programmable Devices 
      • Design Security 
      • "War Stories" and Lessons Learned


   CONFERENCE HOME PAGE - http://klabs.org/mapld03 contains
   registration information, paper titles, authors, and 
abstracts,
   as well as biographies of all invited speakers and Panel 
Session
   members.  Late abstract submissions will be accepted for the
   Poster Session.


   Invited Speakers Include (more to be announced):


      Theron M. Bradley Jr.          Greg Hinckley 
      Chief Engineer, NASA           President, Mentor Graphics
      "Welcome and Opening Remarks"  "Mil/Aero and PLD's: A 
CEO's View"


   SEMINARS - Two seminars will be presented:
   "Advanced Design: Digital Signal Processing, Programmable 
Device
   Architecture, and Military/Aerospace Applications" and
   "Reconfigurable Computing: FPGA-Based, General Purpose, High
   Performance Systems."


   PANEL SESSION: We will have leading engineers and managers 
on our
   panel for a spirited "discussion." One question left open 
from the
   2002 panel on "Why Is Mars So Hard?" that will be discussed 
at the 
   2003 panel is ...


                       "Why Is Software So Hard?"
             A Discussion of the Technical, Programmatic, and
           Political Factors That Have Lead To Failures Over 
the
               Last 40 Years and Its Impact for Future Systems


      Introduction:
         James Tomayko      Carnegie Mellon University
         Paul Cerruzi       National Air and Space Museum 


      Opening Case Studies:
         Tony Spear, JPL    Magellan and Mars Pathfinder 


      John P. Dimtroff      Aircraft Certification Engineer, 
FAA
      Jack Garman           Lockheed-Martin (NASA, retired)
      Nancy Leveson         Prof. of Aeronautics and 
Astronautics, MIT
      Jim Lewis             SynthWorks Design Inc. 
      Fred Martin           Averstar/Intermetrics
      Steven S. Scott       Chief Engineer, Goddard Space 
Flight Center
      Kevin Tones           NASA Johnson Space Center


   TECHNICAL SESSIONS:


      • Applications: Military and Aerospace
      • Systems and Design Tools
      • Radiation and Mitigation Techniques
      • Processors: General Purpose and Arithmetic
      • Reconfigurable Computing, Evolvable Hardware, and 
Security
      • Birds of a Feather: Reconfigurable Computing
      • Birds of a Feather: Mitigation Methods for 
Reprogrammable
                            Logic in the Space Radiation 
Environment
      • Poster Session



   The 6th MAPLD International Conference is hosted by the AIAA 
and the
   NASA Office of Logic Design.


   INDUSTRIAL and GOVERNMENT EXHIBIT RESERVATIONS


      AccelChip              ACT/CoreTech           Actel                  
      Aeroflex UTMC          AIAA                   AITech
      Aldec                  Altera                 Andraka 
Group
      Annapolis Micro        AstroExpo.com          BAE Systems
      Celoxica               Condor Engineering     DSP 
Architectures
      Elanix                 Global Velocity        Hier Design
      IEEE                   Lattice Semiconductor  Mathstar
      Mentor Graphics        Mission Research       Nallatech
      Northrop Grumman       Quickflex              Quicksilver 
Tech.
      Seakr                  Space Micro            Synthworks 
Design
      Tensilica              Xilinx                 
      NASA Office of Logic Design


   For more information, please visit http://klabs.org/mapld03
   or contact:


      Richard Katz - Conference Chair   NASA Goddard Space 
Flight Center
      mapld2003@klabs.org               Tel: (301) 286-9705

Article: 58994
Subject: Re: Design fits XC9536 but not XC9536XL
From: Jim Granville <jim.granville@designtools.co.nz>
Date: Wed, 06 Aug 2003 12:41:28 +1200
Links: << >>  << T >>  << A >>
news@rtrussell.co.uk wrote:
> 
> Arthur <arthuryang42spam@yahoo.com> wrote:
> : Your design should fit going from the 9500 to the 9500xl. The 9500xl
> : actually has more function block fanin (36 to 54!) so I would think
> : that there should be no fitting issues.
> 
> That's what I hoped, but no luck (so far).
> 
> : The loss of wire-anding would cause your PTerm requirements to
> : increase. Perhaps if you were near the maximum utilization for this it
> : would not fit.
> 
> I suspect that is it.  The report I get from the failed XC9536XL fit is:
> 
> "Mapping a total of 36 equations into 2 function blocks......
>  ERROR:Cpld:935 - Cannot place signal P<3>.  Consider reducing
>  the collapsing input limit or the product term limit to prevent
>  the fitter from creating high input and/or high product term
>  functions".

 If the fitter has not at this stage reported the Prod terms, you
could re-target a 9572XL,(just for the purposes of getting 
a complete fitter report!), and then compare with the one below.
 
 It's common for fitter reports to be sparse/terse on failure, so
you are sometimes best to use a 'does fit' pathway 
- even if that needs some gyrations ! :)

-jg
 
> When successfully put into an XC9536 the report says:
> 
>  Macrocells used:            36/36 (100%)
>  Product terms used:       146/180 (81%)
>  Registers used:             36/36 (100%)
>  Pins used:                  34/34 (100%)
>  Function block inputs used: 56/72 (77%)
> 
> There are lots of signals shown as "wire-AND input".
> 
> : You may want to try contacting the Xilinx hotline. They are willing to
> : try fitting close designs.
> 
> I'll try that.
> 
> Richard.
> http://www.rtrussell.co.uk/

Article: 58995
Subject: Re: Xuart Lite Linux driver
From: Peter Ryser <ryserp@xilinx.com>
Date: Tue, 05 Aug 2003 18:05:48 -0700
Links: << >>  << T >>  << A >>
> It sure is!  I'm bringing across the PPC kernel drivers into uClinux at
> the moment, and there's some funny stuff going on in there!  Some wierd
> hard-coded assumptions about the names given to OPB peripherals, and
> some other crazy things - but the workaround was quite simple.

I'd be interested to hear what the workaround is.

> The reason I ask is that if I spend the time to integrate an ethernet
> MAC into the microblaze-uclinux hardware target and get the driver in,
> can I be reasonably confident that the driver itself works properly, and
> that any errors are therefore mine?! :)

The Ethernet works fine in interrupt driven mode. It doesn't work for SGDMA.

- Peter



Article: 58996
Subject: Re: Multiple device configuration using local update over ethernet
From: kommandantklink@hotmail.com (Wilhelm Klink)
Date: 5 Aug 2003 18:12:09 -0700
Links: << >>  << T >>  << A >>
Yes, you can do it, but can you do it for "local/remote update mode" (ie MSEL2 = 1).

"Valeria Dal Monte" <prova@microsoft.com> wrote in message news:<seHXa.226441$lK4.6759497@twister1.libero.it>...
> Wilhelm Klink <kommandantklink@hotmail.com> wrote in message
> 6011e208.0308042011.5bdae5e1@posting.google.com...
> > Altera have told me it is not possible to perform a multiple device
> > configuration (typically done by hooking up the nCE/nCEO pins of the
> > individual FPGAs) when using local update mode (update over ethernet).
> >  Does anyone know why it isn't possible?  It is not reasonable for a
> > board with 10 FPGAs to have 10 separate ethernet connections, and
> > having to update a set of these boards in the field using a
> > programming cable would be most tedious.
> 
> Regardless of ethernet, at least for the passive serial configuration mode
> in SRAM devices, it is possible. I did it.

Article: 58997
Subject: Re: Xuart Lite Linux driver
From: John Williams <jwilliams@itee.uq.edu.au>
Date: Wed, 06 Aug 2003 11:37:34 +1000
Links: << >>  << T >>  << A >>
Peter Ryser wrote:
>>It sure is!  I'm bringing across the PPC kernel drivers into uClinux at
>>the moment, and there's some funny stuff going on in there!  Some wierd
>>hard-coded assumptions about the names given to OPB peripherals, and
>>some other crazy things - but the workaround was quite simple.
> 
> 
> I'd be interested to hear what the workaround is.

Assuming we are talking about the same thing, the problem is illustrated 
as follows:

(example from drivers/char/xilinx_gpio):

[jwilliam@g435-9029 xilinx_gpio]$ grep BASEADDR *.c
adapter.c:     = XPAR_GPIO_0_HIGHADDR - XPAR_GPIO_0_BASEADDR + 1;
xgpio_g.c:       XPAR_MY_OPB_GPIO_0_BASEADDR}
xgpio_g.c:       XPAR_MY_OPB_GPIO_1_BASEADDR}

So adapter.c and the xilinx driver code has different expectations on 
the names of the peripherals (as defined in system.mhs).

I just hacked the xxxx_g.c files to use the same names as those expected 
by adapter.c.

Or are you talking about something different?

Cheers,

John


Article: 58998
Subject: How to use EAB in Altera FPGA?
From: "John" <305liuzg@163.net>
Date: Wed, 6 Aug 2003 09:51:09 +0800
Links: << >>  << T >>  << A >>
Hi all:
I have the following verilog codes which shift the serial data to parallel
data.But it cost
too much LEs in Altera FPGA.Then I want to make it wokes in EAB.I do not
what to do.Anybody would help me?

reg[31:0] reg_in[7:0],reg_out[7:0];

always @(posedge clk)
 begin
  if(reset)
       cnt8<=0;
  else
   if(cnt8==7)
    begin
     cnt8<=0;
     reg_out[0]<=reg_in[0];
     reg_out[1]<=reg_in[1];
     reg_out[2]<=reg_in[2];
     reg_out[3]<=reg_in[3];
     reg_out[4]<=reg_in[4];
     reg_out[5]<=reg_in[5];
     reg_out[6]<=reg_in[6];
     reg_out[7]<=reg_in[7];
    end
   else
    begin
     cnt8<=cnt8+1;
     reg_in[0]<=reg_in[1];
     reg_in[1]<=reg_in[2];
     reg_in[2]<=reg_in[3];
     reg_in[3]<=reg_in[4];
     reg_in[4]<=reg_in[5];
     reg_in[5]<=reg_in[6];
     reg_in[6]<=reg_in[7];
     reg_in[7]<=data_receive;

     end
 end




Article: 58999
Subject: Re: Conflict found between ActiveHDL6.1 and ModelSim SE
From: "Jay" <yuhaiwen@hotmail.com>
Date: Wed, 6 Aug 2003 10:11:39 +0800
Links: << >>  << T >>  << A >>
I've installed sp1 of AHDL, the problem still exists.
But I just tried its flow with ISE5.2.
"Paul Baxter" <pauljnospambaxter@hotnospammail.com> Π΄ΘλΟϋΟ’ΠΒΞΕ
:3f300a06$0$11375$cc9e4d1f@news.dial.pipex.com...
> Have you tried AHDL 6.1 service pack 1?
>
> Though using it with Altera (cos I have to) there are various fixes to
bits
> and pieces. YMMV
>
> "Jay" <yuhaiwen@hotmail.com> wrote in message
> news:bgnoeu$qa34o$1@ID-195883.news.uni-berlin.de...
> > When both of them were installed on my pc, I found:
> > 1.ModelSim can't compile Xilinx library
> > 2.ISE will give a fatal error when ActiveHDL try generate post-PAR
timing
> > simulation model
> >
> > and they both can work well separately.
> >
> >
>
>





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