Cheap digital logic?

D

Daniel Pitts

Guest
So, I have this algorithm. It's pretty simple. It works well on an MCU,
which is fine and all, but if I could make it cheaper by using ICs
instead, that'd be cool. This is mostly academic.

Basically, I need 64x12*2 bits of memory. That's 2 banks of 8x8x12 bits.
Each bank is one "buffer". While an external circuit is writing to one,
this circuit will be reading from the other.

So I'll need something that can select which bank the circuit is reading
from, as well as the external circuit is writing to.

I need a "clock" or "timer" that runs at about 60KHz

I need at least a 10bit counter.

The lower 3 bits of the counter control which "row" I have selected on a
1-of-8 demuxer.

The next 3 bits are control which column to read from in the buffer.
(buffer address basically the lower 6 bits).

For each of the three nibbles at that address, I compare that magnitude
to the high 4 bits of the counter. The result of that comparison is then
pushed into a shift register (one register per nibble).

Now, the full circuit needs the shift-registers and demuxer, regardless
of whether or not I use an MCU, so those shouldn't factor into the
price, unless there is a counter where the lower 3 bits are pre-decoded.

An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?

I haven't been able to find a way, but I'm not entirely sure what I'm
looking for.

Thanks,
Daniel.
 
On Tue, 12 Mar 2013 16:11:16 -0700, Daniel Pitts
<newsgroup.nospam@virtualinfinity.net> wrote:

So, I have this algorithm. It's pretty simple. It works well on an MCU,
which is fine and all, but if I could make it cheaper by using ICs
instead, that'd be cool. This is mostly academic.

Basically, I need 64x12*2 bits of memory. That's 2 banks of 8x8x12 bits.
Each bank is one "buffer". While an external circuit is writing to one,
this circuit will be reading from the other.

So I'll need something that can select which bank the circuit is reading
from, as well as the external circuit is writing to.

I need a "clock" or "timer" that runs at about 60KHz

I need at least a 10bit counter.

The lower 3 bits of the counter control which "row" I have selected on a
1-of-8 demuxer.

The next 3 bits are control which column to read from in the buffer.
(buffer address basically the lower 6 bits).

For each of the three nibbles at that address, I compare that magnitude
to the high 4 bits of the counter. The result of that comparison is then
pushed into a shift register (one register per nibble).

Now, the full circuit needs the shift-registers and demuxer, regardless
of whether or not I use an MCU, so those shouldn't factor into the
price, unless there is a counter where the lower 3 bits are pre-decoded.

An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?

I haven't been able to find a way, but I'm not entirely sure what I'm
looking for.
This sounds trivial in a CPLD or maybe a small FPGA (with the RAM
being the key). Probably about $10 in small quantities. Depending on
your skills, getting a package you're comfortable with is probably the
biggest issue in selecting a part.
 
On 3/12/13 4:46 PM, krw@attt.bizz wrote:
On Tue, 12 Mar 2013 16:11:16 -0700, Daniel Pitts
newsgroup.nospam@virtualinfinity.net> wrote:

So, I have this algorithm. It's pretty simple. It works well on an MCU,
which is fine and all, but if I could make it cheaper by using ICs
instead, that'd be cool. This is mostly academic.

Basically, I need 64x12*2 bits of memory. That's 2 banks of 8x8x12 bits.
Each bank is one "buffer". While an external circuit is writing to one,
this circuit will be reading from the other.

So I'll need something that can select which bank the circuit is reading
from, as well as the external circuit is writing to.

I need a "clock" or "timer" that runs at about 60KHz

I need at least a 10bit counter.

The lower 3 bits of the counter control which "row" I have selected on a
1-of-8 demuxer.

The next 3 bits are control which column to read from in the buffer.
(buffer address basically the lower 6 bits).

For each of the three nibbles at that address, I compare that magnitude
to the high 4 bits of the counter. The result of that comparison is then
pushed into a shift register (one register per nibble).

Now, the full circuit needs the shift-registers and demuxer, regardless
of whether or not I use an MCU, so those shouldn't factor into the
price, unless there is a counter where the lower 3 bits are pre-decoded.

An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?

I haven't been able to find a way, but I'm not entirely sure what I'm
looking for.

This sounds trivial in a CPLD or maybe a small FPGA (with the RAM
being the key). Probably about $10 in small quantities. Depending on
your skills, getting a package you're comfortable with is probably the
biggest issue in selecting a part.


That doesn't sound cheaper than a $1 MCU ;-)
 
