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 101800

Article: 101800
Subject: Re: FPGA-based hardware accelerator for PC
From: "JJ" <johnjakson@gmail.com>
Date: 6 May 2006 22:54:13 -0700
Links: << >>  << T >>  << A >>
I always hated that the PCI cores were so heavily priced compared to
the FPGA they might go into. The pricing seemed to reflect the value
they once added to ASICs some 10 or 15 years ago and not the potential
of really low cost low volume applications. A $100 FPGA in small vol
applications doesn't support $20K IP for a few $ worth of fabric it
uses. It might be a bargain compared to the cost of rolling your own
though, just as buying an FPGA is a real bargain compared to rolling my
own FPGA/ASIC too.

FPGAs need lots of I/O to be useful, so why not put the damn IP in hard
macro form and let everyone at it. And do the same again for PCIe (if
thats possible?). We see how much more usefull FPGAs are with all the
other stuff thats been added over the years, BlockRams, multipliers,
clocks etc, but its really the IO where the sh1t hits the fan first.

I would say that if we were to see PCIe on chip, even if on a higher $
part, we would quickly see alot more  co pro board activity even just
plain vanilla PC boards. I wonder if there were multiple built in
narrow PCIe links whether they could be used to build node to node
links ala HT for FPGA arrays? .

Not that I really know much about PCIe yet.

John Jakson
transputer guy


Article: 101801
Subject: Re: Reset
From: Alif Wahid <alif.wahid@no-spam.endace.com>
Date: Sun, 07 May 2006 17:54:52 +1200
Links: << >>  << T >>  << A >>

Andy wrote:
> "Never" is a very strong word, and is almost never correct...
> 
> Asynchronous reset inputs are perfectly safe to use, and often
> necessary when circuit response must be guaranteed, even in the absence
> of a clock. However, they must be used carefully, controlling the
> release of reset (actually a synchronous event) such that it meets
> setup and  hold relative to the clock.
> 
> What I recommend to resolve the release of reset problem is to
> synchronously release (deassert) the reset signal tied to the async
> reset inputs on the state registers. Note that the reset signal still
> asserts asynchronously, it only deasserts synchronously.
> 
> rst: process (rstin, clk) is
> begin
> if rstin = '1' then
>   rstmeta <= '1';
>   rstout <= '1';
> elsif rising-edge(clk) then
>   rstmeta <= '0'; -- potentially metastable
>   rstout <= rstmeta; -- meta-rejected
> end if;
> end process;
> 
> fsm: process (rstout, clk) is
> begin
> if rstout = '1' then
>   state <= reset_state;
> elsif rising_edge(clk) then
>   case state is
>   ...
> end if;
> end process;
> 
> Andy

