Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - Re: Creating a pyramid of shift registers

 
Thread Tools Search this Thread
Old 01-18-2005, 03:05 PM   #1
Default Re: Creating a pyramid of shift registers


Moti wrote:
> Thanks Falk and Nicolas,
>
> the NxN array seems like a good idea - I was just looking for some

more
> elegant
> solution (like a special generate) for the code to be more readable..
> But it looks like I have no choise.


You always have a choice. For recursive hardware structures, choose
confluence:

- component pyramid +count +in -out is
- if width in == 0
- out = ''
- else
- out = {pyramid (count + 1) ('msbs' in) $} '++'
- {regs 1 count ('lsb' in) $}
- end
- end

http://www.confluent.org/

-Tom



tom
  Reply With Quote
Old 01-18-2005, 03:20 PM   #2
Moti
 
Posts: n/a
Default Re: Creating a pyramid of shift registers
> You always have a choice. For recursive hardware structures, choose
> confluence:
>
> - component pyramid +count +in -out is
> - if width in == 0
> - out = ''
> - else
> - out = {pyramid (count + 1) ('msbs' in) $} '++'
> - {regs 1 count ('lsb' in) $}
> - end
> - end
>
> http://www.confluent.org/
>
> -Tom


It's never too late to learn a new language
Thanks for the tip, but I think that VHDL will have to do (for now)..
Moti.



Moti
  Reply With Quote
Old 01-18-2005, 04:10 PM   #3
=?ISO-8859-1?Q?G=F6ran_Bilski?=
 
Posts: n/a
Default Re: Creating a pyramid of shift registers
Moti wrote:
>>You always have a choice. For recursive hardware structures, choose
>>confluence:
>>
>>- component pyramid +count +in -out is
>>- if width in == 0
>>- out = ''
>>- else
>>- out = {pyramid (count + 1) ('msbs' in) $} '++'
>>- {regs 1 count ('lsb' in) $}
>>- end
>>- end
>>
>>http://www.confluent.org/
>>
>>-Tom

>
>
> It's never too late to learn a new language
> Thanks for the tip, but I think that VHDL will have to do (for now)..
> Moti.
>


You can also do recursive hardware in VHDL.
Although it's not as small as confluence.


Göran


=?ISO-8859-1?Q?G=F6ran_Bilski?=
  Reply With Quote
Old 01-18-2005, 10:04 PM   #4
tom
 
Posts: n/a
Default Re: Creating a pyramid of shift registers
Why not use Confluence to generate your low level components, then
instantiate them into your higher-level designs?

(Note: Confluence 0.9.3 is the latest version with support for VHDL.
0.10.0 is Verilog-only at this point. VHDL will be back on-board with
0.10.1.)

-Tom



tom
  Reply With Quote
Old 01-18-2005, 10:21 PM   #5
tom
 
Posts: n/a
Default Re: Creating a pyramid of shift registers
Göran wrote:
>> It's never too late to learn a new language
>> Thanks for the tip, but I think that VHDL will have to do (for

now)..
>> Moti.

>
> You can also do recursive hardware in VHDL.
> Although it's not as small as confluence.
>
> Göran


Yes, but VHDL lacks higher-order datatypes. Try passing an
entity/architecture pair into an instance of another through a generic
port.

What is this good for? Imagine a generic binary tree component that
accepts a binary operation as an input. The same recursive component
can assemble a tree of XOR gates, tree of adders, or a tree of
multiplexors. In Confluence, you can pull this off:
{tree ('+') unify vector_list summation_result}


-Tom



tom
  Reply With Quote
Old 01-19-2005, 06:55 AM   #6
=?ISO-8859-1?Q?G=F6ran_Bilski?=
 
Posts: n/a
Default Re: Creating a pyramid of shift registers
tom wrote:
> Göran wrote:
>
>>>It's never too late to learn a new language
>>>Thanks for the tip, but I think that VHDL will have to do (for

>
> now)..
>
>>>Moti.

>>
>>You can also do recursive hardware in VHDL.
>>Although it's not as small as confluence.
>>
>>Göran

>
>
> Yes, but VHDL lacks higher-order datatypes. Try passing an
> entity/architecture pair into an instance of another through a generic
> port.
>
> What is this good for? Imagine a generic binary tree component that
> accepts a binary operation as an input. The same recursive component
> can assemble a tree of XOR gates, tree of adders, or a tree of
> multiplexors. In Confluence, you can pull this off:
> {tree ('+') unify vector_list summation_result}
>
>
> -Tom
>

Yes, That is something I miss from VHDL.
It would have been good if VHDL had taken more from ADA on the generic
functionality.

Göran


=?ISO-8859-1?Q?G=F6ran_Bilski?=
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46