On Tue, 12 Mar 2013 17:00:18 -0700, Daniel Pitts
<newsgroup.nospam@virtualinfinity.net> wrote:

On 3/12/13 4:46 PM, krw@attt.bizz wrote:
On Tue, 12 Mar 2013 16:11:16 -0700, Daniel Pitts
newsgroup.nospam@virtualinfinity.net> wrote:

So, I have this algorithm. It's pretty simple. It works well on an MCU,
which is fine and all, but if I could make it cheaper by using ICs
instead, that'd be cool. This is mostly academic.

Basically, I need 64x12*2 bits of memory. That's 2 banks of 8x8x12 bits.
Each bank is one "buffer". While an external circuit is writing to one,
this circuit will be reading from the other.

So I'll need something that can select which bank the circuit is reading
from, as well as the external circuit is writing to.

I need a "clock" or "timer" that runs at about 60KHz

I need at least a 10bit counter.

The lower 3 bits of the counter control which "row" I have selected on a
1-of-8 demuxer.

The next 3 bits are control which column to read from in the buffer.
(buffer address basically the lower 6 bits).

For each of the three nibbles at that address, I compare that magnitude
to the high 4 bits of the counter. The result of that comparison is then
pushed into a shift register (one register per nibble).

Now, the full circuit needs the shift-registers and demuxer, regardless
of whether or not I use an MCU, so those shouldn't factor into the
price, unless there is a counter where the lower 3 bits are pre-decoded.

An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?

I haven't been able to find a way, but I'm not entirely sure what I'm
looking for.

This sounds trivial in a CPLD or maybe a small FPGA (with the RAM
being the key). Probably about $10 in small quantities. Depending on
your skills, getting a package you're comfortable with is probably the
biggest issue in selecting a part.


That doesn't sound cheaper than a $1 MCU ;-)
Neither does unit logic or the board space to put it on. ;-)
 
On Tue, 12 Mar 2013 16:11:16 -0700, Daniel Pitts
<newsgroup.nospam@virtualinfinity.net> wrote:

So, I have this algorithm. It's pretty simple. It works well on an MCU,
which is fine and all, but if I could make it cheaper by using ICs
instead, that'd be cool. This is mostly academic.

Basically, I need 64x12*2 bits of memory. That's 2 banks of 8x8x12 bits.
Each bank is one "buffer". While an external circuit is writing to one,
this circuit will be reading from the other.

So I'll need something that can select which bank the circuit is reading
from, as well as the external circuit is writing to.

I need a "clock" or "timer" that runs at about 60KHz

I need at least a 10bit counter.

The lower 3 bits of the counter control which "row" I have selected on a
1-of-8 demuxer.

The next 3 bits are control which column to read from in the buffer.
(buffer address basically the lower 6 bits).

For each of the three nibbles at that address, I compare that magnitude
to the high 4 bits of the counter. The result of that comparison is then
pushed into a shift register (one register per nibble).

Now, the full circuit needs the shift-registers and demuxer, regardless
of whether or not I use an MCU, so those shouldn't factor into the
price, unless there is a counter where the lower 3 bits are pre-decoded.

An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?
---
No.

--
JF
 
On 3/13/13 3:53 AM, John Fields wrote:
On Tue, 12 Mar 2013 16:11:16 -0700, Daniel Pitts
newsgroup.nospam@virtualinfinity.net> wrote:
An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?
No.
Good answer. It is what I had come up with on my own, but wanted to hear
from more experienced people first. Thanks.
 
On Tue, 12 Mar 2013 19:46:19 -0400, krw wrote:

On Tue, 12 Mar 2013 16:11:16 -0700, Daniel Pitts
newsgroup.nospam@virtualinfinity.net> wrote:

So, I have this algorithm. It's pretty simple. It works well on an MCU,
which is fine and all, but if I could make it cheaper by using ICs
instead, that'd be cool. This is mostly academic.

Basically, I need 64x12*2 bits of memory. That's 2 banks of 8x8x12 bits.
Each bank is one "buffer". While an external circuit is writing to one,
this circuit will be reading from the other.

So I'll need something that can select which bank the circuit is reading
from, as well as the external circuit is writing to.

I need a "clock" or "timer" that runs at about 60KHz

I need at least a 10bit counter.

The lower 3 bits of the counter control which "row" I have selected on a
1-of-8 demuxer.

The next 3 bits are control which column to read from in the buffer.
(buffer address basically the lower 6 bits).

