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 161000

Article: 161000
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gtwrek@sonic.net (gtwrek)
Date: Wed, 9 Jan 2019 22:07:43 -0000 (UTC)
Links: << >>  << T >>  << A >>
In article <5a65def4-8b0c-49f6-9642-15f52606832a@googlegroups.com>,
Weng Tianxiang  <wtxwtx@gmail.com> wrote:
>Hi Mark,
>
>Here is the definition of a state machine introduced in my prior art part:
>
>[0003]    Traditionally a deterministic finite state machine is mathematically defined as a set of 6-tuple M = (Σ, Δ, Q, q0, δ, λ), where Σ is a finite
>set of input symbols, Δ /= 0 is a finite set of output symbols, Q /= 0 is a finite set of states, q0 є Q is the “reset” state, δ(q, a) : Q x Σ → Q
>is the transfer function, and λ(q, a) : Q x Σ → Δ is the output function.
>[0004]    Conventional state machine theory has following State Machine Axiom:
>[0005]    	State Machine Axiom		A state machine has one and only one state being active on any cycle after the state machine is properly initialized. 

This definition matches all synchronous digital circuits.

Regards,

Mark



Article: 161001
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Weng Tianxiang <wtxwtx@gmail.com>
Date: Wed, 9 Jan 2019 14:52:12 -0800 (PST)
Links: << >>  << T >>  << A >>
Hi Mark,

"This definition matches all synchronous digital circuits." 

Do you plan to retrieve the following claiming?

"Weng - what you're completely missing what many have been telling you - 
your definition of a "state machine" is so broad that it's essentially 
meaningless."

I really don't understand what you are saying.

Weng

Article: 161002
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gnuarm.deletethisbit@gmail.com
Date: Wed, 9 Jan 2019 15:05:31 -0800 (PST)
Links: << >>  << T >>  << A >>
On Tuesday, January 8, 2019 at 4:47:13 PM UTC-5, Weng Tianxiang wrote:
> On Tuesday, January 8, 2019 at 12:26:39 PM UTC-8, gtwrek wrote:
> > In article <dd5eaff5-f99d-48f3-99bc-10dfda031747@googlegroups.com>,
> > Weng Tianxiang  <wtxwtx@gmail.com> wrote:
> > >If 2 state machines as you suggested may be active on the same clock, =
how do you handle it using your scheme?
> >=20
> > Weng - I find your obsession with "state machines" a bit puzzling.  I
> > seem to recall an poster a few years ago asking about the "largest"
> > state machine in current designs - was this you?  It seems likely, in
> > the event that you consider a CPU cache as a large number (~100,000)
> > of state machines running in parallel.
> >=20
> > I've not designed a CPU cache.  But I can pretty much guarantee that
> > whomever designed that CPU cache you're thinking about did NOT model=20
> > the design as such (a lot of state machines running in parallel).  To
> > be frank, I can see the entire design being done without implementing=
=20
> > a "state machine" at all.
> >=20
> > A state machine is simply a model to make it easier for humans to
> > understand and design a circuit.  It's not neccesary at all to apply
> > this model to any or all digital circuits. =20
> >=20
> > One of my co-workers (for whatever reason) abhors "State machine"=20
> > design, and won't use them - at all.  That's fine, he models things=20
> > differently.  And he's a very productive engineer - not hindered one bi=
t
> > by his lack of use of "state machines".=20
> >=20
> > Conversely, one can model an entire ASIC (or FPGA) design as simply
> > one large state machine.  Or many smaller state machines running in
> > parallel.  (Assume a single clock for this analogy). It's just that a=
=20
> > model to aid our (the designers) view of a design.=20
> >=20
> > Take a full schematic of any full ASIC.  Draw a random blob around ANY
> > set of 4-5 FFs.  Include some parts of the fanin and fanout logic
> > of those flip flops.  Bam - there's a state machine.  Repeat 20,000
> > times for all FF's in the design.  Is this useful - not really - but it
> > will meet any definition of "State Machine" that you can define.
> >=20
> > Regard,
> >=20
> > Mark
>=20
> Hi Mark,
>=20
> You really has good memory!!!=20
>=20
> I posted a post with title: "What is largest number of state machines in =
a chip" at this FPGA group several years ago.
>=20
> Here are tons of state machine patents about how to design a L2 cache. I =
list only the search word "L2 cache inassignee:intel" and you can find thro=
ugh Google there are 4,830 patents filed and issued by Intel, the search wo=
rd "L2 cache state machine inassignee:intel" and it leads to 4,360, each of=
 them is related to a type of state machines.=20
>=20
> I believe that anyone cannot be accounted as a professional digital circu=
it designer if he does not seriously consider or design a state machine. =
=20
>=20
> One of my hobbies is to look at patents filed by Intel, IBM, AMD, Xilinx =
and Altera. Reading Xilinx and Altera' patents gives me the knowledge on ho=
w they design their FPGA chips. Reading Intel, IBM and AMD' patents gives m=
e the knowledge on how they design something very complex and new technolog=
y trend. And through the reading I find many topics for me to further devel=
op.=20
>=20
> I disagree with your following opinion:
> "I've not designed a CPU cache.  But I can pretty much guarantee that=20
> whomever designed that CPU cache you're thinking about did NOT model=20
> the design as such (a lot of state machines running in parallel).  To=20
> be frank, I can see the entire design being done without implementing=20
> a "state machine" at all. "
>=20
> Here is an Intel patent: US8493397B1: "Circuit for placing a cache memory=
 into low power mode in response to special bus cycles executed on the bus"
