Close

Notes on using a pipelined ALU for frequency division

A project log for Quick & Dirty Frequency Generator

Because I need it, I can and I'm cheap. So maybe I'll do.

yann-guidon-ygdesYann Guidon / YGDES 03/28/2016 at 08:080 Comments

Initially, I wanted to use a 74F381 (4-bits ALU) and a 74HC574. Then I tried to extend the 4-bits add function to 8 bits but cascading is hard because there is no carry output, but propagate and generate signals. The Generate signal could be used alone when the carry input is not used but apparently it needs an inverter. From there, it went downhill.

Then, looking at my notes at https://hackaday.io/project/8121-discrete-yasep/log/28438-what-chips-for-the-alu I saw that I had the ideal solution. From the datasheet :


The IDT7381 is a high-speed cascadable Arithmetic Logic Unit (ALU).

These three-bus devices have two input registers, an ultra-fast 16-bit ALU and 16-bit output register. With IDT’s high-performance CMOS technology, the IDT7381 can do arithmetic or logic operations in 25ns. The IDT7381 functionally replaces four 54/74S381 four-bit ALUs in a 68-pin package.

The two input operands, A and B, can be clocked or fed through for flexible pipelining. The F output can also be set into clocked or flow-through mode. An output enable is provided for three-state control of the output port on a bus.

The IDT7381 has three function pins to select 1 of 8 arithmetic or logic operations. The two R and S selection pins determine whether A, B, F or 0 are fed into the ALU. This ALU has carry-out, propagate and generate outputs for cascading using carry look-ahead.


The advantages are pretty significant :

The chip would be used this way :

The connexions are:

It's actually pretty simple : except I0 and I1 all fixed inputs are GND :-)

Discussions