For each of the three nibbles at that address, I compare that magnitude
to the high 4 bits of the counter. The result of that comparison is then
pushed into a shift register (one register per nibble).

Now, the full circuit needs the shift-registers and demuxer, regardless
of whether or not I use an MCU, so those shouldn't factor into the
price, unless there is a counter where the lower 3 bits are pre-decoded.

An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?

I haven't been able to find a way, but I'm not entirely sure what I'm
looking for.

This sounds trivial in a CPLD or maybe a small FPGA (with the RAM being
the key). Probably about $10 in small quantities. Depending on your
skills, getting a package you're comfortable with is probably the
biggest issue in selecting a part.
$0.90 from DigiKey in onsies: http://www.digikey.com/product-detail/
en/5M40ZE64C5N/544-2717-ND/2499440

I didn't check to see if it's big enough for what the OP wants, though.
I suspect that he could find something for under $2.00 in qty 1, but if
his application is slow enough it's still probably more sensible to go
with a micro.

It's not like there's jelly-bean 7400 series memory parts available any
more, and if there were you'd need a wad of parts around them to make it
all work -- this is why CPLDs were invented in the first place.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
Why am I not happy that they have found common ground?

Tim Wescott, Communications, Control, Circuits & Software
http://www.wescottdesign.com
 
On Wed, 13 Mar 2013 09:41:16 -0700, Daniel Pitts
<newsgroup.nospam@virtualinfinity.net> wrote:

On 3/13/13 3:53 AM, John Fields wrote:
On Tue, 12 Mar 2013 16:11:16 -0700, Daniel Pitts
newsgroup.nospam@virtualinfinity.net> wrote:
An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?
No.

Good answer. It is what I had come up with on my own, but wanted to hear
from more experienced people first. Thanks.
---
You're welcome. :)

--
JF
 
On Wed, 13 Mar 2013 12:44:05 -0500, Tim Wescott <tim@seemywebsite.com>
wrote:

On Tue, 12 Mar 2013 19:46:19 -0400, krw wrote:

On Tue, 12 Mar 2013 16:11:16 -0700, Daniel Pitts
newsgroup.nospam@virtualinfinity.net> wrote:

So, I have this algorithm. It's pretty simple. It works well on an MCU,
which is fine and all, but if I could make it cheaper by using ICs
instead, that'd be cool. This is mostly academic.

Basically, I need 64x12*2 bits of memory. That's 2 banks of 8x8x12 bits.
Each bank is one "buffer". While an external circuit is writing to one,
this circuit will be reading from the other.

So I'll need something that can select which bank the circuit is reading
from, as well as the external circuit is writing to.

I need a "clock" or "timer" that runs at about 60KHz

I need at least a 10bit counter.

The lower 3 bits of the counter control which "row" I have selected on a
1-of-8 demuxer.

The next 3 bits are control which column to read from in the buffer.
(buffer address basically the lower 6 bits).

For each of the three nibbles at that address, I compare that magnitude
to the high 4 bits of the counter. The result of that comparison is then
pushed into a shift register (one register per nibble).

Now, the full circuit needs the shift-registers and demuxer, regardless
of whether or not I use an MCU, so those shouldn't factor into the
price, unless there is a counter where the lower 3 bits are pre-decoded.

An MCU with enough processing power and memory costs < $1 (about $0.67
for the SOIC package). Can I do this cheaper with non-MCU parts?

I haven't been able to find a way, but I'm not entirely sure what I'm
looking for.

This sounds trivial in a CPLD or maybe a small FPGA (with the RAM being
the key). Probably about $10 in small quantities. Depending on your
skills, getting a package you're comfortable with is probably the
biggest issue in selecting a part.

$0.90 from DigiKey in onsies: http://www.digikey.com/product-detail/
en/5M40ZE64C5N/544-2717-ND/2499440

I didn't check to see if it's big enough for what the OP wants, though.
I suspect that he could find something for under $2.00 in qty 1, but if
his application is slow enough it's still probably more sensible to go
with a micro.
I didn't look at all, but he's going to need some RAM. Block RAM will
probably do it, but it's not going to be the smallest device.

It's not like there's jelly-bean 7400 series memory parts available any
more, and if there were you'd need a wad of parts around them to make it
all work -- this is why CPLDs were invented in the first place.
74HCxx is still available but he's not going to save any money. I
agree with the CPLD comment, though some CPLDs aren't going to have
memory devices. Using a LUT per bit is going to get expensive.
 

Welcome to EDABoard.com

Sponsor

Back
Top