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 110975

Article: 110975
Subject: Re: OPB to SPI clock frequency ratio
From: "Antti" <Antti.Lukats@xilant.com>
Date: 26 Oct 2006 07:22:09 -0700
Links: << >>  << T >>  << A >>
Aaron Curtin schrieb:

> Hi, I have a Microblaze based project that communicates to a 16Bit DAC
> by means of an SPI interface.  I'm using the OPB_SPI interface with a
> OPB to SPI clock ratio of 16 (the minimum for this property) which
> works out to be a clock of 3.125 Mhz for a 50Mhz OPB bus.  This seems
> extremely slow considering that the DAC unit can work up to an SPI
> clock frequency of 30Mhz.  Does anyone know why the minimum value for
> the OPB to SPI clock ratio has to 16 or am I just not configuring it
> properly.

min ratio is 2 not 16

Antti


Article: 110976
Subject: Re: DDR SDRAM access with MPMC2, Databus Width
From: "Mack" <disentis@gmx.li>
Date: 26 Oct 2006 07:30:36 -0700
Links: << >>  << T >>  << A >>
Hi,

I generated my MPMC2 Core with the GUI 1.6. I took a preconfigured core
"ml403_ddr_p_100mhz" and changed the memory style, type, part width
etc. so that it fits to my board memory (Infineon HYB25D512160BC) and
modified the Number of Data Pins in the Memory Settings to 16. After
that I generated the Core. The Arbiter Algorithm didn=B4t need to be
changed.

In XPS I ran the BSB Wizard to build a project with OPB_DDR Controller
and some peripheral parts, checked it with the simple TestMemory_App,
everything ok. Rescan User Repositories. Then I added the MPMC2 and
dcm_por_reset IPs and connected the Ports etc as described in MPMC2
release notes by editing the mhs file. I also removed the opb_ddr
instance. After that I build the project, downloaded bitstream and
checked per xmd the memory state, there I have this problem mentioned
above.

Any other suggestions?
Thanks,
Mack


Article: 110977
Subject: Re: OPB to SPI clock frequency ratio
From: "joe4702" <joe4702@hotmail.com>
Date: 26 Oct 2006 07:31:03 -0700
Links: << >>  << T >>  << A >>
Aaron Curtin wrote:
> Does anyone know why the minimum value for
> the OPB to SPI clock ratio has to 16 or am I just not configuring it
> properly.

The minimum ratio value is 2, at least from OPB SPI version 1.00.b
onward
(I don't have a datasheet for version 1.00.a).

>From the Data Sheet:

OPB to SPI SCK frequencies ratio
C_OPB_SCK_RATIO
2, 4, 16, 32, NX16 for N=1,2,3,...,128
default: 2 
type: integer


Article: 110978
Subject: Re: xilinx sync fifo with first word fall-through
From: "leevv" <leevv@mail.ru>
Date: 26 Oct 2006 07:34:56 -0700
Links: << >>  << T >>  << A >>

Antti wrote:
> leevv schrieb:
>
> > May be it's not pretty, but i'm using this for quite a while.
> > I'm creating wrapper for the fifo and this component.
> >
> {code snipped}
>
> looks like exactly what I needed, tried last night the same but failed
> with first attempt
>
> sposiba ogromnoje!
>
> Antti
> PS I wonder how many xilinx users have made or have needed this
> auto_read_first
> FIFO fix? really simple thing, but not available with coregen


Pojalujsta. ;-)

Why only xilinx. I'm just currious is it standard feature somewhere
else (A or L)?


Article: 110979
Subject: Re: Xilinx MIG 1.6 doesn't launch
From: "RobertP." <r_p_u_d_l_i_k@poczta.onet.pl>
Date: Thu, 26 Oct 2006 16:39:19 +0200
Links: << >>  << T >>  << A >>
Your name wrote:
> Hi there,
> 
> I've recently installed the Xilinx ISE toolset so that I can play with the 
> Memory Interface Generator.  I followed the readme and installed ISE 8.1i, 
> 8.1i_SP3 and then MIG 1.6.  When I open CORE Generator and select MIG from 
> the drop down list nothing happens. I get the "Customise" and "View Data 
> Sheet" links but when I click on them nothing happens.
> 
> Is there another download that I've missed or is the Xilinx software just 
> flaky?
> 
What family are you targeting?

I think there is a mistake in mig_v1_6.xml file.
If you view it, you can find a following line:
<family>virtex5</family>

In version 1.5 it is:
<family>spartan3 spartan3e virtex4</family>

Some time ago I tried to add other families to a 1.6 version .xml file 
and it worked fine for Spartan3.

-- 
Regards
RobertP.

Article: 110980
Subject: Re: Quartus DSP Blocks
From: "Robin Bruce" <robin.bruce@gmail.com>
Date: 26 Oct 2006 08:07:25 -0700
Links: << >>  << T >>  << A >>
Hi Richard,

how are you implementing the multiplies in your design?

Are you just expressing them as standard HDL and then seeing them
inferred as hard multiplier blocks in the logical synthesis stage? Or
are you either:

a) Explicitly instantiating embedded multipliers in your HDL code?
b) Using some kind of pre-synthesised logical netlist that instantiates
embedded multipliers as part of your design?

Robin

rnbrady wrote:
> Hi
>
> I'm compiling my design using Quartus II and using a Cylclone II EP2C35
> device.  The fitter reports currently says it's using 34 /70 embedded
> 9-bit multiplier blocks. I'd like to see how much extra logic it uses
> if I tell it not to use the embedded multipliers, but I can't seem to
> turn them off.
>
> Under the synthesis settings I can set "maximum DSP block usage" from
> -1 to 0 but this has no effect. Any tips?
> 
> Thanks,
> Richard


Article: 110981
Subject: Re: xilinx sync fifo with first word fall-through
From: "Peter Alfke" <peter@xilinx.com>
Date: 26 Oct 2006 08:19:48 -0700
Links: << >>  << T >>  << A >>
The dedicated FIFO controller in Virtex-5 BRAMs has
First-word-fall-through as an option, and also "synchronous" (=common
read-write clock) as an option, where it avoids the re-synchronation
delay ambiguity.
Peter Alfke, Xilinx Applications

On Oct 26, 7:34 am, "leevv" <l...@mail.ru> wrote:
> Antti wrote:
> > leevv schrieb:
>
> > > May be it's not pretty, but i'm using this for quite a while.
> > > I'm creating wrapper for the fifo and this component.
>
> > {code snipped}
>
> > looks like exactly what I needed, tried last night the same but failed
> > with first attempt
>
> > sposiba ogromnoje!
>
> > Antti
> > PS I wonder how many xilinx users have made or have needed this
> > auto_read_first
> > FIFO fix? really simple thing, but not available with coregenPojalujsta. ;-)
>
> Why only xilinx. I'm just currious is it standard feature somewhere
> else (A or L)?


Article: 110982
Subject: Re: Stream cipher
From: "ajjc" <ajjc@optngn.com>
Date: 26 Oct 2006 08:27:59 -0700
Links: << >>  << T >>  << A >>
I'm also interested in hardware stream ciphers, and have been looking
at papers related to:

http://en.wikipedia.org/wiki/ESTREAM

Good luck!
alan


Article: 110983
Subject: Re: xilinx sync fifo with first word fall-through
From: "Antti" <Antti.Lukats@xilant.com>
Date: 26 Oct 2006 08:35:11 -0700
Links: << >>  << T >>  << A >>
Peter Alfke schrieb:

> The dedicated FIFO controller in Virtex-5 BRAMs has
> First-word-fall-through as an option, and also "synchronous" (=common
> read-write clock) as an option, where it avoids the re-synchronation
> delay ambiguity.
> Peter Alfke, Xilinx Applications
>

Peter

I feel really stupid - I had to target S3e, but I dont have any nice
s3e boards around so I tested on the board that is closest to the
keyboard, what happens to be ML501.

So somehow looking at the x markings I got the impression that "first
word fall through" is not supported by coregen for S3e at all. As Pixel
Velocity just told me in email this isnt true. I was too tired eyes
hurting too much, didnt see or understand the x's in the coregen
screen.

So I have implemented Leew's solution that works just perfectly. After
that I have also validated the coregen's solution, that also works, but
has a hidden 'issue' namly with coregen FIFO 'empty' flag de-asserts
not when WR asserts but when it deasserts! so if 1000 words are written
to FIFO then empty goes away then when the WR ends eg at time when
there are 1000 words already in fifo. Leews solution doesnt have that
issue.

Ok for my current application both alternatives would work ok, but I
already had the Leew's fixup in place

Antti


Article: 110984
Subject: Re: OPB to SPI clock frequency ratio
From: "Aaron Curtin" <acurtin@modspike.com>
Date: 26 Oct 2006 08:41:19 -0700
Links: << >>  << T >>  << A >>
I have been using version 1.00.e of the opb_spi interface.  I tried
changing the value in the opb_spi property window and it always resets
to 16 if the value entered is below.  I then tried changing the value
in the MHS file and I end up getting the following error when I try
building the hardware design:

ERROR:MDT - SPI_DAC (opb_spi) - Invalid parameter:
   C_OPB_SCK_RATIO must be 16N where N = 1, 2, 3,...,128
       while executing
   "error "Invalid parameter:\nC_OPB_SCK_RATIO must be 16N where N = 1,
2,
   3,...,128" "" "mdt_err""
       (procedure "check_sck_ratio" line 10)
       invoked from within
   "check_sck_ratio     $mhsinst"
       (procedure "::hw_opb_spi_v1_00_e::check_iplevel_settings" line
4)
       invoked from within
   "::hw_opb_spi_v1_00_e::check_iplevel_settings 34196856"

Running UPDATE Tcl procedures for OPTION
PLATGEN_SYSLEVEL_UPDATE_PROC...
ERROR:MDT - platgen failed with errors!