>=20
> https://patents.google.com/patent/US8493397?oq=3DL2+cache+state+machine
>=20
> https://patents.google.com/patent/US20140156931?oq=3DL2+cache+state+machi=
ne
>=20
> I agree with your following opinion:
> "a lot of state machines running in parallel".
>=20
> After my invention all state machine design will be benefited to be in lo=
wer power status, no matter what type of state machines is, and the logic r=
esource usage is less than a conventional synthesizer would generate.=20
>=20
> Rick,
> I disagree with your opinion:
> "elsif WState /=3D WState_NS then=20
>=20
> This is not so trivial compared to the FSM itself, especially in an ASIC.=
  I would estimate it is approximately the same amount of logic in general.=
 "
>=20
> In my invention there is no one single logic gate generated for compariso=
n "WState /=3D WState_NS". Is it obvious to you?=20
>=20
> That is the best point of my invention.

If you can perform an equality comparison without using gates, that will be=
 of tremendous value in logic design.  Instead of using conventional gates =
all logic can be decomposed to an expression using equality comparisons (th=
e equivalent of the XOR applied to bits followed by an OR gate).  So if you=
 can perform the not equal comparison on a multi-bit word without gates, th=
en every digital logic design can be implemented with no logic gates at all=
! =20

By all means patent that and the world will beat a path to your door!!! =20

But obviously what you said is not true.  So I must be misunderstanding you=
. =20

Perhaps you can explain what you really mean.=20

  Rick C.

  -+ Get 6 months of free supercharging
  -+ Tesla referral code - https://ts.la/richard11209

Article: 161003
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Weng Tianxiang <wtxwtx@gmail.com>
Date: Wed, 9 Jan 2019 15:23:39 -0800 (PST)
Links: << >>  << T >>  << A >>
Hi Rick,

First of all, I have to appreciate your following guessing:
"If you can perform an equality comparison without using gates, that will b=
e of tremendous value in logic design.  Instead of using conventional gates=
 all logic can be decomposed to an expression using equality comparisons (t=
he equivalent of the XOR applied to bits followed by an OR gate).  So if yo=
u can perform the not equal comparison on a multi-bit word without gates, t=
hen every digital logic design can be implemented with no logic gates at al=
l!   "

But You are wrong in guessing my invention without any logic bases.

1. There is no comparison at all.

2. I use another trick to avoid any comparison for a state machine circuit =
and reach a conclusion that you need comparison to achieve.

3. The trick seems to be non-obvious to you now.=20

But don't worry, your conclusion is wrong too:=20
"obviously what you said is not true.  So I must be misunderstanding you."

Weng

Article: 161004
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gtwrek@sonic.net (gtwrek)
Date: Wed, 9 Jan 2019 23:28:19 -0000 (UTC)
Links: << >>  << T >>  << A >>
In article <767950fd-cde7-4840-97d1-72013316e77a@googlegroups.com>,
Weng Tianxiang  <wtxwtx@gmail.com> wrote:
>Hi Mark,
>
>"This definition matches all synchronous digital circuits." 
>
>Do you plan to retrieve the following claiming?
>
>"Weng - what you're completely missing what many have been telling you - 
>your definition of a "state machine" is so broad that it's essentially 
>meaningless."

Do you mean will I retract my statement?  No I won't because it's
consistent.  The definition you listed in the grandparent post of a "state
machine" has such a broad scope that EVERY synchronous digital circuit
in existance fits the definition.

You can prove me wrong by counter-example.  I assert that your
definition of "state machine" is so broad that any synchronous digital
circuit will match your definition.  If you can show/explain ANY
synchronous digital circuit that does NOT match your definition of a
"state machine" you'll have falsified my assertion.

I can come at it from the opposite end and suggest a few example of
synchronous digital circuits that one normally wouldn't think of as
"state machines" but fit your definition none-the-less.  

But I think the excercise (of trying to come up with a counter-example) 
would help you understand what we've been trying to communicate to you.

Regards,

Mark


