encoder in register works
This commit is contained in:
parent
cf66c0e665
commit
932e967f3d
@ -83,9 +83,9 @@ defproc register_rw (avMx1of2<1+log_nw+wl> in; d1of<wl> data[2<<log_nw]; power s
|
|||||||
(pin_idx:log_nw:
|
(pin_idx:log_nw:
|
||||||
_bitval = (_word_idx & ( 1 << pin_idx )) >> pin_idx; // Get binary digit of integer i, column j
|
_bitval = (_word_idx & ( 1 << pin_idx )) >> pin_idx; // Get binary digit of integer i, column j
|
||||||
[_bitval = 1 ->
|
[_bitval = 1 ->
|
||||||
atree[_word_idx].in[pin_idx] = in.d.d[pin_idx+1].t;
|
atree[_word_idx].in[pin_idx] = in.d.d[pin_idx+wl].t;
|
||||||
[] _bitval = 0 ->
|
[] _bitval = 0 ->
|
||||||
atree[_word_idx].in[pin_idx] = in.d.d[pin_idx+1].f;
|
atree[_word_idx].in[pin_idx] = in.d.d[pin_idx+wl].f;
|
||||||
[]_bitval >= 2 -> {false : "fuck"};
|
[]_bitval >= 2 -> {false : "fuck"};
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@ -98,15 +98,7 @@ defproc register_rw (avMx1of2<1+log_nw+wl> in; d1of<wl> data[2<<log_nw]; power s
|
|||||||
and_encoder[_word_idx].vss = supply.vss;
|
and_encoder[_word_idx].vss = supply.vss;
|
||||||
clock_buffer[_word_idx].in = _clock_word_temp[_word_idx];
|
clock_buffer[_word_idx].in = _clock_word_temp[_word_idx];
|
||||||
clock_buffer[_word_idx].supply = supply;
|
clock_buffer[_word_idx].supply = supply;
|
||||||
// Describing all the FF and their connection
|
|
||||||
(_bit_idx:wl:
|
|
||||||
ff[_bit_idx*(1+_word_idx)].clk = clock_buffer[_word_idx].out[_bit_idx];
|
|
||||||
ff[_bit_idx*(1+_word_idx)].d = in.d.d[_bit_idx+1+log_nw].t;
|
|
||||||
ff[_bit_idx*(1+_word_idx)].q = data[_word_idx].d[_bit_idx];
|
|
||||||
ff[_bit_idx*(1+_word_idx)].reset_B = _reset_mem_BXX[_bit_idx*(1+_word_idx)];
|
|
||||||
ff[_bit_idx*(1+_word_idx)].vdd = supply.vdd;
|
|
||||||
ff[_bit_idx*(1+_word_idx)].vss = supply.vss;
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
File diff suppressed because one or more lines are too long
@ -338,27 +338,27 @@
|
|||||||
= "t.registers.in.d.d[4].d[1]" "t.registers._in_temp.d[4].d[1]"
|
= "t.registers.in.d.d[4].d[1]" "t.registers._in_temp.d[4].d[1]"
|
||||||
= "t.registers.in.d.d[4].d[0]" "t.registers.in.d.d[4].f"
|
= "t.registers.in.d.d[4].d[0]" "t.registers.in.d.d[4].f"
|
||||||
= "t.registers.in.d.d[4].d[1]" "t.registers.in.d.d[4].t"
|
= "t.registers.in.d.d[4].d[1]" "t.registers.in.d.d[4].t"
|
||||||
|
= "t.registers.in.d.d[3].d[0]" "t.registers.atree[5].in[1]"
|
||||||
|
= "t.registers.in.d.d[3].d[0]" "t.registers.atree[4].in[1]"
|
||||||
|
= "t.registers.in.d.d[3].d[0]" "t.registers.atree[1].in[1]"
|
||||||
|
= "t.registers.in.d.d[3].d[0]" "t.registers.atree[0].in[1]"
|
||||||
= "t.registers.in.d.d[3].d[0]" "t.registers.in.d.d[3].f"
|
= "t.registers.in.d.d[3].d[0]" "t.registers.in.d.d[3].f"
|
||||||
|
= "t.registers.in.d.d[3].d[1]" "t.registers.atree[7].in[1]"
|
||||||
|
= "t.registers.in.d.d[3].d[1]" "t.registers.atree[6].in[1]"
|
||||||
|
= "t.registers.in.d.d[3].d[1]" "t.registers.atree[3].in[1]"
|
||||||
|
= "t.registers.in.d.d[3].d[1]" "t.registers.atree[2].in[1]"
|
||||||
= "t.registers.in.d.d[3].d[1]" "t.registers.in.d.d[3].t"
|
= "t.registers.in.d.d[3].d[1]" "t.registers.in.d.d[3].t"
|
||||||
= "t.registers.in.d.d[2].d[0]" "t.registers.atree[5].in[1]"
|
= "t.registers.in.d.d[2].d[0]" "t.registers.atree[6].in[0]"
|
||||||
= "t.registers.in.d.d[2].d[0]" "t.registers.atree[4].in[1]"
|
= "t.registers.in.d.d[2].d[0]" "t.registers.atree[4].in[0]"
|
||||||
= "t.registers.in.d.d[2].d[0]" "t.registers.atree[1].in[1]"
|
= "t.registers.in.d.d[2].d[0]" "t.registers.atree[2].in[0]"
|
||||||
= "t.registers.in.d.d[2].d[0]" "t.registers.atree[0].in[1]"
|
= "t.registers.in.d.d[2].d[0]" "t.registers.atree[0].in[0]"
|
||||||
= "t.registers.in.d.d[2].d[0]" "t.registers.in.d.d[2].f"
|
= "t.registers.in.d.d[2].d[0]" "t.registers.in.d.d[2].f"
|
||||||
= "t.registers.in.d.d[2].d[1]" "t.registers.atree[7].in[1]"
|
= "t.registers.in.d.d[2].d[1]" "t.registers.atree[7].in[0]"
|
||||||
= "t.registers.in.d.d[2].d[1]" "t.registers.atree[6].in[1]"
|
= "t.registers.in.d.d[2].d[1]" "t.registers.atree[5].in[0]"
|
||||||
= "t.registers.in.d.d[2].d[1]" "t.registers.atree[3].in[1]"
|
= "t.registers.in.d.d[2].d[1]" "t.registers.atree[3].in[0]"
|
||||||
= "t.registers.in.d.d[2].d[1]" "t.registers.atree[2].in[1]"
|
= "t.registers.in.d.d[2].d[1]" "t.registers.atree[1].in[0]"
|
||||||
= "t.registers.in.d.d[2].d[1]" "t.registers.in.d.d[2].t"
|
= "t.registers.in.d.d[2].d[1]" "t.registers.in.d.d[2].t"
|
||||||
= "t.registers.in.d.d[1].d[0]" "t.registers.atree[6].in[0]"
|
|
||||||
= "t.registers.in.d.d[1].d[0]" "t.registers.atree[4].in[0]"
|
|
||||||
= "t.registers.in.d.d[1].d[0]" "t.registers.atree[2].in[0]"
|
|
||||||
= "t.registers.in.d.d[1].d[0]" "t.registers.atree[0].in[0]"
|
|
||||||
= "t.registers.in.d.d[1].d[0]" "t.registers.in.d.d[1].f"
|
= "t.registers.in.d.d[1].d[0]" "t.registers.in.d.d[1].f"
|
||||||
= "t.registers.in.d.d[1].d[1]" "t.registers.atree[7].in[0]"
|
|
||||||
= "t.registers.in.d.d[1].d[1]" "t.registers.atree[5].in[0]"
|
|
||||||
= "t.registers.in.d.d[1].d[1]" "t.registers.atree[3].in[0]"
|
|
||||||
= "t.registers.in.d.d[1].d[1]" "t.registers.atree[1].in[0]"
|
|
||||||
= "t.registers.in.d.d[1].d[1]" "t.registers.in.d.d[1].t"
|
= "t.registers.in.d.d[1].d[1]" "t.registers.in.d.d[1].t"
|
||||||
= "t.registers.in.d.d[0].d[0]" "t.registers.in.d.d[0].f"
|
= "t.registers.in.d.d[0].d[0]" "t.registers.in.d.d[0].f"
|
||||||
= "t.registers.in.d.d[0].d[1]" "t.registers.in.d.d[0].t"
|
= "t.registers.in.d.d[0].d[1]" "t.registers.in.d.d[0].t"
|
||||||
|
@ -31,6 +31,8 @@ assert-qdi-channel-valid "t.in" 5 3
|
|||||||
assert t.registers._clock 1
|
assert t.registers._clock 1
|
||||||
assert t.registers._out_encoder[0] 1
|
assert t.registers._out_encoder[0] 1
|
||||||
assert t.registers._out_encoder[1] 0
|
assert t.registers._out_encoder[1] 0
|
||||||
|
assert t.registers._out_encoder[2] 0
|
||||||
|
assert t.registers._out_encoder[3] 0
|
||||||
set-qdi-channel-neutral "t.in" 5
|
set-qdi-channel-neutral "t.in" 5
|
||||||
cycle
|
cycle
|
||||||
assert t.registers._clock 0
|
assert t.registers._clock 0
|
||||||
|
Loading…
Reference in New Issue
Block a user