An important thing to remember is the 'others' clause in the case 
statement (missing from Andy's snippet above) that should always put the 
FSM to a default/reset state. Since FSM state registers are almost 
always one-hot encoded by FPGA synthesis tools, anytime it acquires an 
illegal value the FSM will be self-resetting thanks to such an 'others' 
clause.

Regards,

Alif.


Article: 101802
Subject: Re: Spartan 3e starter kit & Multimedia
From: Jim Granville <no.spam@designtools.co.nz>
Date: Sun, 07 May 2006 18:02:08 +1200
Links: << >>  << T >>  << A >>
David M. Palmer wrote:
> In article <1146955848.154397.42440@i40g2000cwc.googlegroups.com>,
> BoroToro <beiermann@gmail.com> wrote:
> 
> 
>>I just received my Spartan 3e starter kit and had to share my
>>frustration...
>>
>>The huge DRAM and the fast FPGA seem to make this board ideal for video
>>and sound processing. But.. why on earth does the board come with a
>>3bit VGA output? We do not live in the 80ies anymore. Adding a couple
>>of resistors to get 8 or 12bit color resolution would hardly have
>>changed the BOM. Even a video DAC is not expensive.
> 
> 
> It would, however, have used up more IO pins.  I don't know if that was
> a consideration, but they do seem to share pins for the devices on the
> SPI bus.
> 
> Does anyone know if doing PWM on the VGA output pins would cause Bad
> Things to happen to a typical monitor?

It would have to be above the video clock rate, and then it
would depend on the slew symmetry of the video amplifier.

For a LCD monitor, it would be more unpredictable, as they sample the
analog IP to create the digital drive signals.

-jg




Article: 101803
Subject: Re: RFID chip has battary in it or not
From: "JJ" <johnjakson@gmail.com>
Date: 6 May 2006 23:17:16 -0700
Links: << >>  << T >>  << A >>

Weng Tianxiang wrote:
> Hi,
> Recently I received a RFID chip to open company's door when entering
> office building.
>
> It is very easy to carry and use like a key.
>
> I would like to know whether it contains a battary or not.
>
> If there is no battary in it, how can a circuit work running with Radio
> Frequency?
>
> Weng

Know how an AC power transformer works ?

The power going in doesn't have to be a fixed frequency, it can be
modulated a little. The secondary coil may have a switchable shunt
across it. Combine them into a communications system.

Increase the distance till they are quite separate and the secondary
coil can be quite small and embedded on a Si chip as coils surrounding
the chip or on a carrier pcb. Still power transmitted in the primary
can reach to some degree the secondary and be rectified, stored and the
local logic can both detect variations in the received power frequency
(data input) and shunt the secondary coil (data output) and that can be
detected by the power transmitter as changes in the impedance of the
primary coil. Datarates of 1MBps or so even 20 years ago in close
proximity.

Well thats as I understood it 15yrs ago, I guess it finally cought on.
I once developed the smart idea of storing music albums on a compressed
ROM chip and using RF as the means to both power and read/play the
music out. At the time the Rom would have only been 64MBits, 1GByte
Flash & MP3 was more than a decade later.. This would have made the
device contactless and fully protected from scratching etc unlike the
CDs we still have today. 

John Jakson
transputer guy


Article: 101804
Subject: Re: RFID chip has battary in it or not
From: "JJ" <johnjakson@gmail.com>
Date: 6 May 2006 23:23:07 -0700
Links: << >>  << T >>  << A >>
Alot of good stuff there but not exactly drive by reading.

So what would you call someone that hasn't pre wiki'ed up on something.


If we all went to wikipedia first, we could dissolve the news groups
right?


Article: 101805
Subject: Re: BurchED FPGA Expansion Modules, 4-for-1 offer
From: "Tony Burch" <tony@burched.com.au>
Date: Sun, 7 May 2006 16:58:08 +1000
Links: << >>  << T >>  << A >>
Hi, just a note that the FPGA boards bonus-sets offer is closing tonight 
around midnight.

We are very happy that many people have taken up the great bonuses-offer so 
far.  I'm excited that we will be able to deliver so many "goodies parcels" 
this week.

There is a short time left to order your own "goodies parcel".  If you order 
before the bonuses-site is taken down, you can still receive bonuses there 
worth AU$98.00 and AU$325.00.  Not to mention the incredible 4-for-1 offer 
which is running concurrently.

Please read all about it at http://www.burched.biz , where you will also see 
some e-books on a home-built laser cutter! :)

Best regards,

Tony Burch

PS. You may need to press the refresh button on your web browser if you have 
looked at the site recently because it has been frequently updated.



Article: 101806
Subject: Re: Xilinx 3s8000?
From: fpga_toys@yahoo.com
Date: 7 May 2006 01:09:07 -0700
Links: << >>  << T >>  << A >>

Austin Lesea wrote:
> But you must understand that
> we can not support components purchased through non-authorized channels.

That's great, certainly helps drive the prices down on Gray market
parts, which means your customers eats their shirt when they need to
resell excess inventory.  :)

(with some gleeful sarcasm and self interest)


Article: 101807
Subject: Re: Measuring Light with LED and FPGA
From: "Antti" <Antti.Lukats@xilant.com>
Date: 7 May 2006 02:22:57 -0700
Links: << >>  << T >>  << A >>
the missing schmitt's shouldnt be a problem.

But I still dont know what is the best and minimal hardware connection
of the LED to the FPGA

I first tried to use no components connection by connecting the LED
directly to io pins and using
pullup-down as resistor, but I got rather bad results for some reason,
the light sensitivity was
about 0.2% at the best (light dependant change of oscillating
frequency)

by using the R-C-R 3 pin oscillator from Peter Alfkes 'six easy pieces'
I got 10% difference
between sunlight and dark, setup
R1=R2=18k
C=10nf in series with green SMD LED

dark 740 KHz
light 670 Khz

I havent looked at signal on the iopins at all, I guess there should be
some better setup than using 3 io pins and 2 resistors to measure the
LED as sensor

Antti

here is the RCR oscillator I used

two resistors in series from ri to ro
the middle of them via led in series with capacitor to c

------------
library ieee;
use ieee.std_logic_1164.all;

entity xti_oco_rcr is port (
	ri : in std_logic;
	ro : inout std_logic;
	c : inout std_logic;
	en : in std_logic; -- always 1
	clk : out std_logic);
end;

architecture rtl of xti_oco_rcr is
signal c_s : std_logic;
begin
	clk <= ri;
	ro <= not c when en='1' else 'Z';
	c <= c_s when en='1' else 'Z';
	c_s <= not (not ((not (not ri and not ro)) and c) and (not (ri and
ro)) );
end rtl;