Article: 161005
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: KJ <kkjennings@sbcglobal.net>
Date: Wed, 9 Jan 2019 18:17:34 -0800 (PST)
Links: << >>  << T >>  << A >>
On Wednesday, January 9, 2019 at 6:23:44 PM UTC-5, Weng Tianxiang wrote:
>=20
> But You are wrong in guessing my invention without any logic bases.
>=20
Perhaps Rick is wrong as you state (or maybe not), but I am not.  You have =
disclosed enough to discern what you think is the important idea to patent =
(although I don't pretend to know all that you may claim from that idea). S=
ince you cannot disclose until you hear about publication, I won't disclose=
 either.

> 1. There is no comparison at all.
>=20
> 2. I use another trick to avoid any comparison for a state machine circui=
t and reach a conclusion that you need comparison to achieve.
>=20
> 3. The trick seems to be non-obvious to you now.=20
>=20
But in fact the 'trick' as you call it is obvious and also, unfortunately f=
or you, the idea is in fact old prior art that you are simply not recognizi=
ng. But maybe the PTO won't pick up on it, or maybe you'll find someone to =
part with $$ for what you will be marketing as a 'new' idea or maybe, if th=
e patent is granted, you'll get challenged in court and lose. Time, as they=
 say, will tell.

Kevin Jennings

Article: 161006
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Weng Tianxiang <wtxwtx@gmail.com>
Date: Wed, 9 Jan 2019 19:26:34 -0800 (PST)
Links: << >>  << T >>  << A >>
Kevin, Can you give me a link to the prior art idea?

Article: 161007
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Thomas Stanka <usenet_nospam_valid@stanka-web.de>
Date: Thu, 10 Jan 2019 02:25:51 -0800 (PST)
Links: << >>  << T >>  << A >>
Am Mittwoch, 9. Januar 2019 23:07:47 UTC+1 schrieb gtwrek:
> Weng Tianxiang  <wtxwtx@gmail.com> wrote:
> >[0003]    Traditionally a deterministic finite state machine is mathemat=
ically defined as a set of 6-tuple M =3D (=CE=A3, =CE=94, Q, q0, =CE=B4, =
=CE=BB), where =CE=A3 is a finite
> >set of input symbols, =CE=94 /=3D 0 is a finite set of output symbols, Q=
 /=3D 0 is a finite set of states, q0 =D1=94 Q is the =E2=80=9Creset=E2=80=
=9D state, =CE=B4(q, a) : Q x =CE=A3 =E2=86=92 Q
> >is the transfer function, and =CE=BB(q, a) : Q x =CE=A3 =E2=86=92 =CE=94=
 is the output function.
> >[0004]    Conventional state machine theory has following State Machine =
Axiom:
> >[0005]    	State Machine Axiom		A state machine has one and only one sta=
te being active on any cycle after the state machine is properly initialize=
d.=20
>=20
> This definition matches all synchronous digital circuits.

Yes, that's true. A FSM could be a dedicated statemachine written in one HD=
L module, but each counter is a simple FSM and each complete logic design c=
an be seen as a statemachine.

Every part of a statemachine containing at least 2 states and 1 input and o=
utput is itself a statemachine and every combination of 2 statemachines is =
one statemachine. FSM is just a model to describe a digital circuit with at=
 least one sequential element.

best regards Thomas

Article: 161008
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Richard Damon <Richard@Damon-Family.org>
Date: Thu, 10 Jan 2019 07:54:49 -0500
Links: << >>  << T >>  << A >>
On 1/10/19 5:25 AM, Thomas Stanka wrote:
> Am Mittwoch, 9. Januar 2019 23:07:47 UTC+1 schrieb gtwrek:
>> Weng Tianxiang  <wtxwtx@gmail.com> wrote:
>>> [0003]    Traditionally a deterministic finite state machine is mathematically defined as a set of 6-tuple M = (Σ, Δ, Q, q0, δ, λ), where Σ is a finite
>>> set of input symbols, Δ /= 0 is a finite set of output symbols, Q /= 0 is a finite set of states, q0 є Q is the “reset” state, δ(q, a) : Q x Σ → Q
>>> is the transfer function, and λ(q, a) : Q x Σ → Δ is the output function.
>>> [0004]    Conventional state machine theory has following State Machine Axiom:
>>> [0005]    	State Machine Axiom		A state machine has one and only one state being active on any cycle after the state machine is properly initialized. 
>>
>> This definition matches all synchronous digital circuits.
> 
> Yes, that's true. A FSM could be a dedicated statemachine written in one HDL module, but each counter is a simple FSM and each complete logic design can be seen as a statemachine.
> 
> Every part of a statemachine containing at least 2 states and 1 input and output is itself a statemachine and every combination of 2 statemachines is one statemachine. FSM is just a model to describe a digital circuit with at least one sequential element.
> 
> best regards Thomas
> 

Perhaps some would call ANY synchronous digital circuit a state-machine,
but the more classical definition would imply that it be a system with a
single clock domain as it is the transformation from one 'State' to
another 'State' on *The* clock edge, with the definition of the Next
State being a function of the Previous State and the Inputs. The concept
of previous and next imply a singular concept of time steps, thus a
single clock domain (though clock gating/enables of that domain would be
allowed).

A system using multiple, not tightly related clocks, would fail that
definition, and in the FSM view of the world would be multiple
intertwined State Machines. Most digital system can be viewed as a set
of coupled FSMs based on the number of clock domains in the system.
Poly-Phase systems and system using wave phasing (multiple clocks
between registers) stretch the concept of a State Machine a bit, but can
probably be reasonably described as such. Some systems with Asynchronous
bits can get harder to describe as a FSM.

Article: 161009
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gtwrek@sonic.net (gtwrek)
Date: Thu, 10 Jan 2019 15:37:38 -0000 (UTC)
Links: << >>  << T >>  << A >>
In article <ugHZD.8990$nO2.5464@fx08.iad>,
Richard Damon  <Richard@Damon-Family.org> wrote:
>On 1/10/19 5:25 AM, Thomas Stanka wrote:
>> Am Mittwoch, 9. Januar 2019 23:07:47 UTC+1 schrieb gtwrek:
>>> Weng Tianxiang  <wtxwtx@gmail.com> wrote:
>>>> [0003]    Traditionally a deterministic finite state machine is mathematically defined as a set of 6-tuple M = (Σ, Δ, Q, q0, δ, λ), where Σ is a finite
>>>> set of input symbols, Δ /= 0 is a finite set of output symbols, Q /= 0 is a finite set of states, q0 є Q is the “reset” state, δ(q, a) : Q x Σ → Q
>>>> is the transfer function, and λ(q, a) : Q x Σ → Δ is the output function.
>>>> [0004]    Conventional state machine theory has following State Machine Axiom:
>>>> [0005]    	State Machine Axiom		A state machine has one and only one state being active on any cycle after the state machine is properly initialized. 
>>>
>>> This definition matches all synchronous digital circuits.
>> 
>> Yes, that's true. A FSM could be a dedicated statemachine written in one HDL module, but each counter is a simple FSM and each complete logic design can
>be seen as a statemachine.
>> 
>> Every part of a statemachine containing at least 2 states and 1 input and output is itself a statemachine and every combination of 2 statemachines is one
>statemachine. FSM is just a model to describe a digital circuit with at least one sequential element.
>> 
>> best regards Thomas
>> 
>
>Perhaps some would call ANY synchronous digital circuit a state-machine,
>but the more classical definition would imply that it be a system with a
>single clock domain as it is the transformation from one 'State' to
>another 'State' on *The* clock edge, with the definition of the Next
>State being a function of the Previous State and the Inputs. The concept
>of previous and next imply a singular concept of time steps, thus a
>single clock domain (though clock gating/enables of that domain would be
>allowed).

Yes, exactly.  The qualification of a single clock - or as you note -
related clocks is what I was trying to cover with the term SYNCHNRONOUS
digitial circuits.   In one of my post up the thread I mentioned a
single clock - Kevin more correctly labeled the requirements as
SYNCHRONOUS which I think summarizes the requirements better so I took
that label.

I'll say again, any SYNCHRONOUS digital circuit meets Weng's definition
of a state machine.  

Regards,

Mark



Article: 161010
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: KJ <kkjennings@sbcglobal.net>
Date: Thu, 10 Jan 2019 09:36:55 -0800 (PST)
Links: << >>  << T >>  << A >>
On Wednesday, January 9, 2019 at 10:26:39 PM UTC-5, Weng Tianxiang wrote:
> Kevin, Can you give me a link to the prior art idea?
Sorry, I'm not going to prior art research for your patent application for you.

However, I will suggest that you tend to take a very narrow view of some topic, such as a state machine, and appear to ignore applicable work that is more general, of which your 'state machine' is simply a subset.

Kevin Jennings

Article: 161011
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: dlheliski@gmail.com
Date: Thu, 10 Jan 2019 14:02:17 -0800 (PST)
Links: << >>  << T >>  << A >>
So much wrong.

Any marginally competent cache designer understands that only one cache lin=
e is accessed at a time. So the cache is designed as a RAM with data, tags,=
 and state. Each cycle the data, tags and state are read, and a single stat=
e machine is used to generate the next state, which is written back into th=
e RAM.

There are plenty of papers on flip flop design that detects whether the new=
 data is different from the present state, and uses that to generate a cloc=
k pulse only if necessary.=20

On Tuesday, January 8, 2019 at 6:12:43 PM UTC-5, Weng Tianxiang wrote:
> Hi Mark,
>=20
> "I assert (without eny evidence whatsoever) that whomever designed that C=
PU=20
> cache memory at Intel did NOT model it (in his head or otherwise) as=20
> 100,000 or more state machines running in parallel.  That's just crazy. "
>=20
> Here are the facts, you are welcome and no matter whether you agree or no=
t:
> 1. 6M L2 cache, the largest L2 cache I can search for with a commercial C=
PU;=20
>=20
> 2. Every 64 bytes in L2 cache constitute a cache line;
>=20
> 3. Each L2 cache line works independently;
>=20
> 4. Each L2 cache line has at least one state machine to control its data =
or instructions in coherence. I will not be surprised that each L2 cache li=
ne may have up to 8 state machines to control its working.=20
>=20
> 4. Each L2 cache line has at least one state machine to control its data =
or instructions in coherence. I will not be surprised that each L2 cache li=
ne may have up to 8 state machines to control its working.
>=20
> 4. Each L2 cache line has at least one state machine to control its data =
or instructions in coherence. I will not be surprised that each L2 cache li=
ne may have up to 8 state machines to control its working.
>=20
> 4. Each L2 cache line has at least one state machine to control its data =
or instructions in coherence. I will not be surprised that each L2 cache li=
ne may have up to 8 state machines to control its working.
>=20
> 4. Each L2 cache line has at least one state machine to control its data =
or instructions in coherence. I will not be surprised that each L2 cache li=
ne may have up to 8 state machines to control its working.
>=20
>=20
> 1. IBM: Cache-coherency protocol with upstream undefined state
> https://patents.google.com/patent/US6374330
>=20
> 2. IBM: Cache-coherency protocol with recently read state for data and in=
structions
> https://patents.google.com/patent/US5996049
>=20
> 3. NVidia: State machine control for a pipelined L2 cache to implement me=
mory transfers for a video processor. https://patents.google.com/patent/US8=
493397
>=20
> Thank you.
>=20
> Weng


Article: 161012
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gnuarm.deletethisbit@gmail.com
Date: Thu, 10 Jan 2019 18:01:50 -0800 (PST)
Links: << >>  << T >>  << A >>
On Wednesday, January 9, 2019 at 6:23:44 PM UTC-5, Weng Tianxiang wrote:
> Hi Rick,
>=20
> First of all, I have to appreciate your following guessing:
> "If you can perform an equality comparison without using gates, that will=
 be of tremendous value in logic design.  Instead of using conventional gat=
es all logic can be decomposed to an expression using equality comparisons =
(the equivalent of the XOR applied to bits followed by an OR gate).  So if =
you can perform the not equal comparison on a multi-bit word without gates,=
 then every digital logic design can be implemented with no logic gates at =
all!   "
>=20
> But You are wrong in guessing my invention without any logic bases.
>=20
> 1. There is no comparison at all.
>=20
> 2. I use another trick to avoid any comparison for a state machine circui=
t and reach a conclusion that you need comparison to achieve.
>=20
> 3. The trick seems to be non-obvious to you now.=20
>=20
> But don't worry, your conclusion is wrong too:=20
> "obviously what you said is not true.  So I must be misunderstanding you.=
"

Ok, I am reading your code.  So you are saying your code is not what you me=
an.  Got it.=20


  Rick C.

  ++ Get 6 months of free supercharging
  ++ Tesla referral code - https://ts.la/richard11209

Article: 161013
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Weng Tianxiang <wtxwtx@gmail.com>
Date: Thu, 10 Jan 2019 19:52:08 -0800 (PST)
Links: << >>  << T >>  << A >>
On Thursday, January 10, 2019 at 2:02:22 PM UTC-8, dlhe...@gmail.com wrote:
> So much wrong.
>=20
> Any marginally competent cache designer understands that only one cache l=
ine is accessed at a time. So the cache is designed as a RAM with data, tag=
s, and state. Each cycle the data, tags and state are read, and a single st=
ate machine is used to generate the next state, which is written back into =
the RAM.
>=20
> There are plenty of papers on flip flop design that detects whether the n=
ew data is different from the present state, and uses that to generate a cl=
ock pulse only if necessary.=20

Congratulation!

Your post is the best and most valuable post in this thread!

Invincible! Marvelous! Smartest!

Your post makes me shameful and speechless!

Hope you join my later post.

I will continue to pursue my next sets of inventions!

Thank you.

Weng

Article: 161014
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gnuarm.deletethisbit@gmail.com
Date: Thu, 10 Jan 2019 20:33:53 -0800 (PST)
Links: << >>  << T >>  << A >>
On Thursday, January 10, 2019 at 10:52:13 PM UTC-5, Weng Tianxiang wrote:
> On Thursday, January 10, 2019 at 2:02:22 PM UTC-8, dlhe...@gmail.com wrot=
e:
> > So much wrong.
> >=20
> > Any marginally competent cache designer understands that only one cache=
 line is accessed at a time. So the cache is designed as a RAM with data, t=
ags, and state. Each cycle the data, tags and state are read, and a single =
state machine is used to generate the next state, which is written back int=
o the RAM.
> >=20
> > There are plenty of papers on flip flop design that detects whether the=
 new data is different from the present state, and uses that to generate a =
clock pulse only if necessary.=20
>=20
> Congratulation!
>=20
> Your post is the best and most valuable post in this thread!
>=20
> Invincible! Marvelous! Smartest!
>=20
> Your post makes me shameful and speechless!
>=20
> Hope you join my later post.
>=20
> I will continue to pursue my next sets of inventions!
>=20
> Thank you.
>=20
> Weng

LOL!  So can you share your secret comparison using no gates?=20

  Rick C.

  --- Get 6 months of free supercharging
  --- Tesla referral code - https://ts.la/richard11209

Article: 161015
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Richard Damon <Richard@Damon-Family.org>
Date: Fri, 11 Jan 2019 10:12:40 -0500
Links: << >>  << T >>  << A >>
On 1/10/19 10:37 AM, gtwrek wrote:
> In article <ugHZD.8990$nO2.5464@fx08.iad>,
> Richard Damon  <Richard@Damon-Family.org> wrote:
>> On 1/10/19 5:25 AM, Thomas Stanka wrote:
>>> Am Mittwoch, 9. Januar 2019 23:07:47 UTC+1 schrieb gtwrek:
>>>> Weng Tianxiang  <wtxwtx@gmail.com> wrote:
>>>>> [0003]    Traditionally a deterministic finite state machine is mathematically defined as a set of 6-tuple M = (Σ, Δ, Q, q0, δ, λ), where Σ is a finite
>>>>> set of input symbols, Δ /= 0 is a finite set of output symbols, Q /= 0 is a finite set of states, q0 є Q is the “reset” state, δ(q, a) : Q x Σ → Q
>>>>> is the transfer function, and λ(q, a) : Q x Σ → Δ is the output function.
>>>>> [0004]    Conventional state machine theory has following State Machine Axiom:
>>>>> [0005]    	State Machine Axiom		A state machine has one and only one state being active on any cycle after the state machine is properly initialized. 
>>>>
>>>> This definition matches all synchronous digital circuits.
>>>
>>> Yes, that's true. A FSM could be a dedicated statemachine written in one HDL module, but each counter is a simple FSM and each complete logic design can
>> be seen as a statemachine.
>>>
>>> Every part of a statemachine containing at least 2 states and 1 input and output is itself a statemachine and every combination of 2 statemachines is one
>> statemachine. FSM is just a model to describe a digital circuit with at least one sequential element.
>>>
>>> best regards Thomas
>>>
>>
>> Perhaps some would call ANY synchronous digital circuit a state-machine,
>> but the more classical definition would imply that it be a system with a
>> single clock domain as it is the transformation from one 'State' to
>> another 'State' on *The* clock edge, with the definition of the Next
>> State being a function of the Previous State and the Inputs. The concept
>> of previous and next imply a singular concept of time steps, thus a
>> single clock domain (though clock gating/enables of that domain would be
>> allowed).
> 
> Yes, exactly.  The qualification of a single clock - or as you note -
> related clocks is what I was trying to cover with the term SYNCHNRONOUS
> digitial circuits.   In one of my post up the thread I mentioned a
> single clock - Kevin more correctly labeled the requirements as
> SYNCHRONOUS which I think summarizes the requirements better so I took
> that label.
> 
> I'll say again, any SYNCHRONOUS digital circuit meets Weng's definition
> of a state machine.  
> 
> Regards,
> 
> Mark
> 
> 
My terminology divided Synchronous (transitions happening on the edge of
some 'global' clock) vs Asynchronous, where some device changes its
state independant of the main clocks, perhaps with an asynchronous
set/clear or being clocks by some input signal that isn't considered a
system clock.

Synchronous system can be divided into single domain and multi-clock
domain systems, for which you seem to want to define 'Synchronous' as
what I would consider 'Single Clock-Domain Synchronous'. Multi-clock
domain synchronous system tend to not be define as *A* FSM, but can be
as a set of FSMs that interact.

Proper multi-clock domain systems need a bit of care at the domain
boarders to avoid meta-stability issues, but this isn't really that hard
to handle.

Article: 161016
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: HT-Lab <hans64@htminuslab.com>
Date: Fri, 11 Jan 2019 20:03:58 +0000
Links: << >>  << T >>  << A >>
On 11/01/2019 15:12, Richard Damon wrote:
> On 1/10/19 10:37 AM, gtwrek wrote:
.. snip
>> I'll say again, any SYNCHRONOUS digital circuit meets Weng's definition
>> of a state machine.
>>
>> Regards,
>>
>> Mark
>>
>>
> My terminology divided Synchronous (transitions happening on the edge of
> some 'global' clock) vs Asynchronous, where some device changes its
> state independant of the main clocks, perhaps with an asynchronous
> set/clear or being clocks by some input signal that isn't considered a
> system clock.
> 
> Synchronous system can be divided into single domain and multi-clock
> domain systems, for which you seem to want to define 'Synchronous' as
> what I would consider 'Single Clock-Domain Synchronous'. Multi-clock
> domain synchronous system tend to not be define as *A* FSM, but can be
> as a set of FSMs that interact.
> 
> Proper multi-clock domain systems need a bit of care at the domain
> boarders to avoid meta-stability issues, but this isn't really that hard
> to handle.
> 
what?

the opposite, it is really hard to handle unless you have a single 
signal moving from a slow to fast clock domain. Why do you think there 
are so many (quite expensive) CDC tools (Bluepearl, Spyglass, Questa 
CDC, Conformal, Meridian, ..)  Have a look at past ASIC user surveys 
(like Wilson research group) and you will find that CDC errors are the 
number 2(!) reason for a respin, I would say that qualifies as a hard to 
handle issue given the cost of a respin nowadays.

Trying to a find a deep convergence,  reset or a CDC glitch problem in a 
30 clock domain design (not that unique) is not for the faint-hearted 
and that is after identifying that it/they exists in the first place 
(simulation won't show you unless you use CDC-FF models from your CDC tool).

Time to power cycle my TV box again as it got stuck yet again....;-)

Hans
www.ht-lab.com




Article: 161017
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gtwrek@sonic.net (gtwrek)
Date: Fri, 11 Jan 2019 22:03:31 -0000 (UTC)
Links: << >>  << T >>  << A >>
In article <Jn2_D.15781$375.3997@fx40.iad>,
Richard Damon  <Richard@Damon-Family.org> wrote:
>My terminology divided Synchronous (transitions happening on the edge of
>some 'global' clock) vs Asynchronous, where some device changes its
>state independant of the main clocks, perhaps with an asynchronous
>set/clear or being clocks by some input signal that isn't considered a
>system clock.
>
>Synchronous system can be divided into single domain and multi-clock
>domain systems, for which you seem to want to define 'Synchronous' as
>what I would consider 'Single Clock-Domain Synchronous'. Multi-clock
>domain synchronous system tend to not be define as *A* FSM, but can be
>as a set of FSMs that interact.

To be clear here - my definition of a "state machine" matches what I'm
sure most of the other poster's here define it as.  A small (less than
5-6 bits) number of states, operating on a single clock domain.  Small
enough such that a Synthesis Tools can apply a model to, where as the
"state labels" can be disassociated from the actual bit encodings (and
number of bits).  Such a tool can then re-encode these bit encondings
(and number of bits) in order to optimize the circuit, balancing such
metrics as power, timing, area, soft-fault tolerance, and errant state
detection.  Such a re-encoding would preserve all state transitions, and
output products - but change the underlying bit-encodings.

