1DPGEN_RF1(3) Alliance - genlib User's Manual DPGEN_RF1(3)
2
3
4
6 DPGEN_RF1, DPGEN_RF1R0 - Register File Macro-Generator
7
9 #include <genlib.h>
10
11 void GENLIB_MACRO (DPGEN_RF1, char *modelname, long flags, long N);
12
13 void GENLIB_MACRO (DPGEN_RF1R0, char *modelname, long flags, long N);
14
16 Generate a register file of regNumber words of N bits whitout decoder
17 named modelname. The DPGEN_RF1R0 variant differs from the DPGEN_RF1 in
18 that the register of address zero is stuck to zero. You can write into
19 it, it will not change the value. When read, it will always return
20 zero.
21
22 How it works :
23
24 · datain0 and datain1 : the two write busses. Only one is used to actu‐
25 ally write the register word, it is selected by the sel signal.
26
27 · sel : when set to '0' the datain0 is used to write the register word,
28 otherwise it will be datain1.
29
30 · selr, selw : this register file have no decoder, so selr have a bus
31 width equal to regNumber. One bit for each word.
32
33 TERMINAL NAMES
34 1. ckok : clock signal (input, 1 bit).
35
36 2. sel : select the write bus (input, 1 bit).
37
38 3. selr : the decoded read address (input, regNumber bits).
39
40 4. selw : the decoded write address (input, regNumber bits).
41
42 5. datain0 : first write bus (input, N bits).
43
44 6. datain1 : second write bus (input, N bits).
45
46 7. dataout : read bus (output, N bits).
47
48 8. vdd : power.
49
50 9. vss : ground.
51
53 GENLIB_MACRO(DPGEN_RF1, "model_rf1x8_32"
54 , F_BEHAV|F_PLACE
55 , 32 /* Words size. */
56 , 8 /* Number of words. */
57 );
58
59 GENLIB_LOINS( "model_rf1x8_32"
60 , "instance1_rf1_32"
61 , "ckok"
62 , "sel"
63 , "selr[7:0]"
64 , "selw[7:0]"
65 , "datain0[31:0]"
66 , "datain1[31:0]"
67 , "dataout[31:0]"
68 , "vdd", "vss", NULL
69 );
70
71
73 GENLIB_MACRO(3), genlib(1)
74
75
76
77ASIM/LIP6 30 July 2004 DPGEN_RF1(3)