Article: 101808
Subject: flashing a led
From: "Jep" <Laurent.George@gmail.com>
Date: 7 May 2006 03:24:49 -0700
Links: << >>  << T >>  << A >>
I have a little problem with flashing a led.

I want flash a led for indicating the status of my program.

I do the following:

LED1 <= '1', '0' after 200 us;

But it burn all the time.

Do you have a solution? ( wthout counters)


Article: 101809
Subject: Re: Measuring Light with LED and FPGA
From: Jim Granville <no.spam@designtools.co.nz>
Date: Sun, 07 May 2006 22:32:37 +1200
Links: << >>  << T >>  << A >>
Antti wrote:

> the missing schmitt's shouldnt be a problem.
> 
> But I still dont know what is the best and minimal hardware connection
> of the LED to the FPGA
> 
> I first tried to use no components connection by connecting the LED
> directly to io pins and using
> pullup-down as resistor, but I got rather bad results for some reason,
> the light sensitivity was
> about 0.2% at the best (light dependant change of oscillating
> frequency)
> 
> by using the R-C-R 3 pin oscillator from Peter Alfkes 'six easy pieces'
> I got 10% difference
> between sunlight and dark, setup
> R1=R2=18k
> C=10nf in series with green SMD LED
> 
> dark 740 KHz
> light 670 Khz

That's an appx tau Equiv Cap of 80pF, so the LED is being some
sort of Current Offset Varicap. No DC current can flow thru the 10nF.


> I havent looked at signal on the iopins at all, I guess there should be
> some better setup than using 3 io pins and 2 resistors to measure the
> LED as sensor

The LED will inject is a couple of uA, so a circuit needs to sense that.
With a 3 term Osc, and DC current injection (not what you have above) DC 
current injection will first skew duty cycle before it really affects 
Freq much.

Probably the best oscillator topology for dF with injection current 
sense, is to copy the HC4046 Oscillator.

That is cross coupled S-R latch, with OC discharge, and the charge 
signal on one side, can be the LED current.
This OSC can have either a single CAP, or two CAPs
Very large dF with light can result, which can be damped with
a parallel injection current. ( say 10M or 20M )

-jg



Article: 101810
Subject: Re: Opteron HT coprocessors
From: christopher.saunter@durham.ac.uk (c d saunter)
Date: Sun, 7 May 2006 10:39:26 +0000 (UTC)
Links: << >>  << T >>  << A >>
Thomas Womack (twomack@chiark.greenend.org.uk) wrote:

: I'm not sure that a hypertransport-attached CCD is very practical: HT
: is a short-range interconnect, and I suspect it's fast enough that
: you'd have great difficulty implementing it in the rather peculiar fab
: processes required to make a CCD.

: I can't find a datasheet for a modern CCD, but the obsolete TC237
: has only twelve pins, requires rather complicated digital waveforms
: on five of them, and outputs analogue pixel data on two more; you
: want to keep the ADC as close to the detector as possible, I'd have
: thought connecting the ADCs via an FPGA to gigabit-ethernet channels

Indeed.  Most CCDs are analogue devices with external drivers for a reason 
- they need rapidly slewing clocks to read them out and very low noise 
amplifiers + ADCs to digitize the data.   For sure gigabit eth or whatever 
serial protocal may be used, doesn't rally matter as long as the rate's 
high enough and the latency low enough - it'd just be nice if the opteron 
socketed FPGA and similar projets had serial transcievers to talk such 
high speed serial links :-)

cds


Article: 101811
Subject: Re: flashing a led
From: Jim Granville <no.spam@designtools.co.nz>
Date: Sun, 07 May 2006 22:40:31 +1200
Links: << >>  << T >>  << A >>
Jep wrote:

> I have a little problem with flashing a led.
> 
> I want flash a led for indicating the status of my program.
> 
> I do the following:
> 
> LED1 <= '1', '0' after 200 us;
> 
> But it burn all the time.
> 
> Do you have a solution? ( wthout counters)

faster eyes ?

-jg


Article: 101812
Subject: Re: FPGA-based hardware accelerator for PC
From: Falk Brunner <Falk.Brunner@gmx.de>
Date: Sun, 07 May 2006 13:01:03 +0200
Links: << >>  << T >>  << A >>
Jeremy Ralph schrieb:
> Thanks Falk, for the numbers.  Any reason why AGP couldn't be used
> for non-graphics streams?

Non that I know of.

Regards
Falk