Article: 110985
Subject: Re: OPB to SPI clock frequency ratio
From: Aurelian Lazarut <aurash@xilinx.com>
Date: Thu, 26 Oct 2006 17:08:35 +0100
Links: << >>  << T >>  << A >>
Aaron, I think it's bug in the GUI, just edit the mhs by hand.
Aurash
Aaron Curtin wrote:

>I have been using version 1.00.e of the opb_spi interface.  I tried
>changing the value in the opb_spi property window and it always resets
>to 16 if the value entered is below.  I then tried changing the value
>in the MHS file and I end up getting the following error when I try
>building the hardware design:
>
>ERROR:MDT - SPI_DAC (opb_spi) - Invalid parameter:
>   C_OPB_SCK_RATIO must be 16N where N = 1, 2, 3,...,128
>       while executing
>   "error "Invalid parameter:\nC_OPB_SCK_RATIO must be 16N where N = 1,
>2,
>   3,...,128" "" "mdt_err""
>       (procedure "check_sck_ratio" line 10)
>       invoked from within
>   "check_sck_ratio     $mhsinst"
>       (procedure "::hw_opb_spi_v1_00_e::check_iplevel_settings" line
>4)
>       invoked from within
>   "::hw_opb_spi_v1_00_e::check_iplevel_settings 34196856"
>
>Running UPDATE Tcl procedures for OPTION
>PLATGEN_SYSLEVEL_UPDATE_PROC...
>ERROR:MDT - platgen failed with errors!
>
>  
>


-- 
 __
/ /\/\ Aurelian Lazarut
\ \  / System Verification Engineer
/ /  \ Xilinx Ireland
\_\/\/
 
phone:	353 01 4032639
fax:	353 01 4640324
    
     

Article: 110986
Subject: Re: Jumps in FPGA implemented integrator
From: "Helen" <h.obrien@ic.ac.uk>
Date: 26 Oct 2006 09:22:25 -0700
Links: << >>  << T >>  << A >>
Thomas,

Many thanks for your input!  Yes you are right, compout is driven
outside the FPGA and is not synchronous.  I have tried out your
suggestion (see below), and it does definitely improve things (removes
most of the jumps :-), but I still have something going wrong as there
are still some occasional jumps in the data.  I have staggered the
integrator sum to a falling edge of the clock. (see below).  Is this
what you meant by 2-stage shift register?  Is there anything else I can
try?

sigdelfeedback: process (Clk8MHz) is
begin
  if rising_edge(Clk8MHz) then
    feedbackbit<=compout;
  end if;
end process sigdelfeedback;

integrator: process (Clk8MHz) is
begin
  if falling_edge(Clk8MHz) then
    if feedbackbit ='1' then
         combacc1<=combacc1 + 1;
    else
         combacc1<=combacc1 - 1;
    end if;
  end if;
end process integrator;

Thanks again, 
Helen


Article: 110987
Subject: Re: Microblaze : FSL bus
From: "marada" <antoniomarada@gmail.com>
Date: 26 Oct 2006 09:23:40 -0700
Links: << >>  << T >>  << A >>

