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.
5c201c0027 | 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 | |
smt2 | 2 years ago | |
sweetpea | 2 years ago | |
trilib | 2 years ago | |
trilib_clk1x | 2 years ago | |
unisims | 2 years ago | |
unisims_synth | 2 years ago | |
work | 2 years ago | |
readme.md | 2 years ago |
readme.md
RTL
fpga/sim arrays
- created sim-only (not fpga?) clk1x versions in trilib_clk1x to eliminate any possible problems with iverilog and verilator dealing with multiple clocks
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
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
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(