rtl原理图中未实现子模块

时间:2019-01-11 16:07:17

标签: verilog fpga system-verilog register-transfer-level

我想在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