我想在fpga上实现我的单周期risc-v项目。 模拟我的代码后,它可以正常工作。第一步,我试图查看我的设计rtl原理图,我收到了很多警告,例如我的子模块未连接到顶部模块。并且我有一个黑盒子,里面没有任何东西。这是我的topmodule。 我的搜索告诉了我有关I / O的信息。然后我实现了io_inst_addr和in_inst和memory_writeBack来查看它是否已解决并且什么都没发生。只是我有一个写回模块,其输出已接地。
module risc_v_module(
input [31:0] in_inst,
input [6:0] io_inst_addr ,
input clk,
input rst,
output [63:0] memory_writeBack
);
wire [63:0] pc_mem ;
wire [63:0] ins_addr ;
wire [63:0] mem_add_out;
wire [31:0] instruction;
wire [63:0] dataToReg;
wire branch ; wire memRead ; wire memWrite ;
wire memToReg ; wire [1:0] aluOP;
wire aluSrc;
wire [63:0] data1_reg;wire [63:0] data2_reg;
wire [63:0] signEx; wire [9:0] func_out;
wire [63:0] in2mem;wire zero;
wire [63:0] aluRes;wire [63:0] branch_addr;
wire [63:0] memory_out ; wire [63:0] alu_mem_out ;
fetch risc_v_fetch(
.clk(clk),
.rst(rst),
.io_inst(in_inst),
.io_addr(io_inst_addr),
.new_pc(pc_mem),
.pc_out(ins_addr),
.add_out(mem_add_out),
.instruction(instruction)
);
decode risc_v_decode(
.instruction(instruction),
.writeData(dataToReg),
.branch(branch),
.memRead(memRead),
.memToReg(memToReg),
.aluOP(aluOP),
//.pcSrc(pcSrc),
.aluSrc(aluSrc),
.memWrite(memWrite),
.data1(data1_reg),
.data2(data2_reg),
.sign_extend(signEx),
.function_7_3(func_out)
);
execute risc_v_execute(
.in1(data1_reg),
.in2(data2_reg),
.from_signExtend(signEx),
.aluOP(aluOP),
.aluSrc(aluSrc),
.function_7_3(func_out),
.pc_out(ins_addr),
.memory_data(in2mem),
.zero(zero),
.aluRes(aluRes),
.add_branch(branch_addr)
);
memory risc_v_memory(
.branch(branch),
.zero(zero),
.add_branch(branch_addr),
.add_out(mem_add_out),
.aluRes(aluRes),
.data_write(in2mem),
.memRead(memRead),
.memWrite(memWrite),
.memOut(memory_out),
.aluOut(alu_mem_out),
.new_pc(pc_mem)
);
write_back ris_v_WB(
.memtoReg(memToReg),
.memoryOut(memory_out),
.aluOut(alu_mem_out),
.data_to_reg(dataToReg),
.io_out(memory_writeBack)
);endmodule
答案 0 :(得分:-1)