Article: 101813
Subject: Re: flashing a led
From: Falk Brunner <Falk.Brunner@gmx.de>
Date: Sun, 07 May 2006 13:02:41 +0200
Links: << >>  << T >>  << A >>
Jep schrieb:
> I have a little problem with flashing a led.
> 
> I want flash a led for indicating the status of my program.
> 
> I do the following:
> 
> LED1 <= '1', '0' after 200 us;
> 
> But it burn all the time.
> 
> Do you have a solution? ( wthout counters)

Whats wrong with a counter?

You do know that the above statement is for simulation only and can not 
be synthesized in real hardware?

Regards
Falk



Article: 101814
Subject: FPGA implementation of an OFDM-based modem
From: Franco Tiratore <nie@nie.nie>
Date: Sun, 07 May 2006 11:16:10 GMT
Links: << >>  << T >>  << A >>
Hi all.
As part of my university studies, I am involved in a university
project concerning the analysis and design of an 802.11a transceiver.
For the first part of my work, I need to gather information regarding
the base-band implementation of an OFDM modulator and demodulator with
an FPGA. I was wondering if you can address me to some good
documentation, in particular it would be nice to have a diagram / text
with in-depth information on the blocks required, number of lines,
available FPGA, etcetera.
Anyway, any help will be much apreciated.

Ciao,
Franco

Article: 101815
Subject: Re: FPGA-based hardware accelerator for PC
From: "Piotr Wyderski" <wyderski@mothers.against.spam-ii.uni.wroc.pl>
Date: Sun, 7 May 2006 14:18:05 +0200
Links: << >>  << T >>  << A >>
Jeremy,

> So let's say one was able to demo a 50% performance improvement for
> some specialized task using FPGA, custom RTL and HAL.

Then one can match that performance buying a faster CPU
or a multi-CPU board or a cluster of PCs. High-end FPGAs
are extremely expensive, low-end chips are not competitive,
so the final result of the analysis is "no", either because of
unacceptable price/performance factor or because of neglectable
performance improvement.

> Let's say the design is scalable such that with 8X FPGA gates
> I'd get a 8*50% performance improvement.

AFAIR a nice 2 GHz Sempron chip costs about $70. No FPGA can
beat its price/performance ratio if its tasks would be CPU-like. An FPGA
device can easily win with any general-purpose CPU in the domain of
DSP, advanced encryption and decryption, cipher breaking, true real-time
control etc., but these are not typical applications of a PC computer, so
there is not much to accelerate. And don't forget about easier alternative
ways, like computing on a GPU present on your video card:

http://tinyurl.com/c5byl

There are several impressive results.

> Yes, FPGAs are costly and can't compare to ASICs...

They can, raw speed is not the only factor that does matter. In my
opinion the order of flexibility provided by FPGAs easily compensates
their lower performance.

> but 50% in an FPGA could mean 400% in an ASIC.

But then you drop the most important feature, which is the ability to
reconfigure the device on the fly.

> If the 32 bit RISC was optimized for some specialized task, then it
> might make sense to have it alongside a high-performance CPU.

No, because in this case you are trying to outperform an out-of-order,
highly parallel processor core able to complete ~6 simple instructions
per cycle and clocked at 2+ GHz. Reasonable soft CPU cores run at
about 200 MHz and complete only one instruction per cycle. It
means that a cheap CPU you can buy anywhere has about 60 times
higher performance in sequential processing. Even if you could provide
the same performance (not to mention about outperforming it, which
is the key idea, anyway), it would mean that you are at least Harry Potter. 
:-)

> More interested in prototyping some RISC centric soft-IP designs.

You can do this using existing development boards.

    Best regards
    Piotr Wyderski


Article: 101816
Subject: A constant value of 0 in block
From: "YiQi" <yiqihuang@gmail.com>
Date: 7 May 2006 05:33:27 -0700
Links: << >>  << T >>  << A >>
I have trouble during "Low Level Synthesis" of my code. It gets me
following warings:

WARNING:Xst:1989 - Unit <memoryctr>: instances <Mcompar__n0319>,
<Mcompar__n0290> of unit <LPM_COMPARE_1> are equivalent, second
instance is removed
WARNING:Xst:1710 - FF/Latch  <memData_8_17> (without init value) has a
constant value of 0 in block <memoryctr>.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch
<memData_8_16> (without init value) has a constant value of 0 in block
<memoryctr>.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch
<memData_5_17> (without init value) has a constant value of 0 in block
<memoryctr>.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch
<memData_4_17> (without init value) has a constant value of 0 in block
<memoryctr>.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch
<memData_3_17> (without init value) has a constant value of 0 in block
<memoryctr>.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch
<memData_2_17> (without init value) has a constant value of 0 in block
<memoryctr>.

