You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74e18b6933 | 2 years ago | |
---|---|---|
.. | ||
a2node | 2 years ago | |
a2node_verilator | 2 years ago | |
a2node_wb | 2 years ago | |
a2o_litex | 2 years ago | |
clkgating | 2 years ago | |
smt | 2 years ago | |
sweetpea | 2 years ago | |
trilib | 2 years ago | |
unisims | 2 years ago | |
unisims_soc | 2 years ago | |
unisims_synth | 2 years ago | |
work | 2 years ago | |
notes.md | 2 years ago | |
readme.md | 2 years ago |
readme.md
RTL
fpga/sim arrays
- arrays that had 2x/4x clks
trilib/tri_144x78_2r4w.v
trilib/tri_64x72_1r1w.v
trilib/tri_cam_16x143_1r1w1c.v
trilib/tri_cam_32x143_1r1w1c.v
# these two should be checked with cycle counts, etc. vs originals - might not cause errors if wrong...
# at least one matches!
# BHT...test3: orig= [00014100] Passing IAR detected: 000007F0 new= [00014100] Passing IAR detected: 000007F0
# LRU won't be checked until doing TLB translates, and that logic will be rewritten for radix before that
trilib/tri_512x16_1r1w_1.v
trilib/tri_128x16_1r1w_1.v
- also got rid of reset_q usages (clk and reset in same nclk vector) i doubt reset is needed in any of the array components
trilib/tri_128x16_1r1w_1.v: reg reset_q;
trilib/tri_512x16_1r1w_1.v: reg reset_q;
trilib/tri_64x72_1r1w.v: reg reset_q;
trilib/tri_cam_16x143_1r1w1c.v: reg sreset_q;
trilib/tri_cam_32x143_1r1w1c.v: reg sreset_q;
trilib/tri_iuq_cpl_arr.v: reg reset_q;
arrays using clk4x
- 4W was done with clk4x
- should be built for fpga with 4 arrays and a 'valid' array pointing to last write per entry
grep "nclk\[3\]" trilib/*
trilib/tri_144x78_2r4w.v: .WCLK(nclk[3]), // Port A write clock input : clk4x
arrays using clk2x
grep "nclk\[2\]" trilib/*
trilib/tri_128x16_1r1w_1.v: assign clk2x = nclk[2];
trilib/tri_128x16_1r1w_1.v: always @(posedge nclk[2])
trilib/tri_144x78_2r4w.v: assign wr_mux_ctrl = {nclk[0], nclk[2]};
trilib/tri_512x16_1r1w_1.v: assign clk2x = nclk[2];
trilib/tri_64x72_1r1w.v: assign clk2x = nclk[2];
trilib/tri_cam_16x143_1r1w1c.v: assign clk2x = nclk[2];
trilib/tri_cam_16x143_1r1w1c.v: always @(posedge nclk[2])
trilib/tri_cam_32x143_1r1w1c.v: assign clk2x = nclk[2];
trilib/tri_cam_32x143_1r1w1c.v: always @(posedge nclk[2])
-
IERAT, DERAT (cams)
-
BTB, SPR (1R,1W,read-before-write??)
grep tri_64x72 work/* work/iuq_btb.v: tri_64x72_1r1w btb0( work/xu_spr.v: tri_64x72_1r1w xu_spr_aspr(
-
BHT (bitwrite)
grep tri_512x16_1r1w_1 trilib/* trilib/tri_512x16_1r1w_1.v:module tri_512x16_1r1w_1( trilib/tri_bht_1024x8_1r1w.v: tri_512x16_1r1w_1 bht0( trilib/tri_bht_512x4_1r1w.v: tri_512x16_1r1w_1 bht0(
-
MMU LRU (bitwrite)
grep tri_128x16_1r1w_1 work/* work/mmq.v: //tri.tri_128x16_1r1w_1 #(.`EXPAND_TYPE(`EXPAND_TYPE)) lru_array0( work/mmq.v: tri_128x16_1r1w_1 lru_array0(