Anything more than 5-6 bits (I don't think I've ever designed any with
more than 4) would call (in my opinion) for some re-partitioning and
redesign.  In fact, I'd wouldn't be surprised that even with todays
modern tools, a FSM optimizer would start choking when you reach 8-10
bits.

Now, again this is all just a MODEL that we can apply as people to 
a digital, synchronous, single-clock domain circuit.

Weng seems to be applying a looser definition of "state machine" that
he's applying to model a CPU Cache circuit (with a ginormous number of
states, or perhaps a ginoromous number of small, indepenent state
machines all interacting).  That's fine to model it as such, if there's
some sort of benefit to having this model.    (I think it's a silly
model to make, without any benefit, but *shrug*)

My only argument, which I still don't think he understands, is with his 
loose of a definition, one can apply his "state machine" model to
ANY digital single-clock domain synchronous circuit.  (I just wanted to
avoid that last mouthful and just say "synchronous".)

Weng further goes on and says, with this "state machine" model of a CPU
cache, he can now apply some secret algorithm to optimize something.
My (and other's) points here were that if his algorthim when applied
under his "state machine" model for a CPU cache, would also apply to ANY
other digital single-clock domain synchronous circuit.  

Many then would point out, that this would then all fit well within
established prior art.  Transformations of Clock Enable circuits to
Gated Clocks are well understood to both the tools and designers.
As per normal, the devil is all in the details of the cost/benefit
metrics of making such transformations.   

(And also pointing out, I'm completely unclear as to what Weng's super
snazzy algorithm is, under what conditions it could work, what it's cost
could be, etc.)  Some of his post seems to talk about low power and magic
clock gating, but none of it is very clear.)