WARNING:Xst:1294 - Latch <Mtridata_sramIO1_0> is equivalent to a wire
in block <memoryctr>.
... ....(from <Mtridata_sramIO1_0> to <Mtridata_sramIO1_15>)
WARNING:Xst:1294 - Latch <Mtridata_sramIO1_15> is equivalent to a wire
in block <memoryctr>.

WARNING:Xst:1710 - FF/Latch  <X_31> (without init value) has a constant
value of 0 in block <memoryctr>.

WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch  <X_9>
(without init value) has a constant value of 0 in block <memoryctr>.
... ...(from <X_9> to <X_30>)
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch  <X_30>
(without init value) has a constant value of 0 in block <memoryctr>.

WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch  <Y_11>
(without init value) has a constant value of 0 in block <memoryctr>.
... ...(from <Y_11> to <Y_31>)
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch  <Y_31>
(without init value) has a constant value of 0 in block <memoryctr>.

mostly are having a constant value of 0 in block <XXX>.

The program is target in a Spartan3 starter board to read and/or write
8 addresses after the incoming address(currentX, currentY) chanages.
Although it isn't follow the coding examples, it setup as a state
machine.


=================
Here is the code:
=================

entity memoryCtr is
    Port ( direction : in std_logic_vector(2 downto 0);
           currentX : in std_logic_vector(7 downto 0);
           currentY : in std_logic_vector(7 downto 0);
			  reset : in std_logic;
			  enable : in std_logic;
			  ready : out std_logic;
			  action : in std_logic_vector(1 downto 0);

           front : out std_logic_vector(15 downto 0);
           fright : out std_logic_vector(15 downto 0);
           right : out std_logic_vector(15 downto 0);
           bright : out std_logic_vector(15 downto 0);
           back : out std_logic_vector(15 downto 0);
           bleft : out std_logic_vector(15 downto 0);
           left : out std_logic_vector(15 downto 0);
           fleft : out std_logic_vector(15 downto 0);

			  clk : in std_logic;
			  sramIO1  : inout std_logic_vector(15 downto 0);
			  sramCE1  : out std_logic;
			  sramUB1  : out std_logic;
			  sramLB1  : out std_logic;
			  --sramIO2  : inout std_logic_vector(15 downto 0);
			  sramAddr : out std_logic_vector(17 downto 0);
			  --sramCE2  : out std_logic;
			  --sramUB2  : out std_logic;
			  --sramLB2  : out std_logic;
			  sramWE   : out std_logic;
			  sramOE   : out std_logic
			  );
end memoryCtr;

architecture Behavioral of memoryCtr is
	constant mapSize: integer := 256;      -- 128*128
	constant memSize: integer := mapSize/2;      -- memSize -> 0 ->
memSize
	type memDatas is array (8 downto 0) of std_logic_vector(17 downto 0);
-- the value for memory location
	type state_type is (init, setup, read, write, outEnable);
	signal state: state_type := init;
begin

		memLoop: process(clk)
			variable addr :integer;
			variable readyEnable: std_logic := '1';
			variable X, Y :integer;
			variable prevAction : std_logic_vector(1 downto 0) := "00";
			variable tempData1, tempData2 : std_logic_vector(15 downto 0) :=
x"0000";
			variable FmemData, FRmemData, RmemData, BRmemData,
						BmemData, BLmemData, LmemData, FLmemData : std_logic_vector(15
downto 0);
			variable memData: memDatas;												 -- the location for 8
memories
			variable dir : integer := 8;												 -- direction counter

		begin
		----------------------------------------------------------------------------------------
		----------state 1: accept calls and initialize the calls for current