Zara wrote:
> On Mon, 23 Oct 2006 06:53:24 -0700, gerd <gerd.van.den.branden@ehb.be>
> wrote:
>
> >Hi,
> >
> >I want to use the FSL bus to connect two microblazes together. Because I am not familiar with the FSL bus, I first added a peripheral core using the configure coprocessor wizzard, to instantiate a default paripheral, together with the FSL drivers. However, when I run the SW application it stalls when writing to the FSL bus. I don't get any response afterwards.
> >
> >First, I did not made any changes to the instantiation of the fsl bus. Later on, I changed the clock connections (later on, also in the fsl's mpd file). Unfortunately, none o these measurements made any difference.
> >
> >Is there anyone that can provide me an example design that successfully uses the FSL bus, together with the application software (or a stripped version)? I can not find any satisfying reference designs on the web, nor on the Xilinx site.
> >
> >All help would be welcome!!
> >
> >Thanks,
> >
> >Gerd
>
>
> You must instantiate two fsl bus, to connect two uBlaze, one for each
> sense of communication. In each instance, you should connect
> FSL_Clk,Sys_Rst, FSL_M_CLK and FSL_S_Clk (all three clocks together).
> Bot uBlazes should work at same clock frequency
>
> You should also use the non-blocking versions of read/write functions
> (nput, ncput, nget y ncget).
>
> ANd thta is all there is to it!
>
> Zara

I'll try to explain me...in English o.O :-/ FSL bus works in one
direction: if you connect the peripheral or ublaze to FSL master, you
can write. If you connect the peripheral or ublaze to FSL slave you can
read, then if you want to write and read with the same ublaze or
peripheral, you need 2 FSLs.

I had problems with my  FSLperipheral<->ublaze  and with
ublaze<->ublaze connection by FSL. The reason was the signal "External
Reset Active High", by defect, it was 1.

If you add the 2nd ublaze, also you must add the bram block, lmb
bus...and you must verify that the bus interface is correct, that all
the necessary ports are connected (for example, when I added the 2nd
ublaze, EDK 8.1 don't add "sys_clk" to my ublaze and I had to put it in
"system.mhs") and that bram block, lmb have addresses.

You don't need to connect the three clocks, if you have synchronous
transmission, only the  FSL_Clk is necessary.
To write with ublaze you should use the function: "putfsl(data, 0)"
('0' is the fsl id) and to read: "getfsl(data,0)". In the case of FSL
peripheral, you should use the signals FSL_S_EXISTS, FSL_S_DATA,
FSL_M_WRITE....see the FSL_v20.pdf.

arggghh...3 hours for to write this...:-(


Article: 110988
Subject: Xilinx Virtex4 Outputs for Camera Link
From: "Brad Smallridge" <bradsmallridge@dslextreme.com>
Date: Thu, 26 Oct 2006 09:31:18 -0700
Links: << >>  << T >>  << A >>
Can anyone tell me what I need to drive a Camera Link
output directly from a V4? I have tried LVCMOS25 and I
can see differential signals at the outputs but at the
end of a 2 meter cable I see only DC differential levels
as if the signals are dampened somehow.

Brad Smallridge
aivision



Article: 110989
Subject: Re: Bit order reversed in Xilinx post-translate simulation
From: "Jhlw" <james.h.w@gmail.com>
Date: 26 Oct 2006 10:42:24 -0700
Links: << >>  << T >>  << A >>
Entire thread:
http://groups.google.com/group/comp.arch.fpga/browse_thread/thread/8a8af923fa745e92/6f5f8b0c63a6bf79?hl=en#6f5f8b0c63a6bf79

The solution is in Answer Record # 11635
See
http://www.support.xilinx.com/xlnx/xil_ans_display.jsp?getPagePath=11635

 Solution 1:
 You can work around this issue in two ways:
 1. Change the bus-ordering from (x to y) to (y downto x).
 2. Create a separate testbench for functional and timing simulation.
 This issue will be fixed in 6.1i.

Like fun it's fixed. If it was, it has since been un-fixed. I am using
Xilinx ISE ver 8.2.03i and ModelSim III XE 6.1e starter edition.

I chose approach 1., declaring the slv_regs as "downto" and rewrote the
Xilinx code for writing to the slv_regs as (eg):
slv_reg11((C_DWIDTH-1)-(byte_index*8) downto
(C_DWIDTH-1)-(byte_index*8+7)) <= Bus2IP_Data(byte_index*8 to
byte_index*8+7)

Simulation succeeds now and is readable, which is an important feature
in simulation, and this should work in the board.

One of the things I tried to fix this was reinstalling ISE and
ModelSim. Then I had the "brilliant" idea that since I was only using
Virtex 4, I would only install the files for that device. Then ISE
would always crash when I would try to open a new project,
notwithstanding trying what Answer Record 23387 said ("Fixed in SP1".
Like fun.). According to a Xilinx CAE, it now crashes because not all
device support was installed. I will try reinstalling with everything.

-James


Jhlw wrote:
> Hi All,
>
> Does anyone have any experience with getting their bit order reversed
> in Xilinx post-translate simulation? I am using Xilinx ISE ver 8.2.03i
> and ModelSim III XE 6.1e starter edition, and this mysteriously started
> happening to me last week when I never had a problem with this before.
> I have reinstalled both programs and have reverted to testing only what
> Xilinx gives me, and I still get the problem. I generated
> user_logic.vhd by following the directions in the
> EDK_82_PPC_Tutorial.pdf for the ML403 board; see
> http://www.xilinx.com/support/techsup/tutorials/edk_tutorials.htm --
> "EDK PowerPC Tutorial using the ML403 Development Kit 8.2"
> (EDK_82_PPC_Tutorial.pdf). Then I took it and put it in a separate new
> ISE project in order to simulate it. I didn't change any synthesize or
> translate options. I made sure that my testbench has sufficient input
> setup time and output valid delay according to the timing report (9 ns
> each, using a clock period of 20 ns). I have reduced the problem to
> just trying to write slv_reg0 and not see the contents backwards
> post-translate. I set Bus2IP_BE to F to select all registers,
> Bus2IP_Data to my test data of 0x01020304 and Bus2IP_WrCE to 8 in order
> to write slv_reg0. This succeeds in behavioral simulation, but in
> post-translate simulation, what I see for slv_reg0 is 0x20C04080, which
> is just the bits reversed low-order to high-order. I opened a webcase
> with Xilinx, but I don't know if they'll be able to reproduce the
> problem.
>
> With fresh installs of ISE and ModelSim, no changes to Synthesize or
> Translate options, no touching of any ModelSim menu options, and VHDL
> straight out of Xilinx's own user_logic from the Create Peripheral
> Wizard that always worked before (and works in Behavioral sim), what is
> left? What could I have set generally on my computer that could be
> causing this? Could there be some Translate option that I idiotically
> set and didn't remember that I set?
>
> It must be a problem with how ISE creates models for simulation, or in
> the simulator, since I can put my built project in the ML403 board and
> write and read the slv_regs correctly following the tutorial, over
> RS232. However, my core doesn't seem to be giving the correct output,
> so I need to simulate, and therefore I need a reliable simulation
> process.
>
> Thanks in advance,
> -James
>
> Here's user_logic.vhd as I am simulating it (straight from the Create
> Peripheral Wizard, with only the two "library proc_common_v2_00_a"
> lines commented-out so that the syntax check will succeed -- this
> always worked before):
> ------------------------------------------------------------------------------
> -- user_logic.vhd - entity/architecture pair
> ------------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> -- Filename:          user_logic.vhd
> -- Version:           1.00.a
> -- Description:       User logic.
> -- Date:              Tue Oct 03 15:53:39 2006 (by Create and Import
> Peripheral Wizard)
> -- VHDL Standard:     VHDL'93
> ------------------------------------------------------------------------------
> -- Naming Conventions:
> --   active low signals:                    "*_n"
> --   clock signals:                         "clk", "clk_div#", "clk_#x"
> --   reset signals:                         "rst", "rst_n"
> --   generics:                              "C_*"
> --   user defined types:                    "*_TYPE"
> --   state machine next state:              "*_ns"
> --   state machine current state:           "*_cs"
> --   combinatorial signals:                 "*_com"
> --   pipelined or register delay signals:   "*_d#"
> --   counter signals:                       "*cnt*"
> --   clock enable signals:                  "*_ce"
> --   internal version of output port:       "*_i"
> --   device pins:                           "*_pin"
> --   ports:                                 "- Names begin with
> Uppercase"
> --   processes:                             "*_PROCESS"
> --   component instantiations:              "<ENTITY_>I_<#|FUNC>"
> ------------------------------------------------------------------------------
>
> -- DO NOT EDIT BELOW THIS LINE --------------------
> library ieee;
> use ieee.std_logic_1164.all;
> use ieee.std_logic_arith.all;
> use ieee.std_logic_unsigned.all;
>
> --library proc_common_v2_00_a;
> --use proc_common_v2_00_a.proc_common_pkg.all;
> -- DO NOT EDIT ABOVE THIS LINE --------------------
>
> --USER libraries added here
>
> ------------------------------------------------------------------------------
> -- Entity section
> ------------------------------------------------------------------------------
> -- Definition of Generics:
> --   C_DWIDTH                     -- User logic data bus width
> --   C_NUM_CE                     -- User logic chip enable bus width
> --
> -- Definition of Ports:
> --   Bus2IP_Clk                   -- Bus to IP clock
> --   Bus2IP_Reset                 -- Bus to IP reset
> --   Bus2IP_Data                  -- Bus to IP data bus for user logic
> --   Bus2IP_BE                    -- Bus to IP byte enables for user
> logic
> --   Bus2IP_RdCE                  -- Bus to IP read chip enable for
> user logic
> --   Bus2IP_WrCE                  -- Bus to IP write chip enable for
> user logic
> --   IP2Bus_Data                  -- IP to Bus data bus for user logic
> --   IP2Bus_Ack                   -- IP to Bus acknowledgement
> --   IP2Bus_Retry                 -- IP to Bus retry response
> --   IP2Bus_Error                 -- IP to Bus error response
> --   IP2Bus_ToutSup               -- IP to Bus timeout suppress
> ------------------------------------------------------------------------------
>
> entity user_logic is
>   generic
>   (
>     -- ADD USER GENERICS BELOW THIS LINE ---------------
>     --USER generics added here
>     -- ADD USER GENERICS ABOVE THIS LINE ---------------
>
>     -- DO NOT EDIT BELOW THIS LINE ---------------------
>     -- Bus protocol parameters, do not add to or delete
>     C_DWIDTH                       : integer              := 32;
>     C_NUM_CE                       : integer              := 4
>     -- DO NOT EDIT ABOVE THIS LINE ---------------------
>   );
>   port
>   (
>     -- ADD USER PORTS BELOW THIS LINE ------------------
>     --USER ports added here
>     -- ADD USER PORTS ABOVE THIS LINE ------------------
>
>     -- DO NOT EDIT BELOW THIS LINE ---------------------
>     -- Bus protocol ports, do not add to or delete
>     Bus2IP_Clk                     : in  std_logic;
>     Bus2IP_Reset                   : in  std_logic;
>     Bus2IP_Data                    : in  std_logic_vector(0 to
> C_DWIDTH-1);
>     Bus2IP_BE                      : in  std_logic_vector(0 to
> C_DWIDTH/8-1);
>     Bus2IP_RdCE                    : in  std_logic_vector(0 to
> C_NUM_CE-1);
>     Bus2IP_WrCE                    : in  std_logic_vector(0 to
> C_NUM_CE-1);
>     IP2Bus_Data                    : out std_logic_vector(0 to
> C_DWIDTH-1);
>     IP2Bus_Ack                     : out std_logic;
>     IP2Bus_Retry                   : out std_logic;
>     IP2Bus_Error                   : out std_logic;
>     IP2Bus_ToutSup                 : out std_logic
>     -- DO NOT EDIT ABOVE THIS LINE ---------------------
>   );
> end entity user_logic;
>
> ------------------------------------------------------------------------------
> -- Architecture section
> ------------------------------------------------------------------------------
>
> architecture IMP of user_logic is
>
>   --USER signal declarations added here, as needed for user logic
>
>   ------------------------------------------
>   -- Signals for user logic slave model s/w accessible register example
>   ------------------------------------------
>   signal slv_reg0                       : std_logic_vector(0 to
> C_DWIDTH-1);
>   signal slv_reg1                       : std_logic_vector(0 to
> C_DWIDTH-1);
>   signal slv_reg2                       : std_logic_vector(0 to
> C_DWIDTH-1);
>   signal slv_reg3                       : std_logic_vector(0 to
> C_DWIDTH-1);
>   signal slv_reg_write_select           : std_logic_vector(0 to 3);
>   signal slv_reg_read_select            : std_logic_vector(0 to 3);
>   signal slv_ip2bus_data                : std_logic_vector(0 to
> C_DWIDTH-1);
>   signal slv_read_ack                   : std_logic;
>   signal slv_write_ack                  : std_logic;
>
> begin
>
>   --USER logic implementation added here
>
>   ------------------------------------------
>   -- Example code to read/write user logic slave model s/w accessible
> registers
>   --
>   -- Note:
>   -- The example code presented here is to show you one way of
> reading/writing
>   -- software accessible registers implemented in the user logic slave
> model.
>   -- Each bit of the Bus2IP_WrCE/Bus2IP_RdCE signals is configured to
> correspond
>   -- to one software accessible register by the top level template. For
> example,
>   -- if you have four 32 bit software accessible registers in the user
> logic, you
>   -- are basically operating on the following memory mapped registers:
>   --
>   --    Bus2IP_WrCE or   Memory Mapped
>   --       Bus2IP_RdCE   Register
>   --            "1000"   C_BASEADDR + 0x0
>   --            "0100"   C_BASEADDR + 0x4
>   --            "0010"   C_BASEADDR + 0x8
>   --            "0001"   C_BASEADDR + 0xC
>   --
>   ------------------------------------------
>   slv_reg_write_select <= Bus2IP_WrCE(0 to 3);
>   slv_reg_read_select  <= Bus2IP_RdCE(0 to 3);
>   slv_write_ack        <= Bus2IP_WrCE(0) or Bus2IP_WrCE(1) or
> Bus2IP_WrCE(2) or Bus2IP_WrCE(3);
>   slv_read_ack         <= Bus2IP_RdCE(0) or Bus2IP_RdCE(1) or
> Bus2IP_RdCE(2) or Bus2IP_RdCE(3);
>
>   -- implement slave model register(s)
>   SLAVE_REG_WRITE_PROC : process( Bus2IP_Clk ) is
>   begin
>
>     if Bus2IP_Clk'event and Bus2IP_Clk = '1' then
>       if Bus2IP_Reset = '1' then
>         slv_reg0 <= (others => '0');
>         slv_reg1 <= (others => '0');
>         slv_reg2 <= (others => '0');
>         slv_reg3 <= (others => '0');
>       else
>         case slv_reg_write_select is
>           when "1000" =>
>             for byte_index in 0 to (C_DWIDTH/8)-1 loop
>               if ( Bus2IP_BE(byte_index) = '1' ) then
>                 slv_reg0(byte_index*8 to byte_index*8+7) <=
> Bus2IP_Data(byte_index*8 to byte_index*8+7);
>               end if;
>             end loop;
>           when "0100" =>
>             for byte_index in 0 to (C_DWIDTH/8)-1 loop
>               if ( Bus2IP_BE(byte_index) = '1' ) then
>                 slv_reg1(byte_index*8 to byte_index*8+7) <=
> Bus2IP_Data(byte_index*8 to byte_index*8+7);
>               end if;
>             end loop;
>           when "0010" =>
>             for byte_index in 0 to (C_DWIDTH/8)-1 loop
>               if ( Bus2IP_BE(byte_index) = '1' ) then
>                 slv_reg2(byte_index*8 to byte_index*8+7) <=
> Bus2IP_Data(byte_index*8 to byte_index*8+7);
>               end if;
>             end loop;
>           when "0001" =>
>             for byte_index in 0 to (C_DWIDTH/8)-1 loop
>               if ( Bus2IP_BE(byte_index) = '1' ) then
>                 slv_reg3(byte_index*8 to byte_index*8+7) <=
> Bus2IP_Data(byte_index*8 to byte_index*8+7);
>               end if;
>             end loop;
>           when others => null;
>         end case;
>       end if;
>     end if;
>
>   end process SLAVE_REG_WRITE_PROC;
>
>   -- implement slave model register read mux
>   SLAVE_REG_READ_PROC : process( slv_reg_read_select, slv_reg0,
> slv_reg1, slv_reg2, slv_reg3 ) is
>   begin
>
>     case slv_reg_read_select is
>       when "1000" => slv_ip2bus_data <= slv_reg0;
>       when "0100" => slv_ip2bus_data <= slv_reg1;
>       when "0010" => slv_ip2bus_data <= slv_reg2;
>       when "0001" => slv_ip2bus_data <= slv_reg3;
>       when others => slv_ip2bus_data <= (others => '0');
>     end case;
>
>   end process SLAVE_REG_READ_PROC;
>
>   ------------------------------------------
>   -- Example code to drive IP to Bus signals
>   ------------------------------------------
>   IP2Bus_Data        <= slv_ip2bus_data;
>
>   IP2Bus_Ack         <= slv_write_ack or slv_read_ack;
>   IP2Bus_Error       <= '0';
>   IP2Bus_Retry       <= '0';
>   IP2Bus_ToutSup     <= '0';
> 
> end IMP;


Article: 110990
Subject: Re: OPB to SPI clock frequency ratio
From: "Aaron Curtin" <acurtin@modspike.com>
Date: 26 Oct 2006 10:44:11 -0700
Links: << >>  << T >>  << A >>
Thank you for the reply... I did change the mhs file by hand to a value
of 8 for the C_OPB_SCK_RATIO parameter but that is resulting in my
previously posted error message.  Is it possible to use an earlier
version of the interface?

Thanks


Article: 110991
Subject: Re: What should I do with std.textio.all of ModelSim
From: Mike Treseler <mike_treseler@comcast.net>
Date: Thu, 26 Oct 2006 10:44:31 -0700
Links: << >>  << T >>  << A >>
Weng Tianxiang wrote:

> What is the difference between my and his procedures?
> I compiled textio.vhd file and compiled all files by clicked icons in
> manu: 'compile' and 'compile all'.
> He compild textio.vhd using compile/compile-selected manus.

Sounds like your son got the compile order
right and "compile all" didn't.
Consider writing a .do file for this and
run it from the command line:
  do compile.do

            -- Mike Treseler

Article: 110992
Subject: Re: OPB to SPI clock frequency ratio
From: "Aaron Curtin" <acurtin@modspike.com>
Date: 26 Oct 2006 10:49:01 -0700
Links: << >>  << T >>  << A >>
Here is a snippet of the final error after changing the mhs file and
re-implementing the design.

ERROR:MDT - C:\Spartan3E_Projects\PWM_IPIF\system.mhs line 179 -
PARAMETER C_OPB_SCK_RATIO has value 2 which does not fall in the range
(16:2048), specified in MPD

What is the MPD?


Article: 110993
Subject: Chipscope and debugger through the same JTAG port
From: "MM" <mbmsv@yahoo.com>
Date: Thu, 26 Oct 2006 13:52:20 -0400
Links: << >>  << T >>  << A >>
I am getting from time to time garbage (all signals high) displayed in the
Chipscope after successful triggering (which would not have happened if all
the signals were indeed high). The debugger (gdb) seems to indicate that the
transaction was in fact successful... So, I was wondering if anyone else has
seen this problem and whether it has anything to do to the fact that I am
using the same JTAG port for both?


Thanks,
/Mikhail



Article: 110994
Subject: Re: What should I do with std.textio.all of ModelSim
From: "Weng Tianxiang" <wtxwtx@gmail.com>
Date: 26 Oct 2006 10:57:13 -0700
Links: << >>  << T >>  << A >>

Mike Treseler wrote:
> Weng Tianxiang wrote:
>
> > What is the difference between my and his procedures?
> > I compiled textio.vhd file and compiled all files by clicked icons in
> > manu: 'compile' and 'compile all'.
> > He compild textio.vhd using compile/compile-selected manus.
>
> Sounds like your son got the compile order
> right and "compile all" didn't.
> Consider writing a .do file for this and
> run it from the command line:
>   do compile.do
>
>             -- Mike Treseler

Hi Mike,
It has nothing to do with compile order. My son is not an vhdl writer,
but knows many thing unregular. He just happend to get the thing done
right, many times I asked for his help and he got things done.

I tried following several options without success:
1. Put textio.vhd in the project top position;
2. Compile all by clicking manu icon;
3. Compile by clicking manu icon with textio.vhd selected;

My son put textio.vhd at the last position in project file list, select
textio.vhd, then clicked manu compile/compile-selected and compiled
textio.vhd only. After that he compiled all files and succeeded.

If the compile position is concerned, his position is wrong, because
textio.vhd would be called before all files, but he did it.

Thank you.

Weng


Article: 110995
Subject: Re: OPB to SPI clock frequency ratio
From: "joe4702" <joe4702@hotmail.com>
Date: 26 Oct 2006 11:03:43 -0700
Links: << >>  << T >>  << A >>

Aaron Curtin wrote:
> Here is a snippet of the final error after changing the mhs file and
> re-implementing the design.
>
> ERROR:MDT - C:\Spartan3E_Projects\PWM_IPIF\system.mhs line 179 -
> PARAMETER C_OPB_SCK_RATIO has value 2 which does not fall in the range
> (16:2048), specified in MPD
>
> What is the MPD?

Interesting.
In the 1.00.d core, the range in the MPD is 2 to 2048, in the 1.00.e
core, its 16 to 2048.

The MPD files are under the EDK tree, per core.
Example for my installation:

C:\EDK8.1\hw\XilinxProcessorIPLib\pcores\opb_spi_v1_00_d\data\opb_spi_v2_1_0.mpd


Article: 110996
Subject: Re: OPB to SPI clock frequency ratio
From: "joe4702" <joe4702@hotmail.com>
Date: 26 Oct 2006 11:09:16 -0700
Links: << >>  << T >>  << A >>
> Interesting.
> In the 1.00.d core, the range in the MPD is 2 to 2048, in the 1.00.e
> core, its 16 to 2048.
>
> The MPD files are under the EDK tree, per core.
> Example for my installation:
>
> C:\EDK8.1\hw\XilinxProcessorIPLib\pcores\opb_spi_v1_00_d\data\opb_spi_v2_1_0.mpd

Try using 1.00.d instead

In the 1.00.e data sheet, there is the following note on page 5:

Notes:
1.Ratios of 2 and 4 are not supported in this release of the core.


I quickly scanned the datasheet, but didn't see any explanation of why
this restriction exists in this newest version of the core.


Article: 110997
Subject: Re: What should I do with std.textio.all of ModelSim
From: Mike Treseler <mike_treseler@comcast.net>
Date: Thu, 26 Oct 2006 11:18:17 -0700
Links: << >>  << T >>  << A >>
Weng Tianxiang wrote:

> My son is not an vhdl writer,
> but knows many thing unregular. He just happend to get the thing done
> right, many times I asked for his help and he got things done.

Yes, your sun was just lucky.
I don't use the Modelsim GUI for compilation because
it doesn't always get it right and I can never tell
exactly what it is doing.

My point was, that if you write a script, you are in control.
It is a good idea to clean out the work directory
each time as shown below because you can fool
yourself with leftovers otherwise. Good luck

  -- Mike Treseler
_________________________________________________

# http://home.comcast.net/~mike_treseler/uart.do
set this uart
set mydesign $this
set mytb test_$this
echo Assuming [pwd] is the right directory.
vdel -all ;# clean last compilation
vlib work
vmap work work
vcom $mydesign.vhd $mytb.vhd
restart -f ;# so I can use this same script to rerun
radix hex; ;# Make bus values easy to read
add wave *                 ;# Signals
add wave /$mytb/main/*     ;# Test variables
add wave /$mytb/dut/main/* ;# UUT  variables
run -all;
# Make wave window readable
WaveRestoreCursors {{Cursor 1} {194 ns} 0}
configure wave -namecolwidth 277
WaveRestoreZoom {178 ns} {281 ns}

Article: 110998
Subject: Re: Survey on Quartus SOPC/Nios-II
From: "bart" <bart.borosky@latticesemi.com>
Date: 26 Oct 2006 11:37:07 -0700
Links: << >>  << T >>  << A >>

Chris wrote:
> Nope won't work.  I talked to Lattice today.  There is no internal osc to
> use, and they did not recommend using a bunch of gates.  Moreover there is
> no extra flash space either - zip.  This is not the first time.  Overall I
> am very disappointed with what they put out in their MachXO and XP  NV
> families.  They lack a lot of little features that would make them so much
> more powerful.  I guess they have heard that from others too, he told me
> that they were coming out with a 'revised' new XP line next year.  XP-II I
> think he said.
>
> Chris.

Hello Chris,

I spoke with our Director of Applications, Bertrand Leigh on this topic
and confirmed that the application will work.

Antti is correct, you CAN build an internal ring oscillator based on
stacked inverters for a coarse frequency oscillator inside the XP or
EC/ECP type devices.  This is a proven method that has worked at
Lattice and at other users. XO and ECP2/M device families have built-in
oscillator based on the configuration oscillator that is accessable
from the FPGA fabric after configuration.

For Flash write back both options are available -- PERSISTENT=ON for
sysConfig port and through JTAG.

We will follow up with the person you spoke to on our technical support
line and let them know about this application. Sorry if they caused any
confusion.

Hope this helps.
Bart Borosky, Lattice Semiconductor


Article: 110999
Subject: Re: xilinx sync fifo with first word fall-through
From: "Antti" <Antti.Lukats@xilant.com>
Date: 26 Oct 2006 11:48:28 -0700
Links: << >>  << T >>  << A >>
Antti schrieb:

> Peter Alfke schrieb:
>
> > The dedicated FIFO controller in Virtex-5 BRAMs has
> > First-word-fall-through as an option, and also "synchronous" (=common
> > read-write clock) as an option, where it avoids the re-synchronation
> > delay ambiguity.
> > Peter Alfke, Xilinx Applications
> >
>
> Peter
>
> I feel really stupid - I had to target S3e, but I dont have any nice
[]

actually i feel less stupid, I did checkout coregen FWFT fifo
yesterday, but I used a testbench that writes a burst to the fifo, and
I looked in the simulation where the burst starts, and the FIFO output
did not change so I assumed the FIFO wasnt working - I did not notice
that the coregen FIFO delay its output update and the EMPTY flag
de-assertion until the burst ends. this can be at the same time when is
completly full, seems like a little bizarre behaviour for an FIFO. for
me it was so unexpected that I didnt investigate the coregen FWFT fifo
any longer, and implemented the workaround

Antti




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