Regards,

Mark


Article: 161018
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gnuarm.deletethisbit@gmail.com
Date: Fri, 11 Jan 2019 14:27:07 -0800 (PST)
Links: << >>  << T >>  << A >>
On Friday, January 11, 2019 at 3:04:01 PM UTC-5, HT-Lab wrote:
> On 11/01/2019 15:12, Richard Damon wrote:
> > On 1/10/19 10:37 AM, gtwrek wrote:
> .. snip
> >> I'll say again, any SYNCHRONOUS digital circuit meets Weng's definitio=
n
> >> of a state machine.
> >>
> >> Regards,
> >>
> >> Mark
> >>
> >>
> > My terminology divided Synchronous (transitions happening on the edge o=
f
> > some 'global' clock) vs Asynchronous, where some device changes its
> > state independant of the main clocks, perhaps with an asynchronous
> > set/clear or being clocks by some input signal that isn't considered a
> > system clock.
> >=20
> > Synchronous system can be divided into single domain and multi-clock
> > domain systems, for which you seem to want to define 'Synchronous' as
> > what I would consider 'Single Clock-Domain Synchronous'. Multi-clock
> > domain synchronous system tend to not be define as *A* FSM, but can be
> > as a set of FSMs that interact.
> >=20
> > Proper multi-clock domain systems need a bit of care at the domain
> > boarders to avoid meta-stability issues, but this isn't really that har=
d
> > to handle.
> >=20
> what?
>=20
> the opposite, it is really hard to handle unless you have a single=20
> signal moving from a slow to fast clock domain. Why do you think there=20
> are so many (quite expensive) CDC tools (Bluepearl, Spyglass, Questa=20
> CDC, Conformal, Meridian, ..)  Have a look at past ASIC user surveys=20
> (like Wilson research group) and you will find that CDC errors are the=20
> number 2(!) reason for a respin, I would say that qualifies as a hard to=
=20
> handle issue given the cost of a respin nowadays.
>=20
> Trying to a find a deep convergence,  reset or a CDC glitch problem in a=
=20
> 30 clock domain design (not that unique) is not for the faint-hearted=20
> and that is after identifying that it/they exists in the first place=20
> (simulation won't show you unless you use CDC-FF models from your CDC too=
l).
>=20
> Time to power cycle my TV box again as it got stuck yet again....;-)