location ----------
		----------------------------------------------------------------------------------------


			if reset = '1' then
					state <= init;
					ready <= '0';
					dir := 8;
					readyEnable := '1';

					sramWE <= '0';
					sramOE <= '0';
					sramAddr <= (others => '1');

					sramCE1 <= '1';
					sramUB1 <= '1';
					sramLB1 <= '1';
					sramIO1 <= (others => 'Z');

			else
				case state is
					when init =>
						ready <= '0';
						if enable = '0' then
							readyEnable := '0';
						elsif enable = '1' AND dir < 0 then
							readyEnable := '0';
						elsif enable = '1' AND dir > 0 then
							readyEnable := '1';
						end if;
						dir := 8;

						-- calulate and place the current address in the memory bus
						if clk = '1' AND readyEnable= '1'
							then
							if currentX = "1000000" AND currentY = "1000000" then
								front  <= x"1111";
								fleft  <= x"1111";
								left   <= x"1111";
								bleft  <= x"1111";
								back   <= x"1111";
								bright <= x"1111";
								right  <= x"1111";
								fright <= x"1111";
								state <= init;
							else
								X := CONV_INTEGER(currentX);
								Y := CONV_INTEGER(currentY);
								addr := CONV_INTEGER(Y)*mapSize+CONV_INTEGER(X);

								if action = "01" AND prevAction = "01" then
									tempData1 := FmemData;
									FmemData := FRmemData;
									FRmemData := RmemData;
									RmemData := BRmemData;
									BRmemData := BLmemData;
									BLmemData := LmemData;
									LmemData := FLmemData;
									FLmemData := tempData1;

									dir := -1;
									state <= outEnable;
								elsif action = "10" AND prevAction = "10" then
									tempData1 := FLmemData;
									FLmemData := LmemData;
									LmemData := BLmemData;
									BLmemData := BRmemData;
									BRmemData := RmemData;
									RmemData := FRmemData;
									FRmemData := FmemData;
									FmemData := tempData1;

									dir := -1;
									state <= outEnable;
								else
									memData(0) := CONV_STD_LOGIC_VECTOR(addr-mapSize, 18);
									memData(1) := CONV_STD_LOGIC_VECTOR(addr-mapSize+1, 18);
									memData(2) := CONV_STD_LOGIC_VECTOR(addr+1, 18);
									memData(3) := CONV_STD_LOGIC_VECTOR(addr+mapSize+1, 18);
									memData(4) := CONV_STD_LOGIC_VECTOR(addr+mapSize, 18);
									memData(5) := CONV_STD_LOGIC_VECTOR(addr+mapSize-1, 18);
									memData(6) := CONV_STD_LOGIC_VECTOR(addr-1, 18);
									memData(7) := CONV_STD_LOGIC_VECTOR(addr-mapSize-1, 18);
									memData(8) := CONV_STD_LOGIC_VECTOR(addr, 18);

									dir := 8;
									state <= setup;
								end if;
								prevAction := action;
							end if;

						end if;

		----------------------------------------------------------------------------------------
		----------state 2: setup the buses for read
--------------------------------------------
		----------------------------------------------------------------------------------------

					when setup => -- for read
						ready <= '0';

						sramCE1 <= '1';
						sramUB1 <= '1';
						sramLB1 <= '1';
						sramWE <= '0';
						sramOE <= '1';

						if dir = 8 then
							sramAddr <= memData(dir);
						elsif CONV_INTEGER(direction)+dir > 7 then
							sramAddr <= memData((CONV_INTEGER(direction)+dir-8));
						else
							sramAddr <= memData((CONV_INTEGER(direction)+dir));
						end if;
						sramIO1 <= (others => 'Z');
						state <= read;

		----------------------------------------------------------------------------------------
		----------state 3: clear the bus, read the current value,& write if
necessary ----------
		----------------------------------------------------------------------------------------
					when read => -- reading and break the output before next read or
write
						ready <= '0';

						sramWE <= '0';
						sramOE <= '0';
						tempData1 := sramIO1;
						sramIO1 <= (others => 'Z');

						if  tempData1 = "UUUUUUUUUUUUUUUU" OR   -- Address have not been
visit,
							 tempData1 = "0000000000000000" OR   --  calculate and place
							 tempData1 = "XXXXXXXXXXXXXXXX" then --  new data and update it
								-- go to write state
							state <= write;
						elsif action = "11" AND dir = 8
								AND X /= memSize AND Y /= memSize then --update the entry
							state <= write;
						else 							-- go to output stage
							state <= outEnable;
						end if;

		----------------------------------------------------------------------------------------
		----------state 4: write the calcualted value to current entry
-------------------------
		----------------------------------------------------------------------------------------
					when write => 		-- updating the value for a entry
						ready <= '0';
						-- perparing the value
						if dir = 8 then 	-- current location
							if tempData1 = "0000000000000000" then	-- empty entry
								if abs(memSize - X) > abs(memSize - Y) then
									tempData1 := CONV_STD_LOGIC_VECTOR(abs(memSize - X), 16)+1;
								else
									tempData1 := CONV_STD_LOGIC_VECTOR(abs(memSize - Y), 16)+1;
								end if;
							else	 											-- update entry
								tempData1 := tempData1 +1;
							end if;
						else 				-- surrounding location
							if CONV_INTEGER(direction)+dir > 7 then
								X := abs(memSize -
(CONV_INTEGER(memData(CONV_INTEGER(direction)+dir-8)) mod mapSize));
								Y := abs(memSize -
(CONV_INTEGER(memData(CONV_INTEGER(direction)+dir-8))/mapSize));
							else
								X := abs(memSize -
(CONV_INTEGER(memData(CONV_INTEGER(direction)+dir)) mod mapSize));
								Y := abs(memSize -
(CONV_INTEGER(memData(CONV_INTEGER(direction)+dir))/mapSize));
							end if;

							if X > Y then
								tempData1 := CONV_STD_LOGIC_VECTOR(X, 16);
							else
								tempData1 := CONV_STD_LOGIC_VECTOR(Y, 16);
							end if;
						end if;

						-- follow signal did not change since setup
						sramCE1 <= '1';
						sramUB1 <= '1';
						sramLB1 <= '1';

						sramWE <= '1';
						sramOE <= '0';
						sramIO1 <= tempData1;

						state <= outEnable;

		----------------------------------------------------------------------------------------
		----------state 5: check if all done, yes then output all the values
