[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [oc] micro sequencer



A couple notes from Microsequencers I've known and debugged ;-)  

1) You don't HAVE to make the control store a completely horizontal machine. You can encode control signals that are orthogonal in their use into fewer bits to save space. 

2) Look into feeding all/the majority of status signals into a MUX that can be selected by the sequencer. The idea is to reduce the number of bits you look at for testing reasons. 

3) Build in the ability to load the top couple bits of the sequencer's control counter from the results of a status compare.  This can be used to build a "case" statement capability.

4) You might want to constuct your code to run through one level of indirection. Let's say you initially see the need for 5 command sequences - then in debug this becomes 7 commands.  If you use one level of indirection, it's merely a matter of adding a couple more jump instructions into a table!

5) Once you have a basic strategy and basic capabilities for the sequencer mapped out - write your microcode and look into seeing if you have enough bits!
Do this before you do the implementation!!!

Hope this gives you some ideas.

Steve Wilson
On Sun, 30 December 2001, Jamil Khatib wrote:

> 
> Hi all,
> I need a small micro sequencer for my bluetooth core.
> this sequencer should operate from a micro program stored in a ROM (or
> RAM) the status of all internal blocks and system registers in order to
> control the  internal blocks.
> I have about 17 main block each of them has about 7-10 control signals
> and 3-6 status signals and buses beside that I have about 30 registers
> with full of control bits.
> 
> This sequencer has to play the main bluetooth controller which I can not
> implement in fixed state machines.
> 
> Moreover it has not to consume lot of resources because the other blocks
> consumes a lot.
> 
> I am trying to implement it using a counter and a ROM but according to
> the above details the ROM has to be very large and very wide and filling
> its contents is very hard. Other CPUs consumes lot of resources.
> Do you have any suggestion how this can be done?
> 
> Thanks in advance
> --
>    Jamil Khatib
> OpenCores Organization
> http://www.opencores.org
> 
> 
> --
> To unsubscribe from cores mailing list please visit http://www.opencores.org/mailinglists.shtml


--
To unsubscribe from cores mailing list please visit http://www.opencores.org/mailinglists.shtml