A customer asked me how I handle multiple clock domains and I told him that=
 unless there was reason to perform significant processing in multiple cloc=
k domains I transition all I/Os to a single clock domain as quickly as poss=
ible so that all interaction between circuits are then in that one clock do=
main.  The resulting domain transitions are limited and well defined making=
 them easy to debug.=20

  Rick C.

  --+ Get 6 months of free supercharging
  --+ Tesla referral code - https://ts.la/richard11209

Article: 161019
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Richard Damon <Richard@Damon-Family.org>
Date: Fri, 11 Jan 2019 17:32:02 -0500
Links: << >>  << T >>  << A >>
On 1/11/19 3:03 PM, HT-Lab wrote:
> On 11/01/2019 15:12, Richard Damon wrote:
>> On 1/10/19 10:37 AM, gtwrek wrote:
> .. snip
>>> I'll say again, any SYNCHRONOUS digital circuit meets Weng's definition
>>> of a state machine.
>>>
>>> Regards,
>>>
>>> Mark
>>>
>>>
>> My terminology divided Synchronous (transitions happening on the edge of
>> some 'global' clock) vs Asynchronous, where some device changes its
>> state independant of the main clocks, perhaps with an asynchronous
>> set/clear or being clocks by some input signal that isn't considered a
>> system clock.
>>
>> Synchronous system can be divided into single domain and multi-clock
>> domain systems, for which you seem to want to define 'Synchronous' as
>> what I would consider 'Single Clock-Domain Synchronous'. Multi-clock
>> domain synchronous system tend to not be define as *A* FSM, but can be
>> as a set of FSMs that interact.
>>
>> Proper multi-clock domain systems need a bit of care at the domain
>> boarders to avoid meta-stability issues, but this isn't really that hard
>> to handle.
>>
> what?
> 
> the opposite, it is really hard to handle unless you have a single
> signal moving from a slow to fast clock domain. Why do you think there
> are so many (quite expensive) CDC tools (Bluepearl, Spyglass, Questa
> CDC, Conformal, Meridian, ..)  Have a look at past ASIC user surveys
> (like Wilson research group) and you will find that CDC errors are the
> number 2(!) reason for a respin, I would say that qualifies as a hard to
> handle issue given the cost of a respin nowadays.
> 
> Trying to a find a deep convergence,  reset or a CDC glitch problem in a
> 30 clock domain design (not that unique) is not for the faint-hearted
> and that is after identifying that it/they exists in the first place
> (simulation won't show you unless you use CDC-FF models from your CDC
> tool).
> 
> Time to power cycle my TV box again as it got stuck yet again....;-)
> 
> Hans
> www.ht-lab.com
> 
> 
> 
Solving clock domains issues is fairly straight forward when they are
identified at design time. You do need different strategies depending on
the basic case you are working in, is it a single signal, or is it a
bus, are we going fast to slow and need to make sure the signal gets
across, etc. What is hard is to verify that you have detected all the
cross domain transitions and performed the needed mitigations for it.
They can also get harder if you are trying to squeeze every last drop of
performance out of a cross domain connection.