-------------------
		----------         else back to setup stage
-------------------
		----------------------------------------------------------------------------------------
					when outEnable =>  -- if all done then output state

						sramWE <= '0';  -- just a safe to clear the bus again
						sramOE <= '0';
						sramIO1 <= (others => 'Z');

						if dir = 0 then
							FmemData := tempData1;
						end if;
						if dir = 1 then
							FRmemData := tempData1;
						end if;
						if dir = 2 then
							RmemData := tempData1;
						end if;
						if dir = 3 then
							BRmemData := tempData1;
						end if;
						if dir = 4 then
							BmemData := tempData1;
						end if;
						if dir = 5 then
							BLmemData := tempData1;
						end if;
						if dir = 6 then
							LmemData := tempData1;
						end if;
						if dir = 7 then
							FLmemData := tempData1;
						end if;

						dir := dir - 1;

						if dir >= 0 then -- back to setup stage
							state <= setup;
						else 	          -- all done, send the output the cooresponding
port
							ready <= '1';
							front <= FmemData;
							fright <= FRmemData;
							right <= RmemData;
							bright <= BRmemData;
							back <= BmemData;
							bleft <= BLmemData;
							left <= LmemData;
							fleft <= FLmemData;

							state <= init;
						end if;
					when others =>
						state <= init;
				end case;
			end if;

		end process;

end Behavioral;

Any help on this would be greatly appreciated.
Thanks very much in advance.

YiQi


Article: 101817
Subject: EDIFParser in JHDL / EDIF simulator?
From: "YiQi" <yiqihuang@gmail.com>
Date: 7 May 2006 05:54:46 -0700
Links: << >>  << T >>  << A >>
Hi, all,

sorry if the question appears stupid, I just want to get it start.
also sorry about my poor english(it isn't my first language), hope you
can
understand what I mean.

My orignal design is done in VHDL. I have generate the edif from
Xilinx.
After reading most of the introduction, I think JHDL will be able to
help me
reading the EDIF file. What I try to do is read the EDIF file and
conver it
into my own structure (a chromosome of the circuit), follow by genetic
algorithm, to produce a new function with the circuit.

In my understanding, edif file captures the gates, FF, and wires only,
there
is not architecture dependent. Let me know if I am wrong.
Therefore, my questions are following:

1. Why do we need to specify the architecture(target) during VHDL ->
JHDL
using EDIFParser?

2. Because JHDL doesn't support asynchoronous loop. Is there any
software might do a better job than JHDL on simulating EDIF file as a
black box with VHDL? It will be even better if it can be done by scrpit
or command line (so that could be control by my java GA program)


Any help on this would be greatly appreciated.
Thanks very much in advance.

YiQi Huang


Article: 101818
Subject: Re: flashing a led
From: Zara <yozara@terra.es>
Date: Sun, 07 May 2006 14:54:54 +0200
Links: << >>  << T >>  << A >>
On 7 May 2006 03:24:49 -0700, "Jep" <Laurent.George@gmail.com> wrote:

>I have a little problem with flashing a led.
>
>I want flash a led for indicating the status of my program.
>
>I do the following:
>
>LED1 <= '1', '0' after 200 us;
>
>But it burn all the time.
>
>Do you have a solution? ( wthout counters)

If it burns, it has too much forwar current, try instead:

LED1<= '1' through 200 ohms, '0' after 200 us ;-)

Zara


Article: 101819
Subject: Re: A constant value of 0 in block
From: "YiQi" <yiqihuang@gmail.com>
Date: 7 May 2006 06:16:28 -0700
Links: << >>  << T >>  << A >>
The following warning is issued:

"WARNING:Xst:1294 - Latch <latch_name> is equivalent to a wire in block
<block_name>."


