mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-07 06:44:18 +00:00
46 lines
1.1 KiB
Coq
46 lines
1.1 KiB
Coq
|
`include "settings.h"
|
||
|
|
||
|
module EXE_Reg
|
||
|
(
|
||
|
input clk,
|
||
|
input rst,
|
||
|
input [`WORD_WIDTH-1:0] pc_in,
|
||
|
input [`WORD_WIDTH-1:0] instruction_in,
|
||
|
input [`REG_FILE_DEPTH-1:0] dst_in,
|
||
|
input mem_read_in, mem_write_in, WB_en_in,
|
||
|
input [`WORD_WIDTH-1:0] val_Rm_in,
|
||
|
input [`WORD_WIDTH-1:0] ALU_res_in,
|
||
|
output reg [`REG_FILE_DEPTH-1:0] dst_out,
|
||
|
output reg [`WORD_WIDTH-1:0] ALU_res_out,
|
||
|
output reg [`WORD_WIDTH-1:0] val_Rm_out,
|
||
|
output reg mem_read_out, mem_write_out, WB_en_out,
|
||
|
output reg [`WORD_WIDTH-1:0] pc,
|
||
|
output reg [`WORD_WIDTH-1:0] instruction
|
||
|
);
|
||
|
|
||
|
always @(posedge clk, posedge rst) begin
|
||
|
if(rst) begin
|
||
|
pc <= 0;
|
||
|
instruction <= 0;
|
||
|
dst_out <= 0;
|
||
|
ALU_res_out <= 0;
|
||
|
val_Rm_out <= 0;
|
||
|
mem_read_out <= 0;
|
||
|
mem_write_out <= 0;
|
||
|
WB_en_out <= 0;
|
||
|
end
|
||
|
else begin
|
||
|
pc <= pc_in;
|
||
|
instruction <= instruction_in;
|
||
|
dst_out <= dst_in;
|
||
|
ALU_res_out <= ALU_res_in;
|
||
|
val_Rm_out <= val_Rm_in;
|
||
|
mem_read_out <= mem_read_in;
|
||
|
mem_write_out <= mem_write_in;
|
||
|
WB_en_out <= WB_en_in;
|
||
|
end
|
||
|
end
|
||
|
|
||
|
endmodule
|
||
|
|