I suppose some things get mentally hard to shake, like making the
assumption that your synchronous clear terminates simultaneously in all
domains (instead of the idea that simultaneity isn't really a concept in
a multi-clock domain system.)

The other issue is that when you start to move to higher level
abstractions the real RTL code, it becomes easier to miss the cross
clock domain transfers or to miss some of the interactions between
multiple instances of a given cross-domain transfer (Two signals that
are together in clock domain 1 will not necessarily be together in clock
domain 2 after transitioning, unless care is taken to keep them together).

Article: 161020
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: gnuarm.deletethisbit@gmail.com
Date: Fri, 11 Jan 2019 14:33:34 -0800 (PST)
Links: << >>  << T >>  << A >>
On Friday, January 11, 2019 at 5:03:35 PM UTC-5, gtwrek wrote:
>=20
> (And also pointing out, I'm completely unclear as to what Weng's super
> snazzy algorithm is, under what conditions it could work, what it's cost
> could be, etc.)  Some of his post seems to talk about low power and magic
> clock gating, but none of it is very clear.)

This seems to be par for the course with patent seeking.  The typical paten=
t seeker is not proficient or even familiar with a given area of expertise,=
 has ill-conceived ideas of what the tools can do or how the tools work and=
 proposes poor solutions to issues no one else sees as problems.=20

I would be interested in learning of such a patent seeker's background and =
what sorts of work they have done in the past.=20

  Rick C.

  -+- Get 6 months of free supercharging
  -+- Tesla referral code - https://ts.la/richard11209

Article: 161021
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Weng Tianxiang <wtxwtx@gmail.com>
Date: Fri, 11 Jan 2019 14:51:21 -0800 (PST)
Links: << >>  << T >>  << A >>
Hi Mark,

Is there anywhere I said that 
"Weng seems to be applying a looser definition of "state machine" that 
he's applying to model a CPU Cache circuit (with a ginormous number of 
states, or perhaps a ginoromous number of small, indepenent state 
machines all interacting)."

I only said that one L2 cache line has a state machine, and 6M L2 cache would need 100,000 state machines.

And dlhe...@gmail.com resolved my problem accurately and excellently. 

Invincible! Marvelous! Smartest! 

Thank you, dlhe...@gmail.com.

Weng


Article: 161022
Subject: Re: Can I use Verilog or SystemVerilog to write a state machine with
From: Richard Damon <Richard@Damon-Family.org>
Date: Fri, 11 Jan 2019 18:01:37 -0500
Links: << >>  << T >>  << A >>
On 1/11/19 5:03 PM, gtwrek wrote:
> In article <Jn2_D.15781$375.3997@fx40.iad>,
> Richard Damon  <Richard@Damon-Family.org> wrote:
>> My terminology divided Synchronous (transitions happening on the edge of
>> some 'global' clock) vs Asynchronous, where some device changes its
>> state independant of the main clocks, perhaps with an asynchronous
>> set/clear or being clocks by some input signal that isn't considered a
>> system clock.
>>
>> Synchronous system can be divided into single domain and multi-clock
>> domain systems, for which you seem to want to define 'Synchronous' as
>> what I would consider 'Single Clock-Domain Synchronous'. Multi-clock
>> domain synchronous system tend to not be define as *A* FSM, but can be
>> as a set of FSMs that interact.
> 
> To be clear here - my definition of a "state machine" matches what I'm
> sure most of the other poster's here define it as.  A small (less than
> 5-6 bits) number of states, operating on a single clock domain.  Small
> enough such that a Synthesis Tools can apply a model to, where as the
> "state labels" can be disassociated from the actual bit encodings (and
> number of bits).  Such a tool can then re-encode these bit encondings
> (and number of bits) in order to optimize the circuit, balancing such
> metrics as power, timing, area, soft-fault tolerance, and errant state
> detection.  Such a re-encoding would preserve all state transitions, and
> output products - but change the underlying bit-encodings.
> 
> Anything more than 5-6 bits (I don't think I've ever designed any with
> more than 4) would call (in my opinion) for some re-partitioning and
> redesign.  In fact, I'd wouldn't be surprised that even with todays
> modern tools, a FSM optimizer would start choking when you reach 8-10
> bits.
> 
> Now, again this is all just a MODEL that we can apply as people to 
> a digital, synchronous, single-clock domain circuit.
> 
> Weng seems to be applying a looser definition of "state machine" that
> he's applying to model a CPU Cache circuit (with a ginormous number of
> states, or perhaps a ginoromous number of small, indepenent state
> machines all interacting).  That's fine to model it as such, if there's
> some sort of benefit to having this model.    (I think it's a silly
> model to make, without any benefit, but *shrug*)
>

> 
> Regards,
> 
> Mark
> 

The basic concept of a state machine is that given a state variable S
(implemented with some number of bits and representing states like S0,
S1, S2, ... Sn), and a set of inputs I, then we can say that we have the
logic that at the clock signal

S <= F(S, I)

where F is a pure combinatorial function if its inputs.

Technically, most single clock domain sychronous systems qualify by this
definition, but I agree that 'arithmetic' and other data-path type
structures are really state machines.

I have designed state machines with perhaps as high as 100 state
(slightly above your limit), and machines of that size that I have done
tend to have a number of legs where once you get to state Sn, you
automatically progress to state Sn+1, Sn+2 ... Sm and you could perhaps
factor out a smaller state machine coupled to a counter.

Based on the papers Weng pointed to, he is dealing with this sort of
state machine, as they are presents as perhaps a dozen circles with
conditions and outputs on the arrows between them, and a very large
number of these in the system.

Article: 161023
Subject: initializing a small array in Verilog
From: David Bridgham <dab@froghouse.org>
Date: Sat, 12 Jan 2019 17:34:21 -0500
Links: << >>  << T >>  << A >>
In my Verilog code I have this line:

   reg [1:0] ip_list [0:3] = { 2'd2, 2'd1, 2'd0, 2'd1 };

Both Icarus and Vivado seem happy with it and it does what I expect.

However, I recently discovered Verilator and its lint capability so I've
been running it over all my code to see if there is anything I ought to
clean up.  Verilator does not like this code, it says the LHS only has 2
bits while the right is 8 bits, so I'm wondering if I should be writing
it differently.  Maybe I've only been lucky so far that it's worked at
all and I'd rather have my code correct than lucky.

Thanks for any help,
Dave

Article: 161024
Subject: Re: initializing a small array in Verilog
From: Kevin Neilson <kevin.neilson@xilinx.com>
Date: Sun, 13 Jan 2019 09:28:56 -0800 (PST)
Links: << >>  << T >>  << A >>
On Saturday, January 12, 2019 at 3:34:25 PM UTC-7, David Bridgham wrote:
> In my Verilog code I have this line:
> 
>    reg [1:0] ip_list [0:3] = { 2'd2, 2'd1, 2'd0, 2'd1 };
> 
> Both Icarus and Vivado seem happy with it and it does what I expect.
> 
> However, I recently discovered Verilator and its lint capability so I've
> been running it over all my code to see if there is anything I ought to
> clean up.  Verilator does not like this code, it says the LHS only has 2
> bits while the right is 8 bits, so I'm wondering if I should be writing
> it differently.  Maybe I've only been lucky so far that it's worked at
> all and I'd rather have my code correct than lucky.
> 
> Thanks for any help,
> Dave

That does not look like it should work.  If you set the tool to SystemVeriliog mode you should be able to initialize the reg like this:

   reg [1:0] ip_list [0:3] = '{ 2'd2, 2'd1, 2'd0, 2'd1 };  // note extra tick

In Verilog-2005 mode, I think you should only be able to set the unpacked elements individually or with $readmemh.



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