Solution 1:
This problem is fixed in the latest 5.1i Service Pack, available at:
http://support.xilinx.com/support/techsup/sw_updates
The first service pack containing the fix is 5.1i Service Pack 1.

Above message from Xilinx's web site, But I am using 7.1i already, it
isn't that my errors  should be fixed?


Article: 101820
Subject: Re: BurchED FPGA Expansion Modules, 4-for-1 offer
From: "Kryten" <kryten_droid_obfusticator@ntlworld.com>
Date: Sun, 07 May 2006 13:25:36 GMT
Links: << >>  << T >>  << A >>
"Tony Burch" <tony@burched.com.au> wrote in message 
news:445d9a81$0$25129$afc38c87@news.optusnet.com.au...
> Hi, just a note that the FPGA boards bonus-sets offer is closing tonight 
> around midnight.

I was going to leave that till the evening to take a look but I remembered 
you're in Australia and thus about 10 hours ahead of the UK.

Therefore I have about half an hour to do any shopping!







Article: 101821
Subject: The differences between behaviors of 'std_logic_vector' and 'unsigned'
From: "Weng Tianxiang" <wtxwtx@gmail.com>
Date: 7 May 2006 06:33:31 -0700
Links: << >>  << T >>  << A >>
Hi,
Based on suggestions from this group, when switching libraries from
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;

to
USE ieee.std_logic_1164.all;
use ieee.numeric_std.all;

this morning I really found a big new issue dealing with
'std_logic_vector' and 'unsigned'.

Here is the definition of 'unsigned' from ieee.numeric_std.vhd:
type UNSIGNED is array (NATURAL range <>) of STD_LOGIC;

Here is the definition of 'std_logic_vector' from ieee.stdlogic.vhd:
TYPE std_logic_vector IS ARRAY ( NATURAL RANGE <>) OF std_logic;

Actually one cannot see any big differences between 'unsigned' and
'std_logic_vector'.

But the following code shows big differences between the two's
behaviors within a generate loop:

signal A : unsigned(1 downto 0);
...

Generate_A : for I in 0 to 3 generate
   ModuleX : port map (
       ...
       A   => A(I), <-- error due to A's range between 1-0 while I = 2
       ...
   );
end generate;

signal A : std_logic_vector(1 downto 0);
...

Generate_A : for I in 0 to 3 generate
   ModuleX : port map (
       ...
       A   => A(I), <-- no error, because integer I is between 3-0
                        -- and A's range is 3-0 due to its definition
of 2 bits 
       ...
   );
end generate;
 
Why?

Thank you.

Weng


Article: 101822
Subject: Re: Spartan 3e starter kit & Multimedia
From: christopher.saunter@durham.ac.uk (c d saunter)
Date: Sun, 7 May 2006 13:45:15 +0000 (UTC)
Links: << >>  << T >>  << A >>
David M. Palmer (dmpalmer@email.com) wrote:
: In article <1146955848.154397.42440@i40g2000cwc.googlegroups.com>,
: BoroToro <beiermann@gmail.com> wrote:

: > I just received my Spartan 3e starter kit and had to share my
: > frustration...
: > 

<s nip >

: Does anyone know if doing PWM on the VGA output pins would cause Bad
: Things to happen to a typical monitor?


I tried it with the Spartan 3 kit from Xilinx/Digilent a while back and
had some success with PWM - if you count success to mean working on 1 of
4 CRTs tested...   And working being used in a foregiving sense :-)

cds

Article: 101823
Subject: Re: The differences between behaviors of 'std_logic_vector' and 'unsigned'
From: Mike Treseler <mike_treseler@comcast.net>
Date: Sun, 07 May 2006 07:10:32 -0700
Links: << >>  << T >>  << A >>
Weng Tianxiang wrote:

> Actually one cannot see any big differences between 'unsigned' and
> 'std_logic_vector'.

The package contains much more than that type declaration.
Have a look at the functions that cover unsigned.

http://www.csee.umbc.edu/help/VHDL/packages/numeric_std.vhd

  -- Mike Treseler


Article: 101824
Subject: Re: A constant value of 0 in block
From: Mike Treseler <mike_treseler@comcast.net>
Date: Sun, 07 May 2006 07:30:43 -0700
Links: << >>  << T >>  << A >>
YiQi wrote:
> The following warning is issued:
> Above message from Xilinx's web site, But I am using 7.1i already, it
> isn't that my errors  should be fixed?

Try fitting your code into a template like this

      begin
        if reset = '1' then
           init_regs;
        elsif rising_edge(clock) then
           update_regs;
        end if;
        update_ports;
     end process sync_template;

       -- Mike Treseler

  It is not in the stars
  to hold our destiny but in ourselves.
   -William Shakespeare



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