Module hierarchy¶
What sits inside what, for every build top. Each top was elaborated with the file list, defines and include folders its own build uses, so ifdefs, generate blocks and parameters are already applied. Every module links to its page; the full list is in MODULES.md.
How to read the trees:
- Click a module with a triangle to fold its contents in or out. The top two levels start open.
nameafter a module is the instance name in its parent.- A module that one parent uses several times goes on one line:
x16and the instance names. What is inside it is drawn once, under that line. - A sub-tree is drawn in full the first time it appears on this page. Later copies that are exactly the same (same modules, same instance names, all the way down) say "same as above" and link to it, also across boards.
- "vendor" marks a part that is not ours and is not followed: FPGA primitives, PLLs, vendor IP, and the MiSTer and MEGA65 frameworks. For MiSTer and MEGA65 the tree starts at our top below the framework.
- ROM/RAM init files do not change which instances exist, so yosys was given empty stand-ins for them.
| Top | Module | Elaborated | Our modules | Instances | Depth |
|---|---|---|---|---|---|
| Simulation (Verilator) | ND120_TOP |
yes | 261 | 2906 | 13 |
| Tang Nano 20K | ND120_TANG20K_TOP |
yes | 262 | 2904 | 13 |
| Nexys 4 DDR | nd120_nexys4ddr_top |
yes | 287 | 2943 | 13 |
| MiSTer | emu |
yes | 277 | 2877 | 13 |
| MEGA65 R4 R5 R6 | nd120_mega65_machine |
yes | 277 | 2880 | 13 |
| MEGA65 R3 | nd120_mega65_machine |
yes | 277 | 2880 | 13 |
| QMTECH XC7A35T | nd120_qmtech_top |
yes | 263 | 2914 | 13 |
| Basys3 | ND120_TOP |
yes | 244 | 2844 | 13 |
| Cmod A7-35T | nd120_cmod_top |
yes | 245 | 2845 | 14 |
Simulation (Verilator)¶
Build: Verilog/runSim/Makefile, default settings (make compile: USE_LATCHES=0, VERILOG_TAPE=1, SD_STORAGE=1, CACHE=1).
Defines: VERILATOR_SIM, FPGA_FF_MODE, ND_SDRAM_PACK16, ND120_VERILOG_DEVICES, ND120_SD_STORAGE, ND120_SD_CARD_IMG="../SD-FAT/sim/nd_boot_card.img".
The simulation models in SD-FAT/sim/ are behavioural test models yosys cannot elaborate ($random, file I/O); they contain no module instances and were read as black boxes (their own port list, empty body).
261 of our modules, 2906 module instances, 13 levels deep. Vendor parts: none.
ND120_TOP
nd_storage_devices
TAPE_SDFAT_SOURCEnd_storage
u_nd_storagesd_file_reader
u_reader- sd_card_ctrl
u_ctrl
- sd_card_ctrl
- sd_writer
u_writer - nd_storage_mount
u_mount - nd_storage_cache
u_cache nd_storage_engine
u_engine- nds_sync_pulse x42:
u_sync_rhave,u_sync_want,g_fe[0].u_sync_open,g_fe[0].u_sync_req,g_fe[0].u_sync_ack,g_fe[0].u_sync_whave,g_fe[0].u_sync_done,g_fe[1].u_sync_open,g_fe[1].u_sync_req,g_fe[1].u_sync_ack,g_fe[1].u_sync_whave,g_fe[1].u_sync_doneand 30 more - nds_sync_level x6:
u_sync_grant,u_sync_err,u_sync_errcode,u_sync_ok,u_sync_oerr,u_sync_nocard
- nds_sync_pulse x42:
- nd_storage_tape_adapter
gen_tape.u_tape_adapter
- sd_card_model (simulation model in
SD-FAT/sim/, read as a black box)SD_CARD - nds_mem_model (simulation model in
SD-FAT/sim/, read as a black box)MEM_STOR ND120_CORE
CORE- BACKWIRING_PROM
BACKPLANE_INR_PROM ND3202D
CPU_BOARDCYC_36
CYC- CYC_TERM_D
U_TERM_D - CYC_CC_D
U_CC_D - PAL_44307C x2:
PAL_44307_UCYCLK_NEXT,PAL_44307_UCYCLK - PAL_44601B
PAL_44601_UCYCFSM - PAL_44403C_EN
PAL_44403_UCYIN0 - PAL_44404C_EN
PAL_44404_UCYIN1
- CYC_TERM_D
CPU_15
CPUCPU_PROC_32
PROC- AM29841
CHIP_25F CPU_PROC_CMDDEC_34
CMDDEC- PAL_44407A_EN
PAL_44407_UERFIX - PAL_44408B_EN
PAL_44408B_VEXFIX - PAL_44511A_EN
PAL_44511_ULEV0
- PAL_44407A_EN
- TTL_74245 x2:
CHIP_32F,CHIP_33F CPU_PROC_CGA_33
CGA- TTL_74374
CHIP_34G CGA
DELILAH- BusDriver16
BD_FIDBO CGA_ALU
ALU- D_FLIPFLOP_EN
MEMORY_1 CGA_CPU_ALU_RALU
ALU_RALU- NAND_GATE x4:
GATES_1,GATES_2,GATES_3,GATES_10 - NAND_GATE_3_INPUTS x3:
GATES_4,GATES_5,GATES_9 - NAND_GATE_4_INPUTS
GATES_6 - NAND_GATE_8_INPUTS
GATES_7 - AND_GATE
GATES_8 - NAND_GATE_6_INPUTS
GATES_11 - Adder
ARITH_12 CGA_ALU_RALU_MUX216L x3:
RN_R_MUX,SN_S_MUX,AF_LF_MUXMUX21LP x16:
MUXQ15,MUXQ14,MUXQ13,MUXQ12,MUXQ11,MUXQ10,MUXQ9,MUXQ8,MUXQ7,MUXQ6,MUXQ5,MUXQ4and 4 more- Multiplexer_2
PLEXERS_1
- Multiplexer_2
CGA_ALU_RALU_LOGOP
LOGOPMUX41P x16:
MUXLF15,MUXLF14,MUXLF13,MUXLF12,MUXLF11,MUXLF10,MUXLF9,MUXLF8,MUXLF7,MUXLF6,MUXLF5,MUXLF4and 4 more- Multiplexer_4
PLEXER
- Multiplexer_4
- NAND_GATE x4:
CGA_ALU_SHIFT
ALU_SHIFTMUX31LP x16:
RB0MUX,RB1MUX,RB2MUX,RB3MUX,RB4MUX,RB5MUX,RB6MUX,RB7MUX,RB8MUX,RB9MUX,RB10MUX,RB11MUXand 4 more- Multiplexer_4
PLEXERS_1
- Multiplexer_4
CGA_ALU_STS
ALU_STSCGA_ALU_GPR
ALU_GPR- D_FLIPFLOP_EN
MEMORY_1 - MUX41P x16:
GPR15M,GPR14M,GPR13M,GPR12M,GPR11M,GPR10M,GPR9M,GPR8M,GPR7M,GPR6M,GPR5M,GPR4Mand 4 more - same as above - MUX21LP
GPR0M21- same as above - SCAN_FF_EN x15:
GPR15FF,GPR14FF,GPR13FF,GPR12FF,GPR11FF,GPR10FF,GPR9FF,GPR8FF,GPR7FF,GPR6FF,GPR5FF,GPR4FFand 3 more
- D_FLIPFLOP_EN
CGA_ALU_DBR
ALU_DBR- SCAN_FF_EN x16:
DBRF15,DBRF14,DBRf13,DBRF12,DBRF11,DBRF10,DBRF9,DBRF8,DBRF7,DBRF6,DBRF5,DBRF4and 4 more
- SCAN_FF_EN x16:
- CGA_ALU_ARG
ALU_ARG CGA_ALU_SWAP
ALU_SWAP- R81_EN x2:
SWAP_LO_REG,SWAP_HI_REG
- R81_EN x2:
- MUX21LP
AARG0_MUX- same as above CGA_ALU_OUTMUX
ALU_OUTMUX- MUX31LP x16:
GMUX15,GMUX14,GMUX13,GMUX12,GMUX11,GMUX10,GMUX9,GMUX8,GMUX7,GMUX6,GMUX5,GMUX4and 4 more - same as above CGA_ALU_OUTMUX_SEL8 x15:
DMUX15,DMUX14,DMUX13,DMUX12,DMUX11,DMUX10,DMUX9,DMUX8,DMUX6,DMUX5,DMUX4,DMUX3and 3 more- NAND_GATE x8:
GATES_1,GATES_2,GATES_3,GATES_4,GATES_5,GATES_6,GATES_7,GATES_8 - NAND_GATE_8_INPUTS
GATES_9
- NAND_GATE x8:
CGA_CPU_ALU_OUTMUX_SEL7
DMUX7- NAND_GATE x7:
GATES_1,GATES_2,GATES_3,GATES_4,GATES_5,GATES_6,GATES_7 - OR_GATE_7_INPUTS
GATES_8
- NAND_GATE x7:
CGA_ALU_OUTMUX_IDBS
OUTMUX_IDBS- NAND_GATE x4:
GATES_1,GATES_2,GATES_4,GATES_5 - NAND_GATE_8_INPUTS
GATES_3 - AND_GATE x2:
GATES_6,GATES_8 - NAND_GATE_5_INPUTS
GATES_7 - R81_EN x2:
IDBS_R1,IDBS_R2
- NAND_GATE x4:
- MUX31LP x16:
CGA_ALU_QREG
ALU_QREGCGA_CPU_ALU_RMUX
ALU_RMUXRMUX_Gates x16:
RN15,RN14,RN13,RN12,RN11,RN10,RN9,RN8,RN7,RN6,RN5,RN4and 4 more
CGA_ALU_SMUX
ALU_SMUXCGA_CPU_ALU_CONTR
ALU_CONTR- AND_GATE x5:
GATES_1,GATES_50,GATES_52,GATES_53,GATES_56 - NOR_GATE x5:
GATES_2,GATES_21,GATES_22,GATES_24,GATES_54 - NAND_GATE x34:
GATES_3,GATES_4,GATES_5,GATES_6,GATES_7,GATES_8,GATES_9,GATES_13,GATES_14,GATES_15,GATES_16,GATES_17and 22 more - NAND_GATE_3_INPUTS x5:
GATES_10,GATES_11,GATES_19,GATES_25,GATES_38 - NOR_GATE_3_INPUTS x2:
GATES_12,GATES_20 - NAND_GATE_4_INPUTS
GATES_37 - D_FLIPFLOP_EN x2:
MEMORY_45,MEMORY_51 - L8
SSEL_LATCH - MUX21LP x6:
CSMIS1_MUX,CSMIS0_MUX,CSALUI7_MUX,CSALUI8_MUX,ALUI3_MUX,ALUI1N_MUX- same as above - R41P_EN x2:
REG_RFLA4,REG_BAAD - R81_EN
CONTR_REG - MUX41P
CI_SEL_MUX- same as above
- AND_GATE x5:
- D_FLIPFLOP_EN
CGA_TRAP
TRAPCGA_TRAP_TVGEN
TVGEN- OR_GATE_8_INPUTS
GATES_1 - OR_GATE_5_INPUTS x2:
GATES_2,GATES_9 - OR_GATE_3_INPUTS x2:
GATES_3,GATES_10 - NAND_GATE_4_INPUTS x4:
WIPN,PGFN,RV2N,RV3N - NAND_GATE
PGUN - NAND_GATE_5_INPUTS x4:
RD1N,WPVN,FPVN,RPVN - NAND_GATE_6_INPUTS x3:
RD2N,RD3N,IPVN - AND_GATE
GATES_11 - NAND_GATE_3_INPUTS
RV1N CGA_TRAP_TVGEN_P2
TRAP_TVGEN- AND_GATE x4:
GATES_1,GATES_5,GATES_9,GATES_10 - NAND_GATE_3_INPUTS x2:
GATES_2,GATES_8 - NAND_GATE x2:
GATES_3,GATES_11 - NOR_GATE x2:
GATES_4,GATES_7 - NAND_GATE_5_INPUTS
GATES_6 - Multiplexer_4 x3:
TVEC2_MUX,TVEC1_MUX,TVEC0_MUX - D_FLIPFLOP_EN x7:
L1V0_FF,L2V2_FF,L3V1_FF,L2V1_FF,L1V1_FF,L3V0_FF,L2V0_FF
- AND_GATE x4:
- OR_GATE_8_INPUTS
CGA_TRAP_BRKDET
BRKDET- NAND_GATE_3_INPUTS x5:
IPV,WIP,RD2,RV3,GATES_16 - AND_GATE x5:
GATES_2,GATES_7,AN2_1,GATES_18,GATES_23 - AND_GATE_3_INPUTS x3:
GATES_4,GATES_21,GATES_24 - OR_GATE_4_INPUTS x3:
GATES_5,GATES_10,GATES_20 - NAND_GATE_4_INPUTS
PGF - NAND_GATE x3:
INTR,GATES_14,GATES_15 - NOR_GATE_3_INPUTS
GATES_12 - NOR_GATE
GATES_13 - AND_GATE_4_INPUTS x2:
GATES_19,GATES_22 - A02 x4:
A02_1,A02_2,A02_3,A02_4
- NAND_GATE_3_INPUTS x5:
- CGA_TRAP_TBUF
TBUF
CGA_IDBCTL
IDBCTL- CGA_IDBCTL_SEL6 x16:
IDB15,IDB14,IDB13,IDB12,IDB11,IDB10,IDB9,IDB8,IDB7,IDB6,IDB5,IDB4and 4 more CGA_IDBCTL_PGSREG
PGSREG- SCAN_FF_EN x14:
PGS15,PGS14,PGS11,PGS10,PGS9,PGS8,PGS7,PGS3,PGS2,PGS1,PGS0,PGS6and 2 more
- SCAN_FF_EN x14:
- CGA_IDBCTL_SEL6 x16:
CGA_WRF
WRF- NAND_GATE x16:
GATES_1,GATES_2,GATES_3,GATES_4,GATES_5,GATES_6,GATES_7,GATES_8,GATES_9,GATES_10,GATES_11,GATES_12and 4 more CGA_WRF_RBLOCK
RBLOCK- CGA_WRF_RBLOCK_DR16 x13:
Z_REG_0,D_REG_1,L_REG_4,A_REG_5,T_REG_6,STS_REG_8,R1_REG_9,R2_REG_10,R3_REG_11,R4_REG_12,R5_REG_13,R6_REG_14and 1 more CGA_WRF_RBLOCK_PREG
P_REG_2CGA_WRF_RBLOCK_LR16 x2:
B_REG_3,X_REG_7MUX24P x4:
MUX_15_12,MUX_11_8,MUX_7_4,MUX_3_0- Multiplexer_2 x4:
PLEXER_1,PLEXER_2,PLEXER_3,PLEXER_4
- Multiplexer_2 x4:
- R81_EN x2:
R_15_8,R_7_0 - L8 x2:
L_15_8,L_7_0
CGA_WRF_RBLOCK_SEL16 x16:
SEL_0,SEL_1,SEL_2,SEL_3,SEL_4,SEL_5,SEL_6,SEL_7,SEL_8,SEL_9,SEL_10,SEL_11and 4 more- A02 x16:
A15_14,A13_12,A11_10,A9_8,A7_6,A5_4,A3_2,A1_0,B15_14,B13_12,B11_10,B9_8and 4 more - NAND_GATE_8_INPUTS x2:
GATES_1,GATES_2
- A02 x16:
- CGA_WRF_RBLOCK_DR16 x13:
- ND38GLP x4:
LAA_LO,LAA_HI,LBA_LO,LBA_HI- same as above
- NAND_GATE x16:
CGA_DCD
DCD- NAND_GATE x14:
GATES_60,GATES_40,GATES_41,GATES_42,GATES_43,GATES_48,GATES_49,GATES_50,GATES_52,GATES_25,GATES_28,GATES_31and 2 more - R81_EN
COMM_MIS_REG - NAND_GATE_3_INPUTS x2:
GATES_63,GATES_26 - NAND_GATE_8_INPUTS x8:
GATES_72,GATES_80,GATES_7,GATES_11,GATES_12,GATES_58,GATES_64,GATES_76 - OR_GATE_6_INPUTS x2:
GATES_4,GATES_70 - NAND_GATE_4_INPUTS x9:
GATES_16,GATES_39,GATES_9,GATES_29,GATES_32,GATES_38,GATES_71,GATES_73,GATES_74 - NOR_GATE x2:
GATES_20,GATES_10 - OR_GATE_4_INPUTS x4:
GATES_44,GATES_53,GATES_34,GATES_54 - AND_GATE
GATES_24 - NAND_GATE_6_INPUTS x19:
GATES_65,GATES_79,GATES_13,GATES_15,GATES_21,GATES_35,GATES_47,GATES_51,GATES_55,GATES_57,GATES_61,GATES_59and 7 more - NAND_GATE_5_INPUTS x8:
GATES_3,GATES_8,GATES_18,GATES_19,GATES_22,GATES_36,GATES_45,GATES_69 - NOR_GATE_4_INPUTS
GATES_6 - OR_GATE_7_INPUTS
GATES_23 - D_FLIPFLOP_EN x18:
MEMORY_88,MEMORY_90,MEMORY_91,MEMORY_92,MEMORY_93,MEMORY_94,MEMORY_95,MEMORY_96,MEMORY_98,MEMORY_97,MEMORY_85,MEMORY_86and 6 more - OR_GATE_3_INPUTS x2:
GATES_37,GATES_77 - SCAN_FF_EN
CFETCH_FF - OR_GATE x4:
GATES_46,GATES_62,GATES_30,GATES_1 - NAND_GATE_7_INPUTS x3:
GATES_67,GATES_68,GATES_78
- NAND_GATE x14:
CGA_INTR
INTR- OR_GATE
GATES_1 - D_FLIPFLOP_EN
MEMORY_2 CGA_INTR_CNTLR
CNTLR- Multiplexer_bus_2
PLEXERS_1 CGA_INTR_CNTLR_VECGEN
VECGENCGA_INTR_CNTLR_VECGEN_VHR
VHR- SCAN_FF_EN x6:
HX1,HX2,LX1,HX0,LX2,LX0
- SCAN_FF_EN x6:
CGA_INTR_CNTLR_VECGEN_CMP
CMPCGA_INTR_CNTLR_VECGEN_CMP_MAGCMP x2:
HICMP,LOCMP- NAND_GATE_4_INPUTS
GATES_1 - NAND_GATE_3_INPUTS
GATES_2 - NAND_GATE x3:
GATES_3,GATES_5,GATES_6 - NOR_GATE_3_INPUTS
GATES_4
- NAND_GATE_4_INPUTS
CGA_INTR_CNTLR_VECGEN_STAT
STAT- XNOR_GATE_ONEHOT x4:
GATES_1,GATES_2,GATES_5,GATES_6 - AND_GATE x2:
GATES_3,GATES_4 CGA_INTR_CNTLR_VECGEN_STAT_SBIT x6:
SBIT1_LO,SBIT2_HI,SBIT0_LO,SBIT1_HI,SBIT0_HI,SBIT2_LO- NAND_GATE_4_INPUTS
GATES_1 - NAND_GATE_3_INPUTS x2:
GATES_2,GATES_3 - OR_GATE_3_INPUTS
GATES_4 - D_FLIPFLOP_EN
MEMORY_5
- NAND_GATE_4_INPUTS
- XNOR_GATE_ONEHOT x4:
CGA_INTR_CNTLR_VECGEN_PTY
PTYCGA_INTR_CNTLR_VECGEN_PTY_PTYENC x2:
PTYENC_HI,PTYENC_LO- NOR_GATE x2:
NR2,O1 - NOR_GATE_4_INPUTS x2:
NRx,NR4 - NAND_GATE
ND2 - NAND_GATE_3_INPUTS
ND3 - NAND_GATE_4_INPUTS
ND4 - OR_GATE_8_INPUTS
ND8P - OR_GATE
OR2 - AND_GATE_3_INPUTS
NR3
- NOR_GATE x2:
CGA_INTR_CNTLR_CLR
CLR_CLEAR_CONTROLCGA_INTR_CNTLR_CLR_CLRBIT x16:
CLRB3,CLRB2,CLRB1,CLRB0,CLRB7,CLRB6,CLRB5,CLRB4,CLRB11,CLRB10,CLRB9,CLRB8and 4 more- NAND_GATE x2:
GATES_1,GATES_2 - NAND_GATE_4_INPUTS
GATES_3 - OR_GATE_3_INPUTS
GATES_4
- NAND_GATE x2:
CGA_INTR_CNTLR_IRGEL
IRGEL- NOR_GATE
GATES_1 CGA_INTR_CNTLR_IRGEL_HIGEL
HIGEL- NAND_GATE_3_INPUTS x4:
GATES_1,GATES_2,GATES_3,GATES_6 - NAND_GATE x2:
GATES_4,GATES_5 - OR_GATE_6_INPUTS
GATES_7 - D_FLIPFLOP_EN
MEMORY_8
- NAND_GATE_3_INPUTS x4:
CGA_INTR_CNTLR_IRGEL_LOGEL
LOGEL- NAND_GATE_3_INPUTS x2:
GATES_1,GATES_4 - NAND_GATE x2:
GATES_2,GATES_3 - OR_GATE_4_INPUTS
GATES_5 - D_FLIPFLOP_EN
MEMORY_6
- NAND_GATE_3_INPUTS x2:
CGA_INTR_CNTLR_IRGEL_HIRL
HIRL- NAND_GATE_4_INPUTS
GATES_1 - NAND_GATE
GATES_2 - NAND_GATE_3_INPUTS
GATES_3 - OR_GATE
GATES_4 - NOR_GATE_3_INPUTS
GATES_5 - AND_GATE
GATES_6 - AND_GATE_3_INPUTS
GATES_7 - SCAN_FF_EN x2:
STATUS_OVERFLOW_FF,INT_REQ_ENABLE_FF
- NAND_GATE_4_INPUTS
CGA_INTR_CNTLR_IRGEL_LORL
LORL- NAND_GATE_4_INPUTS
GATES_1 - NAND_GATE_3_INPUTS
GATES_2 - AND_GATE
GATES_3 - AND_GATE_3_INPUTS
GATES_4 - SCAN_FF_EN
INT_REQ_ENABLE_FF
- NAND_GATE_4_INPUTS
- NOR_GATE
CGA_INTR_CNTLR_MDCD
MDCD- OR_GATE_5_INPUTS
GATES_1 - OR_GATE_3_INPUTS x3:
GATES_2,GATES_35,GATES_39 - OR_GATE x7:
GATES_3,GATES_4,GATES_19,GATES_20,GATES_21,GATES_22,GATES_23 - AND_GATE x6:
GATES_5,GATES_11,GATES_24,GATES_30,GATES_31,GATES_40 - NAND_GATE x14:
GATES_6,GATES_7,GATES_8,GATES_9,GATES_13,GATES_14,GATES_17,GATES_18,GATES_25,GATES_26,GATES_28,GATES_36and 2 more - AND_GATE_3_INPUTS x4:
GATES_10,GATES_12,GATES_29,GATES_32 - NOR_GATE x2:
GATES_15,GATES_16 - OR_GATE_4_INPUTS x2:
GATES_27,GATES_38 - NOR_GATE_3_INPUTS x2:
GATES_33,GATES_34 - D_FLIPFLOP_EN x2:
MEMORY_42,MEMORY_43 - ND38GLP x2:
GLP_LO,GLP_HI- same as above
- OR_GATE_5_INPUTS
CGA_INTR_CNTLR_IRQ
IRQCGA_INTR_CNTLR_IRQ_REG
IRQ_REGCGA_INTR_CNTLR_IRQ_REG_RQBIT_V2 x16:
RQBIT_0,RQBIT_1,RQBIT_2,RQBIT_3,RQBIT_4,RQBIT_5,RQBIT_6,RQBIT_7,RQBIT_8,RQBIT_9,RQBIT_10,RQBIT_11and 4 more- D_FLIPFLOP_EN
MEMORY_1
- D_FLIPFLOP_EN
CGA_INTR_CNTLR_IRQ_MASK
IRQ_MASKCGA_INTR_CNTLR_IRQ_MASK_MASKBIT x16:
MASKBIT15,MASKBIT14,MASKBIT13,MASKBIT12,MASKBIT11,MASKBIT10,MASKBIT9,MASKBIT8,MASKBIT7,MASKBIT6,MASKBIT5,MASKBIT4and 4 more- NAND_GATE x2:
GATES_1,GATES_2 - NAND_GATE_3_INPUTS
GATES_3 - OR_GATE_3_INPUTS
GATES_4 - XNOR_GATE_ONEHOT
GATES_5 - D_FLIPFLOP_EN
MEMORY_6
- NAND_GATE x2:
CGA_INTR_CNTLR_IRQ_MREQ
IRQ_MREQ- NAND_GATE x16:
GATES_4,GATES_5,GATES_6,GATES_7,GATES_8,GATES_9,GATES_10,GATES_11,GATES_12,GATES_13,GATES_14,GATES_15and 4 more
- NAND_GATE x16:
- Multiplexer_bus_2
CGA_INTR_IRSRC
IRSRC
- OR_GATE
CGA_MAC
MACCGA_MAC_AP09
MAC_AP09- NAND_GATE x16:
GATES_5,GATES_6,GATES_1,GATES_2,GATES_3,GATES_4,GATES_7,GATES_8,GATES_9,GATES_10,GATES_11,GATES_12and 4 more - OR_GATE_3_INPUTS x16:
GATES_20,GATES_21,GATES_22,GATES_17,GATES_18,GATES_19,GATES_23,GATES_24,GATES_25,GATES_26,GATES_27,GATES_28and 4 more - A02 x32:
ICA0A,ICA0B,ICA1A,ICA1B,ICA2A,ICA2B,ICA3A,ICA3B,ICA4A,ICA4B,ICA5A,ICA5Band 20 more CGA_MAC_APOS_CALCA
CALCA- NAND_GATE_5_INPUTS x2:
GATES_1,GATES_2 - AND_GATE_3_INPUTS
GATES_3 - R81_EN x2:
R_LO,R_HI - L8 x2:
L_LO,L_HI
- NAND_GATE_5_INPUTS x2:
- CGA_MAC_APOS_INC
AINC
- NAND_GATE x16:
CGA_MAC_SEGPT
MAC_SEGPTCGA_MAC_SEGPT_SEG
SEG- NAND_GATE_8_INPUTS
GATES_1 - AND_GATE
GATES_2 - L8
SEG_L
- NAND_GATE_8_INPUTS
CGA_MAC_PTSEL
MAC_PTSEL- NOR_GATE
GATES_1 - OR_GATE
GATES_2 - OR_GATE_3_INPUTS
GATES_3 - NAND_GATE
GATES_4 - J_K_FLIPFLOP_EN
MEMORY_5
- NOR_GATE
CGA_MAC_LASEL
MAC_LASEL- AND_GATE x8:
GATES_1,GATES_2,GATES_5,GATES_6,GATES_7,GATES_8,GATES_11,GATES_18 - AND_GATE_4_INPUTS x3:
GATES_3,GATES_4,GATES_9 - AND_GATE_3_INPUTS
GATES_10 - NAND_GATE x4:
GATES_12,GATES_13,GATES_14,GATES_17 - NOR_GATE
GATES_15 - NAND_GATE_5_INPUTS x2:
GATES_16,GATES_22 - OR_GATE_3_INPUTS
GATES_19 - OR_GATE x2:
GATES_20,GATES_21 - NAND_GATE_3_INPUTS
GATES_23 - D_FLIPFLOP_EN
MEMORY_24
- AND_GATE x8:
CGA_MAC_LA1025
MAC_LA1025- NAND_GATE x12:
ILA23_NAND,ILA22_NAND,ILA21_NAND,ILA20_NAND,ILA17D,ILA16D,ILA15B,ILA14B,ILA13B,ILA12B,GATES_3,ILA10B - A02 x16:
ILA19A,ILA19B,ILA18A,ILA18B,ILA17A,ILA17B,ILA17C,ILA16A,ILA16B,ILA16C,ILA15A,ILA14Aand 4 more - OR_GATE x8:
ILA19_OR,ILA18_OR,ILA15_OR,ILA14_OR,ILA13_OR,ILA12_OR,ILA11_OR,ILA10_OR - OR_GATE_4_INPUTS x2:
ILA17_OR,GATES_21 - NAND_GATE_6_INPUTS
GATES_23 - R81_EN x2:
R_LA_H,R_LA_L
- NAND_GATE x12:
CGA_MAC_DECODE
MAC_DECODE- NAND_GATE_4_INPUTS x11:
GATES_1,GATES_2,GATES_7,GATES_13,GATES_16,GATES_24,GATES_26,GATES_28,GATES_29,GATES_32,GATES_42 - NAND_GATE x10:
GATES_3,GATES_9,GATES_20,GATES_22,GATES_37,GATES_44,GATES_45,GATES_46,GATES_49,GATES_50 - NAND_GATE_3_INPUTS x18:
GATES_4,GATES_5,GATES_6,GATES_18,GATES_19,GATES_30,GATES_31,GATES_34,GATES_38,GATES_39,GATES_40,GATES_47and 6 more - NAND_GATE_6_INPUTS x6:
GATES_8,GATES_10,GATES_21,GATES_33,GATES_36,GATES_43 - NAND_GATE_5_INPUTS x5:
GATES_11,GATES_12,GATES_15,GATES_17,GATES_23 - NOR_GATE_4_INPUTS x2:
GATES_14,GATES_25 - NAND_GATE_8_INPUTS x5:
GATES_27,GATES_54,GATES_55,GATES_58,GATES_60 - NOR_GATE x2:
GATES_35,GATES_41 - NAND_GATE_7_INPUTS
GATES_51 - R41P_EN
DECODE_R41
- NAND_GATE_4_INPUTS x11:
CGA_MAC_ADD
MAC_ADD- OR_GATE x16:
GATES_1,GATES_2,GATES_3,GATES_4,GATES_5,GATES_6,GATES_7,GATES_8,GATES_9,GATES_10,GATES_11,GATES_12and 4 more - NAND_GATE x17:
GATES_17,GATES_18,GATES_19,GATES_20,GATES_21,GATES_22,GATES_23,GATES_24,GATES_25,GATES_27,GATES_28,GATES_29and 5 more - A02 x32:
A02_31,A02_32,A02_29,A02_30,A02_27,A02_28,A02_25,A02_26,A02_23,A02_24,A02_21,A02_22and 20 more CGA_MAC_FASTADD
FASTADD- Adder x2:
ARITH_1,ARITH_2
- Adder x2:
- OR_GATE x16:
CGA_MIC
MIC- OR_GATE x2:
GATES_1,GATES_4 - NAND_GATE_3_INPUTS x4:
GATES_2,GATES_5,GATES_7,GATES_18 - NOR_GATE_3_INPUTS x2:
GATES_3,GATES_26 - AND_GATE_4_INPUTS
GATES_6 - NAND_GATE x5:
GATES_8,GATES_17,GATES_28,GATES_29,GATES_31 - AND_GATE x10:
GATES_9,GATES_10,GATES_11,GATES_12,GATES_13,GATES_14,GATES_15,GATES_16,GATES_25,GATES_30 - NOR_GATE x7:
GATES_19,GATES_20,GATES_21,GATES_22,GATES_23,GATES_24,GATES_27 - D_FLIPFLOP_EN x8:
MEMORY_33,MEMORY_34,MEMORY_35,MEMORY_36,MEMORY_37,MEMORY_38,MEMORY_39,MEMORY_32 CGA_MIC_INCOUNT
MIC_INCOUNT- XOR_GATE_ONEHOT
GATES_1 - NAND_GATE
GATES_2 - XNOR_GATE_ONEHOT
GATES_3 - Multiplexer_2 x2:
PLEXERS_4,PLEXERS_5 - D_FLIPFLOP_EN x2:
MEMORY_6,MEMORY_7
- XOR_GATE_ONEHOT
M169C_EN x2:
LC_HI,LC_LO- AND_GATE x17:
gen_enable.AND_QA_NL,gen_enable.AND_QB_NL,gen_enable.AND_QC_NL,gen_enable.AND_QD_NL,gen_enable.GATES_3,gen_enable.GATES_13,gen_enable.GATES_15,gen_enable.GATES_17,gen_enable.GATES_19,gen_enable.AND_QAN_UP,gen_enable.AND_QA_UPN,gen_enable.GATES_22and 5 more - AND_GATE_3_INPUTS x2:
gen_enable.GATES_5,gen_enable.GATES_35 - AND_GATE_4_INPUTS
gen_enable.GATES_7 - NOR_GATE x9:
gen_enable.GATES_8,gen_enable.GATES_9,gen_enable.GATES_10,gen_enable.GATES_11,gen_enable.GATES_28,gen_enable.GATES_29,gen_enable.GATES_30,gen_enable.GATES_31,gen_enable.GATES_34 - XOR_GATE_ONEHOT x4:
gen_enable.GATES_12,gen_enable.GATES_14,gen_enable.GATES_16,gen_enable.GATES_18 - AND_GATE_6_INPUTS x2:
gen_enable.GATES_32,gen_enable.GATES_33 - D_FLIPFLOP_EN x4:
gen_enable.MEMORY_36,gen_enable.MEMORY_37,gen_enable.MEMORY_38,gen_enable.MEMORY_39
- AND_GATE x17:
MUX21L x2:
M_RF1,M_RF0- Multiplexer_2
PLEXERS_1
- Multiplexer_2
MUX34P
ILC_MUX- Multiplexer_4 x4:
PLEXERS_1,PLEXERS_2,PLEXERS_3,PLEXERS_4
- Multiplexer_4 x4:
- L8
IRLATCH CGA_MIC_CONDREG
CONDREG- NAND_GATE x5:
GATES_1,GATES_4,GATES_5,GATES_7,GATES_8 - AND_GATE x2:
GATES_2,GATES_6 - XNOR_GATE_ONEHOT
GATES_3 - SCAN_FF_EN x12:
CSBIT11,CSBIT10,CSBIT9,CSBIT8,CSBIT7,CSBIT6,CSBIT5,CSBIT4,CSBIT3,CSBIT2,CSBIT1,CSBIT0
- NAND_GATE x5:
- MUX41P x8:
M_LAA_3,M_LAA_2,M_LAA_1,M_LAA_0,M_LBA_3,M_LBA_2,M_LBA_1,M_LBA_0- same as above - R41P_EN x2:
LAA_REG,LBA_REG CMP4
LC_CMP- Comparator
ARITH_1
- Comparator
- CGA_MIC_IINC
MIC_IINC CGA_MIC_STACK
MIC_STACK- NAND_GATE x2:
GATES_1,GATES_2 - NOR_GATE
GATES_3 CGA_MIC_STACK_BIT x12:
Bit11,Bit10,Bit9,Bit8,Bit7,Bit6,Bit5,Bit4,Bit3,Bit2,Bit1,Bit0- NAND_GATE x4:
GATES_1,GATES_2,GATES_9,GATES_10 - OR_GATE x5:
GATES_3,GATES_4,GATES_5,GATES_6,GATES_7 - NAND_GATE_3_INPUTS
GATES_8 - D_FLIPFLOP_EN
MEMORY_11 - SR44_EN
SR44_1
- NAND_GATE x4:
CGA_MIC_STACK_BIT12
Bit12- NAND_GATE x4:
GATES_1,GATES_2,GATES_9,GATES_10 - OR_GATE x5:
GATES_3,GATES_4,GATES_5,GATES_6,GATES_7 - NAND_GATE_3_INPUTS
GATES_8 - D_FLIPFLOP_EN
MEMORY_11 - SR44_EN
SR44_2
- NAND_GATE x4:
- NAND_GATE x2:
- CGA_MIC_MASEL
MIC_MASEL - SCAN_WITH_SET_N_EN x2:
OOD_FF,DZD_FF CGA_MIC_WCAREG
MIC_WCAREG- NOR_GATE
GATES_1 - SCAN_FF_EN x14:
WCAFF12,WCAFF11,WCAFF10,WCAFF9,WCAFF8,WCAFF7,WCAFF6,WCAFF5,WCAFF4,WCAFF3,WCAFF2,WCAFF1and 2 more
- NOR_GATE
CGA_MIC_IPOS
MIC_IPOS- NAND_GATE x2:
GATES_1,GATES_5 - AND_GATE x2:
GATES_2,GATES_3 - NAND_GATE_3_INPUTS
GATES_4 - Multiplexer_4 x13:
PLEXERS_17,PLEXERS_18,PLEXERS_6,PLEXERS_7,PLEXERS_8,PLEXERS_9,PLEXERS_10,PLEXERS_11,PLEXERS_12,PLEXERS_13,PLEXERS_14,PLEXERS_15and 1 more
- NAND_GATE x2:
CGA_MIC_CSEL
CSEL- Multiplexer_8 x2:
PLEXERS_1,PLEXERS_2 - Multiplexer_2
PLEXERS_3 - LATCH
CSEL_LATCH
- Multiplexer_8 x2:
- OR_GATE x2:
CGA_TESTMUX
TESTMUX- NAND_GATE
GATES_1 - AND_GATE x3:
GATES_2,GATES_3,GATES_4 MUX81 x5:
TM2,TM3,TM4,TM0,TM1- Multiplexer_8
PLEXERS_1
- Multiplexer_8
- NAND_GATE
- BusDriver16
- TTL_74374
- AM29841
CPU_CS_16
CS- CPU_CS_PROM_19
PROM CPU_CS_WCS_21_22
WCS- IDT6168A_20 x32:
CHIP_16C,CHIP_17C,CHIP_18C,CHIP_19C,CHIP_20C,CHIP_21C,CHIP_22C,CHIP_23C,CHIP_24C,CHIP_25C,CHIP_26C,CHIP_27Cand 20 more
- IDT6168A_20 x32:
- CPU_CS_TCV_20
TCV CPU_CS_CTL_18
CTL- TTL_74139
CHIP_30B - PAL_44305D
PAL_44305_UCSCTL
- TTL_74139
- CPU_CS_ACAL_17
ACAL
- CPU_CS_PROM_19
CPU_MMU_24
MMU- CPU_MMU_HIT_27
MMU_HIT - CPU_MMU_PPNX_28
PPNX - CPU_MMU_PTIDB_30
PTIDB - CPU_MMU_CSR_26
CSR CPU_MMU_CACHE_25
CACHE- TMM2018D_25 x4:
CHIP_23F,CHIP_24F,CHIP_16F,CHIP_20F - PAL_44402D_EN
PAL_44402_UBITS - Am9150
CHIP_21F
- TMM2018D_25 x4:
- PAL_44306A
PAL_44306_UNOCTL CPU_MMU_PT_29
PT- TMM2018D_25 x4:
CHIP_24G,CHIP_25G,CHIP_22G,CHIP_23G - IMS1403_25
CHIP_20G
- TMM2018D_25 x4:
- CPU_MMU_HIT_27
IO_37
IOIO_PANCAL_40
PANCALIO_UART_42
UART- AM29C821
CHIP_33G - SC2661_UART
CHIP_32H
- AM29C821
IO_DCD_38
DCDDECODE_DGA
DGA- F091
A090 - FIFO_8BIT
fifo_inst DECODE_DGA_POW
POW- J_K_FLIPFLOP x3:
A616,A618,A617 - F091
A613B - F595 x5:
A570,A571,A576,A574,A575 - F714 x3:
A627,A626,A624 F571
A620- Multiplexer_2_w_enable
PLEXERS_1
- Multiplexer_2_w_enable
- F103
A628
- J_K_FLIPFLOP x3:
DECODE_DGA_IDBS
IDBSF924_EN x4:
A282,A259,A248,A275- D_FLIPFLOP_EN x4:
gen_enable.MEMORY_1,gen_enable.MEMORY_2,gen_enable.MEMORY_3,gen_enable.MEMORY_4
- D_FLIPFLOP_EN x4:
- F091
A277
DECODE_DGA_COMM
COMM- NAND_GATE x13:
A206,A237,A238,A235,A245,A243,A209,A244,A167,A195,A171,A172and 1 more - NAND_GATE_8_INPUTS x12:
A212,A193,A211,A145,A216,A142,A143,A180,A186,A213,A215,A189 - NAND_GATE_4_INPUTS x4:
A156,A141,A218,A219 - NAND_GATE_6_INPUTS x10:
A149,A199,A191,A185,A183,A182,A184,A148,A144,A190 - NAND_GATE_5_INPUTS x11:
A150,A155,A152,A222,A147,A223,A198,A228,A229,A217,A153 - NAND_GATE_3_INPUTS x9:
A158,A200,A233,A162,A239,A166,A177,A220,A192 - AND_GATE_3_INPUTS
A242 - AND_GATE
A246 - NOR_GATE
A196 - D_FLIPFLOP_EN x7:
MEMORY_63,A226,A232,A227,MEMORY_68,A204,MEMORY_66 - F924_EN x6:
A181,A214,A140,A187,A160,A188- same as above - F091
A178 - F571 x4:
A221,A236,A208,A201- same as above - F595
A207
- NAND_GATE x13:
- F091
MEM_43
MEMMEM_ADEC_45
ADEC- PAL_44904B
PAL_44904_UMSIZE - PAL_44445B_D
PAL_UCADEC - PAL_44446B_D
PAL_UBADEC
- PAL_44904B
MEM_LBDIF_48
LBDIF- AM29C821 x2:
CHIP_13F,CHIP_14F - PAL_44310D
PAL_44310_ULBDIF
- AM29C821 x2:
MEM_DATA_46
DATA- NOR_GATE x2:
GATES_1,GATES_2 - PAL_45008B
PAL_45008_UDATA - AM29833A x2:
CHIP_1H,CHIP_2H
- NOR_GATE x2:
MEM_ERROR_47
ERROR- TTL_74374 x4:
CHIP_7C_PESL_HI,CHIP_3C_PESL_LO,CHIP_4C_PEAL_HI,CHIP_6D_PEAL_LO - PAL_45009B
PAL_45009_UERROR
- TTL_74374 x4:
MEM_RAMC_50
RAMC- PAL_44803A
PAL_44803_URAMA - PAL_44902A
PAL_44902_URAMC
- PAL_44803A
MEM_ADDR_44
ADDR- MEM_RAM_49_SIM
RAM
BIF_5
BIFBIF_DPATH_9
DPATH- BIF_DPATH_PPNLBD_14
PPNLBD BIF_DPATH_CDLBD_11
CDLBD- TTL_74646 x2:
CHIP_7B,CHIP_6B
- TTL_74646 x2:
BIF_DPATH_BDLBD_10
BDLBD- TTL_74648 x3:
CHIP_4A,CHIP_5A,CHIP_6A
- TTL_74648 x3:
BIF_DPATH_PESPEA_13
PESPEA- TTL_74534 x4:
CHIP_9A,CHIP_8A,CHIP_12A,CHIP_10A
- TTL_74534 x4:
BIF_DPATH_LDBCTL_12
LDBCTL- PAL_44303B
PAL_44303_ULBC2 - PAL_44302B
PAL_44302_ULBC1 - PAL_44304E
PAL_44304_ULBC3
- PAL_44303B
- BIF_DPATH_PPNLBD_14
BIF_BCTL_6
BCTL- NAND_GATE x2:
GATES_1,GATES_2 - PAL_44801A
PAL_44801_UBARB - PAL_44401B
PAL_44401_UBTIM - PAL_45001B
PAL_45001_UBPAR BIF_BCTL_BDRV_7
BDRVBIF_BCTL_SYNC_8
SYNC- AM29C821 x2:
CHIP_3D,CHIP_4D
- AM29C821 x2:
- NAND_GATE x2:
- ND_BUS_SLAVE
gen_bus_slave.BUS_SLAVE - ND_TAPE_400
gen_tape.TAPE_400 - ND_FLOPPY_DMA
gen_floppy.FLOPPY_1560 - ND_DMA_MASTER x3:
gen_floppy.FLOPPY_DMA_MASTER,gen_smd.SMD_DMA_MASTER,gen_dma_master.DMA_MASTER - ND_SMD
gen_smd.SMD_1540
- BACKWIRING_PROM
Tang Nano 20K¶
Build: Verilog/fpga/tang-nano-20k/Makefile (the OSS yosys flow, default VARIANT=slow, CACHE=0); its file list is nd120_tang20k.gprj, the same list the Gowin build reads.
262 of our modules, 2904 module instances, 13 levels deep. Vendor parts: rPLL.
ND120_TANG20K_TOP
Gowin_rPLL_ND120 (vendor IP)
pll- rPLL (vendor)
rpll_inst
- rPLL (vendor)
- uart_tx
u_dbg_tx nd_storage_devices
TAPE_SDFAT_SOURCE- nd_storage
u_nd_storage- same as above - nd_storage_tape_adapter
gen_tape.u_tape_adapter - nd_storage_floppy_adapter
gen_floppy.u_floppy_adapter - nd_storage_disc_adapter
gen_wd.u_wd_adapter
- nd_storage
ND120_CORE
CORE- BACKWIRING_PROM
BACKPLANE_INR_PROM ND3202D
CPU_BOARD- CYC_36
CYC- same as above CPU_15
CPU- CPU_PROC_32
PROC- same as above - CPU_CS_16
CS- same as above CPU_MMU_24
MMU- CPU_MMU_HIT_27
MMU_HIT - CPU_MMU_PPNX_28
PPNX - CPU_MMU_PTIDB_30
PTIDB - CPU_MMU_CSR_26
CSR - CPU_MMU_CACHE_25
CACHE - PAL_44306A
PAL_44306_UNOCTL - CPU_MMU_PT_29
PT- same as above
- CPU_MMU_HIT_27
- CPU_PROC_32
- IO_37
IO- same as above MEM_43
MEM- MEM_ADEC_45
ADEC- same as above - MEM_LBDIF_48
LBDIF- same as above - MEM_DATA_46
DATA- same as above - MEM_ERROR_47
ERROR- same as above - MEM_RAMC_50
RAMC- same as above - MEM_ADDR_44
ADDR- same as above MEM_RAM_49_SDRAM
RAM- sdram18
u_sdram
- sdram18
- MEM_ADEC_45
- BIF_5
BIF- same as above
- CYC_36
- ND_BUS_SLAVE
gen_bus_slave.BUS_SLAVE - ND_TAPE_400
gen_tape.TAPE_400 - ND_FLOPPY_DMA
gen_floppy.FLOPPY_1560 - ND_DMA_MASTER x3:
gen_floppy.FLOPPY_DMA_MASTER,gen_wd.WD_DMA_MASTER,gen_dma_master.DMA_MASTER - ND_WINCHESTER
gen_wd.WD_500
- BACKWIRING_PROM
Nexys 4 DDR¶
Build: Verilog/fpga/nexys4ddr/build.tcl, default arguments.
Defines: TARGET_NEXYS4DDR, FPGA_FF_MODE, MAIN_RAM_DDR2, ND120_N4DDR_MMCM_DIV=60.0, BOARD_CLK_FREQ=16666667, UART_BAUD_RATE=115200, SKIP_WCS_LOAD, ND120_PANEL_CLOCK, ND120_CONSOLE_VGA, ND120_CONSOLE_BAUD=115200, ND120_MIPS_TAP.
287 of our modules, 2943 module instances, 13 levels deep. Vendor parts: BUFG, BUFGMUX_CTRL, MMCME2_BASE, ddr.
nd120_nexys4ddr_top
- MMCME2_BASE (vendor) x2:
mmcm,mmcm_video - BUFG (vendor) x5:
bufg_fb,bufg_cpu,bufg_st,bufg_200,bufg_fb2 - BUFGMUX_CTRL (vendor)
bufg_pixmux - console_uart_rx
CONSOLE_RX term_console_feed
FEEDterm_banner
BANNER- term_banner_rom
ROM
- term_banner_rom
terminal_top
TERMINAL- cdc_byte
CDC - byte_fifo
FIFO - char_ram
CHARRAM - terminal_ctrl_tdv
CTRL text_screen
SCREEN- vga_timing
TIMING - font_rom
FONT
- vga_timing
- rate_meter x2:
g_panel.UTIL_METER,g_panel.HIT_METER term_panel
g_panel.PANEL- term_panel_rom
ROM - font_rom
PANELFONT
- term_panel_rom
- cdc_byte
ps2_keyboard_tdv
KEYBOARDps2_decoder_tdv
DECODER- ps2_ascii_table_tdv
TABLE
- ps2_ascii_table_tdv
- key_tdv2200
KEYEXP - console_uart_tx
CONSOLE_TX ND120_CORE
CORE- BACKWIRING_PROM
BACKPLANE_INR_PROM ND3202D
CPU_BOARD- CYC_36
CYC- same as above - CPU_15
CPU- same as above IO_37
IO- IO_REG_41
REG_MODULE- same as above IO_PANCAL_40
PANCAL- TTL_74374
CHIP_32B - TTL_74244
CHIP_33B - PANCAL_68705_CLOCK
CHIP_35C
- TTL_74374
- IO_UART_42
UART- same as above - IO_DCD_38
DCD- same as above
- IO_REG_41
MEM_43
MEM- MEM_ADEC_45
ADEC- same as above - MEM_LBDIF_48
LBDIF- same as above - MEM_DATA_46
DATA- same as above - MEM_ERROR_47
ERROR- same as above - MEM_RAMC_50
RAMC- same as above - MEM_ADDR_44
ADDR- same as above - MEM_RAM_49_DDR2
RAM
- MEM_ADEC_45
- BIF_5
BIF- same as above
- CYC_36
- ND_BUS_SLAVE
gen_bus_slave.BUS_SLAVE - ND_TAPE_400
gen_tape.TAPE_400 - ND_FLOPPY_DMA
gen_floppy.FLOPPY_1560 - ND_DMA_MASTER x3:
gen_floppy.FLOPPY_DMA_MASTER,gen_wd.WD_DMA_MASTER,gen_dma_master.DMA_MASTER - ND_WINCHESTER
gen_wd.WD_500
- BACKWIRING_PROM
- mips_counter
MIPS - nd_storage_devices
STORAGE- same as above - nd_ddr2_storage
u_region - nd_ddr2_arb
u_arb nd_ddr2_port
u_ddr2- ddr (vendor)
u_mig
- ddr (vendor)
- SevenSegDebug8
SEVEN_SEG
- MMCME2_BASE (vendor) x2:
MiSTer¶
Build: Verilog/fpga/mister/nd120.qsf (which sources files.qip). The Quartus top is the framework's sys_top; the tree starts at the core's emu below it.
Defines: FPGA_FF_MODE=1, BOARD_CLK_FREQ=20000000, UART_BAUD_RATE=115200, ND120_UART_DELAY_FRAMES=173, MAIN_RAM_SDRAM=1, ND_SDRAM_PACK16=1, ND_SDRAM_DQ16=1, ND_SDRAM_REFRESH_US=7, QUARTUS_RAM_INFER=1, ND120_PANEL_CLOCK=1, ND120_MIPS_TAP=1, ND120_NO_CACHE=1, SKIP_WCS_LOAD=1, QUARTUS_LATCH_RENAME=1.
build_id.v is written by the build just before synthesis; a stand-in with the same kind of content was used.
The SystemVerilog top was read by the yosys slang plugin (yosys' own reader cannot pass the unpacked arrays in it to hps_io). The modules it instantiates were given to slang as black boxes made from their own headers, then replaced by the real files, which yosys elaborated as for every other top. Framework and vendor parts stay black boxes.
Not followed (framework): 3 file(s).
277 of our modules, 2877 module instances, 13 levels deep. Vendor parts: altera_pll.
emu
- hps_io (vendor)
hps_io - pll (vendor)
pll pll_cpu
PLL_CPU- altera_pll (vendor)
altera_pll_i
- altera_pll (vendor)
- mips_counter
MIPS nd120_console_mister
CONSOLE- ps2_decoder_tdv
DECODER- same as above - key_tdv2200
KEYEXP term_console_feed
FEEDterm_banner
BANNER- term_banner_rom
ROM
- term_banner_rom
- terminal_top
TERMINAL- same as above
- ps2_decoder_tdv
- console_uart_rx
CONSOLE_UART_RX - console_uart_tx
CONSOLE_UART_TX nd_storage_mister_devices
STORAGE- nd_storage_floppy_adapter x2:
u_fd0,u_fd1 - nd_storage_disc_adapter x2:
u_wd0,u_wd1 - nd_storage_tape_adapter
u_tape - nd_storage_hps
u_hps
- nd_storage_floppy_adapter x2:
ND120_CORE
CORE- BACKWIRING_PROM
BACKPLANE_INR_PROM ND3202D
CPU_BOARD- CYC_36
CYC- same as above CPU_15
CPUCPU_PROC_32
PROC- AM29841
CHIP_25F - CPU_PROC_CMDDEC_34
CMDDEC- same as above - TTL_74245 x2:
CHIP_32F,CHIP_33F CPU_PROC_CGA_33
CGA- TTL_74374
CHIP_34G CGA
DELILAH- BusDriver16
BD_FIDBO - CGA_ALU
ALU- same as above - CGA_TRAP
TRAP- same as above - CGA_IDBCTL
IDBCTL- same as above - CGA_WRF
WRF- same as above - CGA_DCD
DCD- same as above - CGA_INTR
INTR- same as above - CGA_MAC
MAC- same as above CGA_MIC
MIC- OR_GATE x2:
GATES_1,GATES_4 - NAND_GATE_3_INPUTS x4:
GATES_2,GATES_5,GATES_7,GATES_18 - NOR_GATE_3_INPUTS x2:
GATES_3,GATES_26 - AND_GATE_4_INPUTS
GATES_6 - NAND_GATE x5:
GATES_8,GATES_17,GATES_28,GATES_29,GATES_31 - AND_GATE x10:
GATES_9,GATES_10,GATES_11,GATES_12,GATES_13,GATES_14,GATES_15,GATES_16,GATES_25,GATES_30 - NOR_GATE x7:
GATES_19,GATES_20,GATES_21,GATES_22,GATES_23,GATES_24,GATES_27 - D_FLIPFLOP_EN x8:
MEMORY_33,MEMORY_34,MEMORY_35,MEMORY_36,MEMORY_37,MEMORY_38,MEMORY_39,MEMORY_32 - CGA_MIC_INCOUNT
MIC_INCOUNT- same as above - M169C_EN x2:
LC_HI,LC_LO- same as above - MUX21L x2:
M_RF1,M_RF0- same as above - MUX34P
ILC_MUX- same as above - L8
IRLATCH - CGA_MIC_CONDREG
CONDREG- same as above - MUX41P x8:
M_LAA_3,M_LAA_2,M_LAA_1,M_LAA_0,M_LBA_3,M_LBA_2,M_LBA_1,M_LBA_0- same as above - R41P_EN x2:
LAA_REG,LBA_REG - CMP4
LC_CMP- same as above - CGA_MIC_IINC
MIC_IINC - CGA_MIC_STACK
MIC_STACK- same as above - CGA_MIC_MASEL
MIC_MASEL - SCAN_WITH_SET_N_EN x2:
OOD_FF,DZD_FF - CGA_MIC_WCAREG
MIC_WCAREG- same as above - CGA_MIC_IPOS
MIC_IPOS- same as above CGA_MIC_CSEL
CSEL- Multiplexer_8 x2:
PLEXERS_1,PLEXERS_2 - Multiplexer_2
PLEXERS_3 - ND120_LATCH
CSEL_LATCH
- Multiplexer_8 x2:
- OR_GATE x2:
- CGA_TESTMUX
TESTMUX- same as above
- BusDriver16
- TTL_74374
- AM29841
- CPU_CS_16
CS- same as above - CPU_MMU_24
MMU- same as above
- IO_37
IO- same as above - MEM_43
MEM- same as above - BIF_5
BIF- same as above
- CYC_36
- ND_BUS_SLAVE
gen_bus_slave.BUS_SLAVE - ND_TAPE_400
gen_tape.TAPE_400 - ND_FLOPPY_DMA
gen_floppy.FLOPPY_1560 - ND_DMA_MASTER x3:
gen_floppy.FLOPPY_DMA_MASTER,gen_wd.WD_DMA_MASTER,gen_dma_master.DMA_MASTER - ND_WINCHESTER
gen_wd.WD_500
- BACKWIRING_PROM
- hps_io (vendor)
MEGA65 R4 R5 R6¶
Build: Verilog/fpga/mega65/build.tcl board=r6. R4 and R5 build the same Verilog with the same defines (only the VHDL framework top differs). The Vivado top is the framework's mega65_r6; the tree starts at nd120_mega65_machine, which the VHDL CORE/vhdl/main.vhd instantiates as i_machine.
Defines: FPGA_FF_MODE, BOARD_CLK_FREQ=20000000, UART_BAUD_RATE=115200, SKIP_WCS_LOAD, ND120_MIPS_TAP, ND120_PANEL_CLOCK, MAIN_RAM_SDRAM, ND_SDRAM_PACK16, ND_SDRAM_DQ16, ND_SDRAM_REFRESH_US=7.
Not followed (framework): 7 file(s).
277 of our modules, 2880 module instances, 13 levels deep. Vendor parts: none.
nd120_mega65_machine
nd120_console_mega65
CONSOLE- m65_keys_to_ps2
KEYS - ps2_decoder_tdv
DECODER- same as above - key_tdv2200
KEYEXP - term_console_feed
FEED- same as above - terminal_top
TERMINAL- same as above
- m65_keys_to_ps2
- console_uart_rx
CONSOLE_UART_RX - console_uart_tx
CONSOLE_UART_TX - mips_counter
MIPS nd_storage_mega65_devices
STORAGE- nd_storage_floppy_adapter x2:
u_fd0,u_fd1 - nd_storage_disc_adapter x2:
u_wd0,u_wd1 - nd_storage_tape_adapter
u_tape - nd_storage_vdrives
u_vd
- nd_storage_floppy_adapter x2:
ND120_CORE
CORE- BACKWIRING_PROM
BACKPLANE_INR_PROM - ND_BUS_SLAVE
gen_bus_slave.BUS_SLAVE - ND_TAPE_400
gen_tape.TAPE_400 - ND_FLOPPY_DMA
gen_floppy.FLOPPY_1560 - ND_DMA_MASTER x3:
gen_floppy.FLOPPY_DMA_MASTER,gen_wd.WD_DMA_MASTER,gen_dma_master.DMA_MASTER - ND_WINCHESTER
gen_wd.WD_500
- BACKWIRING_PROM
MEGA65 R3¶
Build: Verilog/fpga/mega65/build.tcl board=r3 (HyperRAM instead of SDRAM). The tree starts at nd120_mega65_machine, below the VHDL framework.
Defines: FPGA_FF_MODE, BOARD_CLK_FREQ=13333333, UART_BAUD_RATE=115200, SKIP_WCS_LOAD, ND120_MIPS_TAP, ND120_PANEL_CLOCK, MAIN_RAM_DDR2.
Not followed (framework): 7 file(s).
277 of our modules, 2880 module instances, 13 levels deep. Vendor parts: none.
nd120_mega65_machine
- nd120_console_mega65
CONSOLE- same as above - console_uart_rx
CONSOLE_UART_RX - console_uart_tx
CONSOLE_UART_TX - mips_counter
MIPS - nd_storage_mega65_devices
STORAGE- same as above - nd_avalon_port
MEMPORT - ND120_CORE
CORE- same as above
- nd120_console_mega65
QMTECH XC7A35T¶
Build: Verilog/fpga/qmtech-a35t/build.tcl, default arguments.
Defines: FPGA_FF_MODE, MAIN_RAM_SDRAM, ND_SDRAM_PACK16, ND_SDRAM_DQ16, ND_SDRAM_REFRESH_US=7, ND_STORAGE_NO_CACHE, ND_STORAGE_DISCS_UNCACHED, SDFAT_NO_LFN, ND120_PANEL_CLOCK, BOARD_CLK_FREQ=20000000, UART_BAUD_RATE=115200, SKIP_WCS_LOAD.
263 of our modules, 2914 module instances, 13 levels deep. Vendor parts: BUFG, MMCME2_BASE.
nd120_qmtech_top
- MMCME2_BASE (vendor)
MMCM - BUFG (vendor) x5:
bufg_fb,bufg_cpu,bufg_2x,bufg_2xsd,bufg_stor nd_storage_devices
STORAGEnd_storage
u_nd_storage- sd_file_reader
u_reader- same as above - sd_writer
u_writer - nd_storage_mount
u_mount - nd_storage_engine
u_engine- same as above
- sd_file_reader
- nd_storage_tape_adapter
gen_tape.u_tape_adapter - nd_storage_floppy_adapter
gen_floppy.u_floppy_adapter - nd_storage_disc_adapter
gen_wd.u_wd_adapter
- nd_storage_bram
STORAGE_REGION - ND120_CORE
CORE- same as above
- MMCME2_BASE (vendor)
Basys3¶
Build: Verilog/fpga/basys3/vivado_build.tcl with full_synth. Its file list is nd120_basys3_sources.txt next to it (a non-project flow since 30-SEP-2026).
Defines: FPGA_FF_MODE, SKIP_WCS_LOAD, MAIN_RAM_BLOCKRAM, BOARD_CLK_FREQ=16666667, UART_BAUD_RATE=9600.
244 of our modules, 2844 module instances, 13 levels deep. Vendor parts: BUFG, MMCME2_BASE.
ND120_TOP
- MMCME2_BASE (vendor)
mmcm_cpu_clk - BUFG (vendor) x2:
bufg_fb,bufg_cpu - SevenSegDebug
SEVEN_SEG ND120_CORE
CORE- BACKWIRING_PROM
BACKPLANE_INR_PROM ND3202D
CPU_BOARD- CYC_36
CYC- same as above - CPU_15
CPU- same as above - IO_37
IO- same as above MEM_43
MEM- MEM_ADEC_45
ADEC- same as above - MEM_LBDIF_48
LBDIF- same as above - MEM_DATA_46
DATA- same as above - MEM_ERROR_47
ERROR- same as above - MEM_RAMC_50
RAMC- same as above - MEM_ADDR_44
ADDR- same as above - MEM_RAM_49_BLOCKRAM
RAM
- MEM_ADEC_45
- BIF_5
BIF- same as above
- CYC_36
- BACKWIRING_PROM
- MMCME2_BASE (vendor)
Cmod A7-35T¶
Build: Verilog/fpga/cmod-a7-35t/build.tcl, default arguments.
Defines: TARGET_CMOD_A7, FPGA_FF_MODE, MAIN_RAM_BLOCKRAM, BOARD_CLK_FREQ=27000000, UART_BAUD_RATE=115200, SKIP_WCS_LOAD.
245 of our modules, 2845 module instances, 14 levels deep. Vendor parts: BUFG, MMCME2_BASE.