⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 or1200_top.v

📁 or1200开源risc cpu的verilog描述实现
💻 V
📖 第 1 页 / 共 2 页
字号:
	.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),	// QMEM and IMMU	.qmemimmu_rty_i(qmemimmu_rty_qmem),	.qmemimmu_err_i(qmemimmu_err_qmem),	.qmemimmu_tag_i(qmemimmu_tag_qmem),	.qmemimmu_adr_o(qmemimmu_adr_immu),	.qmemimmu_cycstb_o(qmemimmu_cycstb_immu),	.qmemimmu_ci_o(qmemimmu_ci_immu));//// Instantiation of Instruction Cache//or1200_ic_top or1200_ic_top(	.clk(clk_i),	.rst(rst_i),`ifdef OR1200_BIST	// RAM BIST	.mbist_si_i(mbist_ic_si),	.mbist_so_o(mbist_ic_so),	.mbist_ctrl_i(mbist_ctrl_i),`endif	// IC and QMEM	.ic_en(ic_en),	.icqmem_adr_i(icqmem_adr_qmem),	.icqmem_cycstb_i(icqmem_cycstb_qmem),	.icqmem_ci_i(icqmem_ci_qmem),	.icqmem_sel_i(icqmem_sel_qmem),	.icqmem_tag_i(icqmem_tag_qmem),	.icqmem_dat_o(icqmem_dat_ic),	.icqmem_ack_o(icqmem_ack_ic),	.icqmem_rty_o(icqmem_rty_ic),	.icqmem_err_o(icqmem_err_ic),	.icqmem_tag_o(icqmem_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 QMEM 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_qmem),	.icpu_ack_i(icpu_ack_qmem),	.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),	.id_pc(id_pc),	.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),	.du_hwbkpt(du_hwbkpt),	.rf_dataw(rf_dataw),	// Connection IMMU and CPU internally	.immu_en(immu_en),	// Connection QMEM 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_qmem),	.dcpu_ack_i(dcpu_ack_qmem),	.dcpu_rty_i(dcpu_rty_qmem),	.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	.mbist_si_i(mbist_dmmu_si),	.mbist_so_o(mbist_dmmu_so),	.mbist_ctrl_i(mbist_ctrl_i),`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),	// QMEM and DMMU	.qmemdmmu_err_i(qmemdmmu_err_qmem),	.qmemdmmu_tag_i(qmemdmmu_tag_qmem),	.qmemdmmu_adr_o(qmemdmmu_adr_dmmu),	.qmemdmmu_cycstb_o(qmemdmmu_cycstb_dmmu),	.qmemdmmu_ci_o(qmemdmmu_ci_dmmu));//// Instantiation of Data Cache//or1200_dc_top or1200_dc_top(	.clk(clk_i),	.rst(rst_i),`ifdef OR1200_BIST	// RAM BIST	.mbist_si_i(mbist_dc_si),	.mbist_so_o(mbist_dc_so),	.mbist_ctrl_i(mbist_ctrl_i),`endif	// DC and QMEM	.dc_en(dc_en),	.dcqmem_adr_i(dcqmem_adr_qmem),	.dcqmem_cycstb_i(dcqmem_cycstb_qmem),	.dcqmem_ci_i(dcqmem_ci_qmem),	.dcqmem_we_i(dcqmem_we_qmem),	.dcqmem_sel_i(dcqmem_sel_qmem),	.dcqmem_tag_i(dcqmem_tag_qmem),	.dcqmem_dat_i(dcqmem_dat_qmem),	.dcqmem_dat_o(dcqmem_dat_dc),	.dcqmem_ack_o(dcqmem_ack_dc),	.dcqmem_rty_o(dcqmem_rty_dc),	.dcqmem_err_o(dcqmem_err_dc),	.dcqmem_tag_o(dcqmem_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 embedded memory - qmem//or1200_qmem_top or1200_qmem_top(	.clk(clk_i),	.rst(rst_i),`ifdef OR1200_BIST	// RAM BIST	.mbist_si_i(mbist_qmem_si),	.mbist_so_o(mbist_qmem_so),	.mbist_ctrl_i(mbist_ctrl_i),`endif	// QMEM and CPU/IMMU	.qmemimmu_adr_i(qmemimmu_adr_immu),	.qmemimmu_cycstb_i(qmemimmu_cycstb_immu),	.qmemimmu_ci_i(qmemimmu_ci_immu),	.qmemicpu_sel_i(icpu_sel_cpu),	.qmemicpu_tag_i(icpu_tag_cpu),	.qmemicpu_dat_o(icpu_dat_qmem),	.qmemicpu_ack_o(icpu_ack_qmem),	.qmemimmu_rty_o(qmemimmu_rty_qmem),	.qmemimmu_err_o(qmemimmu_err_qmem),	.qmemimmu_tag_o(qmemimmu_tag_qmem),	// QMEM and IC	.icqmem_adr_o(icqmem_adr_qmem),	.icqmem_cycstb_o(icqmem_cycstb_qmem),	.icqmem_ci_o(icqmem_ci_qmem),	.icqmem_sel_o(icqmem_sel_qmem),	.icqmem_tag_o(icqmem_tag_qmem),	.icqmem_dat_i(icqmem_dat_ic),	.icqmem_ack_i(icqmem_ack_ic),	.icqmem_rty_i(icqmem_rty_ic),	.icqmem_err_i(icqmem_err_ic),	.icqmem_tag_i(icqmem_tag_ic),	// QMEM and CPU/DMMU	.qmemdmmu_adr_i(qmemdmmu_adr_dmmu),	.qmemdmmu_cycstb_i(qmemdmmu_cycstb_dmmu),	.qmemdmmu_ci_i(qmemdmmu_ci_dmmu),	.qmemdcpu_we_i(dcpu_we_cpu),	.qmemdcpu_sel_i(dcpu_sel_cpu),	.qmemdcpu_tag_i(dcpu_tag_cpu),	.qmemdcpu_dat_i(dcpu_dat_cpu),	.qmemdcpu_dat_o(dcpu_dat_qmem),	.qmemdcpu_ack_o(dcpu_ack_qmem),	.qmemdcpu_rty_o(dcpu_rty_qmem),	.qmemdmmu_err_o(qmemdmmu_err_qmem),	.qmemdmmu_tag_o(qmemdmmu_tag_qmem),	// QMEM and DC	.dcqmem_adr_o(dcqmem_adr_qmem),	.dcqmem_cycstb_o(dcqmem_cycstb_qmem),	.dcqmem_ci_o(dcqmem_ci_qmem),	.dcqmem_we_o(dcqmem_we_qmem),	.dcqmem_sel_o(dcqmem_sel_qmem),	.dcqmem_tag_o(dcqmem_tag_qmem),	.dcqmem_dat_o(dcqmem_dat_qmem),	.dcqmem_dat_i(dcqmem_dat_dc),	.dcqmem_ack_i(dcqmem_ack_dc),	.dcqmem_rty_i(dcqmem_rty_dc),	.dcqmem_err_i(dcqmem_err_dc),	.dcqmem_tag_i(dcqmem_tag_dc));//// 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),	.dcpu_adr_i(dcpu_adr_cpu),	.dcpu_dat_lsu(dcpu_dat_cpu),	.dcpu_dat_dc(dcpu_dat_qmem),	.icpu_cycstb_i(icpu_cycstb_cpu),	.ex_freeze(ex_freeze),	.branch_op(branch_op),	.ex_insn(ex_insn),	.id_pc(id_pc),	.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),	.du_hwbkpt(du_hwbkpt),	// 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_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_stb_i(dbg_stb_i),	.dbg_we_i(dbg_we_i),	.dbg_adr_i(dbg_adr_i),	.dbg_dat_i(dbg_dat_i),	.dbg_dat_o(dbg_dat_o),	.dbg_ack_o(dbg_ack_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),	.intr(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),	.intr(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 + -