Skip to content

Latest commit

 

History

History
254 lines (130 loc) · 5 KB

File metadata and controls

254 lines (130 loc) · 5 KB

SHARP DMG CPU Cells Library

dmg_cells

dmglib

The cells shown are only part of the SHARP cell library (name?), other cell types will probably be found in other chips of this era.

Symmetry group

  • In general, the dihedral group 4 (D4) is used for cells
  • By agreement among all researchers ident position of the cell (e) - when the ground is on the left
  • As part of modules, cells are usually simply reflected relative to the vertical axis e <-> b (for ClkGen and Ser modules, cells are additionally rotated “sideways”)
  • As part of macro cells (memory), cells can be arranged arbitrarily, as is more convenient

Dih4_cycle_graph

Dual-rail CLK

Sequential elements (latch, dff) are presented in two variants: with single-rail CLK and with dual-rail CLK (CLK + complement CLK). Where dual-rail CLK is used, the suffix comp is used in the cell name.

Cells list

The following are all cell types, in alphabetical order. The names of cells by @msinger (http://iceboy.a-singer.de/doc/dmg_cells.html) are shown in parentheses (where the correspondence is not obvious) The topology is not complete (m1 is missing in some places), but it is sufficient to understand the cell architecture for reimplementation.

and

and

and3

and3

and4

and4

aon (AO1)

2 AND to 2 OR Non-Inverting.

aon

aon22 (AO2)

2+2 AND to 3 OR Non-Inverting.

aon22

aon222 (AO3)

2+2+2 AND to 4 OR Non-Inverting.

aon222

aon2222 (AO4)

2+2+2+2 AND to 5 OR Non-Inverting.

aon2222

aon222222 (AO6)

2+2+2+2+2+2 AND to 7 OR Non-Inverting.

aon222222

bufif0 (TRI_BUF_IF0)

bufif0

cnt (TFFD)

cnt

cnt_tran

dmg_cnt

const

const

dffr - Posedge DFF With Single-rail CLK Synchronous Dual-rail Inverse Polarity Reset Q/NQ Output (DFFR_B2)

The #res input is fed separately to the Master and Slave MUX so that synchronous reset can be done. But usually #res1 and #res2 are connected externally, so the DFF becomes with asynchronous reset. The dual-rail ck/cck signals are obtained locally by demultiplexing the CLK input signal.

dffr

dffr_tran

dffr_comp (DFFR_A)

dffr_comp

dffrnq_comp (DFFR_B1)

dffrnq_comp

dffsr - Posedge DFF With Single-rail CLK Synchronous Dual-rail Inverse Polarity Set Asynchronous Inverse Polarity Reset Q/NQ Output (DFFSR)

dffsr

fa

fa

ha

ha

ha_tran

latch (D_LATCH_B)

latch

latch_comp (D_LATCH_A2)

latch_comp

latchnq_comp (D_LATCH_A)

latchnq_comp

latchr_comp (DR_LATCH)

latchr_comp

mux

mux

muxi

muxi

nand

nand

nand3

nand3

nand4

nand4

nand5

nand5

nand6

nand6

nand7

nand7

nand_latch

nand_latch

nor

nor

nor3

nor3

nor4

nor4

nor5

nor5

nor6

nor6

nor8

nor8

nor_latch

nor_latch

not

not

not2

not2

not3

not3

not4

not4

not6

not6

notif0 (TRI_INV_IF0)

notif0

notif1 (TRI_INV_IF1)

notif1

oai

2 OR to 2 AND Inverting.

oai

oan (OA)

2 OR to 2 AND Non-Inverting.

oan

or

or

or3

or3

or4

or4

xnor

xnor

xor

xor