📄 or1200_top.v
字号:
.biu_cyc_i(icbiu_cyc_ic), .biu_stb_i(icbiu_stb_ic), .biu_we_i(icbiu_we_ic), .biu_sel_i(icbiu_sel_ic), .biu_cab_i(icbiu_cab_ic), .biu_dat_o(icbiu_dat_biu), .biu_ack_o(icbiu_ack_biu), .biu_err_o(icbiu_err_biu));//// Instantiation of Data WISHBONE BIU//or1200_wb_biu dwb_biu( // RISC clk, rst and clock control .clk(clk_i), .rst(rst_i), .clmode(clmode_i), // WISHBONE interface .wb_clk_i(dwb_clk_i), .wb_rst_i(dwb_rst_i), .wb_ack_i(dwb_ack_i), .wb_err_i(dwb_err_i), .wb_rty_i(dwb_rty_i), .wb_dat_i(dwb_dat_i), .wb_cyc_o(dwb_cyc_o), .wb_adr_o(dwb_adr_o), .wb_stb_o(dwb_stb_o), .wb_we_o(dwb_we_o), .wb_sel_o(dwb_sel_o), .wb_dat_o(dwb_dat_o),`ifdef OR1200_WB_CAB .wb_cab_o(dwb_cab_o),`endif`ifdef OR1200_WB_B3 .wb_cti_o(dwb_cti_o), .wb_bte_o(dwb_bte_o),`endif // Internal RISC bus .biu_dat_i(sbbiu_dat_sb), .biu_adr_i(sbbiu_adr_sb), .biu_cyc_i(sbbiu_cyc_sb), .biu_stb_i(sbbiu_stb_sb), .biu_we_i(sbbiu_we_sb), .biu_sel_i(sbbiu_sel_sb), .biu_cab_i(sbbiu_cab_sb), .biu_dat_o(sbbiu_dat_biu), .biu_ack_o(sbbiu_ack_biu), .biu_err_o(sbbiu_err_biu));//// Instantiation of IMMU//or1200_immu_top or1200_immu_top( // Rst and clk .clk(clk_i), .rst(rst_i),`ifdef OR1200_BIST // RAM BIST .scanb_rst(scanb_rst), .scanb_si(scanb_immu_si), .scanb_so(scanb_immu_so), .scanb_en(scanb_en), .scanb_clk(scanb_clk),`endif // CPU i/f .ic_en(ic_en), .immu_en(immu_en), .supv(supv), .icpu_adr_i(icpu_adr_cpu), .icpu_cycstb_i(icpu_cycstb_cpu), .icpu_adr_o(icpu_adr_immu), .icpu_tag_o(icpu_tag_immu), .icpu_rty_o(icpu_rty_immu), .icpu_err_o(icpu_err_immu), // SPR access .spr_cs(spr_cs[`OR1200_SPR_GROUP_IMMU]), .spr_write(spr_we), .spr_addr(spr_addr), .spr_dat_i(spr_dat_cpu), .spr_dat_o(spr_dat_immu), // IC i/f .icimmu_rty_i(icimmu_rty_ic), .icimmu_err_i(icimmu_err_ic), .icimmu_tag_i(icimmu_tag_ic), .icimmu_adr_o(icimmu_adr_immu), .icimmu_cycstb_o(icimmu_cycstb_immu), .icimmu_ci_o(icimmu_ci_immu));//// Instantiation of Instruction Cache//or1200_ic_top or1200_ic_top( .clk(clk_i), .rst(rst_i),`ifdef OR1200_BIST // RAM BIST .scanb_rst(scanb_rst), .scanb_si(scanb_ic_si), .scanb_so(scanb_ic_so), .scanb_en(scanb_en), .scanb_clk(scanb_clk),`endif // IC and CPU/IMMU .ic_en(ic_en), .icimmu_adr_i(icimmu_adr_immu), .icimmu_cycstb_i(icimmu_cycstb_immu), .icimmu_ci_i(icimmu_ci_immu), .icpu_sel_i(icpu_sel_cpu), .icpu_tag_i(icpu_tag_cpu), .icpu_dat_o(icpu_dat_ic), .icpu_ack_o(icpu_ack_ic), .icimmu_rty_o(icimmu_rty_ic), .icimmu_err_o(icimmu_err_ic), .icimmu_tag_o(icimmu_tag_ic), // SPR access .spr_cs(spr_cs[`OR1200_SPR_GROUP_IC]), .spr_write(spr_we), .spr_dat_i(spr_dat_cpu), // IC and BIU .icbiu_dat_o(icbiu_dat_ic), .icbiu_adr_o(icbiu_adr_ic), .icbiu_cyc_o(icbiu_cyc_ic), .icbiu_stb_o(icbiu_stb_ic), .icbiu_we_o(icbiu_we_ic), .icbiu_sel_o(icbiu_sel_ic), .icbiu_cab_o(icbiu_cab_ic), .icbiu_dat_i(icbiu_dat_biu), .icbiu_ack_i(icbiu_ack_biu), .icbiu_err_i(icbiu_err_biu));//// Instantiation of Instruction Cache//or1200_cpu or1200_cpu( .clk(clk_i), .rst(rst_i), // Connection IC and IFETCHER inside CPU .ic_en(ic_en), .icpu_adr_o(icpu_adr_cpu), .icpu_cycstb_o(icpu_cycstb_cpu), .icpu_sel_o(icpu_sel_cpu), .icpu_tag_o(icpu_tag_cpu), .icpu_dat_i(icpu_dat_ic), .icpu_ack_i(icpu_ack_ic), .icpu_rty_i(icpu_rty_immu), .icpu_adr_i(icpu_adr_immu), .icpu_err_i(icpu_err_immu), .icpu_tag_i(icpu_tag_immu), // Connection CPU to external Debug port .ex_freeze(ex_freeze), .ex_insn(ex_insn), .branch_op(branch_op), .du_stall(du_stall), .du_addr(du_addr), .du_dat_du(du_dat_du), .du_read(du_read), .du_write(du_write), .du_dsr(du_dsr), .du_except(du_except), .du_dat_cpu(du_dat_cpu), .rf_dataw(rf_dataw), // Connection IMMU and CPU internally .immu_en(immu_en), // Connection DC and CPU .dc_en(dc_en), .dcpu_adr_o(dcpu_adr_cpu), .dcpu_cycstb_o(dcpu_cycstb_cpu), .dcpu_we_o(dcpu_we_cpu), .dcpu_sel_o(dcpu_sel_cpu), .dcpu_tag_o(dcpu_tag_cpu), .dcpu_dat_o(dcpu_dat_cpu), .dcpu_dat_i(dcpu_dat_dc), .dcpu_ack_i(dcpu_ack_dc), .dcpu_rty_i(dcpu_rty_dc), .dcpu_err_i(dcpu_err_dmmu), .dcpu_tag_i(dcpu_tag_dmmu), // Connection DMMU and CPU internally .dmmu_en(dmmu_en), // Connection PIC and CPU's EXCEPT .sig_int(sig_int), .sig_tick(sig_tick), // SPRs .supv(supv), .spr_addr(spr_addr), .spr_dat_cpu(spr_dat_cpu), .spr_dat_pic(spr_dat_pic), .spr_dat_tt(spr_dat_tt), .spr_dat_pm(spr_dat_pm), .spr_dat_dmmu(spr_dat_dmmu), .spr_dat_immu(spr_dat_immu), .spr_dat_du(spr_dat_du), .spr_dat_npc(spr_dat_npc), .spr_cs(spr_cs), .spr_we(spr_we));//// Instantiation of DMMU//or1200_dmmu_top or1200_dmmu_top( // Rst and clk .clk(clk_i), .rst(rst_i),`ifdef OR1200_BIST // RAM BIST .scanb_rst(scanb_rst), .scanb_si(scanb_dmmu_si), .scanb_so(scanb_dmmu_so), .scanb_en(scanb_en), .scanb_clk(scanb_clk),`endif // CPU i/f .dc_en(dc_en), .dmmu_en(dmmu_en), .supv(supv), .dcpu_adr_i(dcpu_adr_cpu), .dcpu_cycstb_i(dcpu_cycstb_cpu), .dcpu_we_i(dcpu_we_cpu), .dcpu_tag_o(dcpu_tag_dmmu), .dcpu_err_o(dcpu_err_dmmu), // SPR access .spr_cs(spr_cs[`OR1200_SPR_GROUP_DMMU]), .spr_write(spr_we), .spr_addr(spr_addr), .spr_dat_i(spr_dat_cpu), .spr_dat_o(spr_dat_dmmu), // DC i/f .dcdmmu_err_i(dcdmmu_err_dc), .dcdmmu_tag_i(dcdmmu_tag_dc), .dcdmmu_adr_o(dcdmmu_adr_dmmu), .dcdmmu_cycstb_o(dcdmmu_cycstb_dmmu), .dcdmmu_ci_o(dcdmmu_ci_dmmu));//// Instantiation of Data Cache//or1200_dc_top or1200_dc_top( .clk(clk_i), .rst(rst_i),`ifdef OR1200_BIST // RAM BIST .scanb_rst(scanb_rst), .scanb_si(scanb_dc_si), .scanb_so(scanb_dc_so), .scanb_en(scanb_en), .scanb_clk(scanb_clk),`endif // DC and CPU/DMMU .dc_en(dc_en), .dcdmmu_adr_i(dcdmmu_adr_dmmu), .dcdmmu_cycstb_i(dcdmmu_cycstb_dmmu), .dcdmmu_ci_i(dcdmmu_ci_dmmu), .dcpu_we_i(dcpu_we_cpu), .dcpu_sel_i(dcpu_sel_cpu), .dcpu_tag_i(dcpu_tag_cpu), .dcpu_dat_i(dcpu_dat_cpu), .dcpu_dat_o(dcpu_dat_dc), .dcpu_ack_o(dcpu_ack_dc), .dcpu_rty_o(dcpu_rty_dc), .dcdmmu_err_o(dcdmmu_err_dc), .dcdmmu_tag_o(dcdmmu_tag_dc), // SPR access .spr_cs(spr_cs[`OR1200_SPR_GROUP_DC]), .spr_write(spr_we), .spr_dat_i(spr_dat_cpu), // DC and BIU .dcsb_dat_o(dcsb_dat_dc), .dcsb_adr_o(dcsb_adr_dc), .dcsb_cyc_o(dcsb_cyc_dc), .dcsb_stb_o(dcsb_stb_dc), .dcsb_we_o(dcsb_we_dc), .dcsb_sel_o(dcsb_sel_dc), .dcsb_cab_o(dcsb_cab_dc), .dcsb_dat_i(dcsb_dat_sb), .dcsb_ack_i(dcsb_ack_sb), .dcsb_err_i(dcsb_err_sb));//// Instantiation of Store Buffer//or1200_sb or1200_sb( // RISC clock, reset .clk(clk_i), .rst(rst_i), // Internal RISC bus (DC<->SB) .dcsb_dat_i(dcsb_dat_dc), .dcsb_adr_i(dcsb_adr_dc), .dcsb_cyc_i(dcsb_cyc_dc), .dcsb_stb_i(dcsb_stb_dc), .dcsb_we_i(dcsb_we_dc), .dcsb_sel_i(dcsb_sel_dc), .dcsb_cab_i(dcsb_cab_dc), .dcsb_dat_o(dcsb_dat_sb), .dcsb_ack_o(dcsb_ack_sb), .dcsb_err_o(dcsb_err_sb), // SB and BIU .sbbiu_dat_o(sbbiu_dat_sb), .sbbiu_adr_o(sbbiu_adr_sb), .sbbiu_cyc_o(sbbiu_cyc_sb), .sbbiu_stb_o(sbbiu_stb_sb), .sbbiu_we_o(sbbiu_we_sb), .sbbiu_sel_o(sbbiu_sel_sb), .sbbiu_cab_o(sbbiu_cab_sb), .sbbiu_dat_i(sbbiu_dat_biu), .sbbiu_ack_i(sbbiu_ack_biu), .sbbiu_err_i(sbbiu_err_biu));//// Instantiation of Debug Unit//or1200_du or1200_du( // RISC Internal Interface .clk(clk_i), .rst(rst_i), .dcpu_cycstb_i(dcpu_cycstb_cpu), .dcpu_we_i(dcpu_we_cpu), .icpu_cycstb_i(icpu_cycstb_cpu), .ex_freeze(ex_freeze), .branch_op(branch_op), .ex_insn(ex_insn), .du_dsr(du_dsr), // For Trace buffer .spr_dat_npc(spr_dat_npc), .rf_dataw(rf_dataw), // DU's access to SPR unit .du_stall(du_stall), .du_addr(du_addr), .du_dat_i(du_dat_cpu), .du_dat_o(du_dat_du), .du_read(du_read), .du_write(du_write), .du_except(du_except), // Access to DU's SPRs .spr_cs(spr_cs[`OR1200_SPR_GROUP_DU]), .spr_write(spr_we), .spr_addr(spr_addr), .spr_dat_i(spr_dat_cpu), .spr_dat_o(spr_dat_du), // External Debug Interface .dbg_stall_i(dbg_stall_i), .dbg_dat_i(dbg_dat_i), .dbg_adr_i(dbg_adr_i), .dbg_op_i(dbg_op_i), .dbg_ewt_i(dbg_ewt_i), .dbg_lss_o(dbg_lss_o), .dbg_is_o(dbg_is_o), .dbg_wp_o(dbg_wp_o), .dbg_bp_o(dbg_bp_o), .dbg_dat_o(dbg_dat_o));//// Programmable interrupt controller//or1200_pic or1200_pic( // RISC Internal Interface .clk(clk_i), .rst(rst_i), .spr_cs(spr_cs[`OR1200_SPR_GROUP_PIC]), .spr_write(spr_we), .spr_addr(spr_addr), .spr_dat_i(spr_dat_cpu), .spr_dat_o(spr_dat_pic), .pic_wakeup(pic_wakeup), .int(sig_int), // PIC Interface .pic_int(pic_ints_i));//// Instantiation of Tick timer//or1200_tt or1200_tt( // RISC Internal Interface .clk(clk_i), .rst(rst_i), .du_stall(du_stall), .spr_cs(spr_cs[`OR1200_SPR_GROUP_TT]), .spr_write(spr_we), .spr_addr(spr_addr), .spr_dat_i(spr_dat_cpu), .spr_dat_o(spr_dat_tt), .int(sig_tick));//// Instantiation of Power Management//or1200_pm or1200_pm( // RISC Internal Interface .clk(clk_i), .rst(rst_i), .pic_wakeup(pic_wakeup), .spr_write(spr_we), .spr_addr(spr_addr), .spr_dat_i(spr_dat_cpu), .spr_dat_o(spr_dat_pm), // Power Management Interface .pm_cpustall(pm_cpustall_i), .pm_clksd(pm_clksd_o), .pm_dc_gate(pm_dc_gate_o), .pm_ic_gate(pm_ic_gate_o), .pm_dmmu_gate(pm_dmmu_gate_o), .pm_immu_gate(pm_immu_gate_o), .pm_tt_gate(pm_tt_gate_o), .pm_cpu_gate(pm_cpu_gate_o), .pm_wakeup(pm_wakeup_o), .pm_lvolt(pm_lvolt_o));endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -