init
This commit is contained in:
56
code/vezba6_7/dut/holdreg.v
Normal file
56
code/vezba6_7/dut/holdreg.v
Normal file
@@ -0,0 +1,56 @@
|
||||
// Library: calc1
|
||||
// Module: Hold Register
|
||||
// Author: Naseer Siddique
|
||||
|
||||
module holdreg(hold_data1, hold_data2, hold_prio_req, c_clk, req_cmd_in, req_data_in, reset);
|
||||
|
||||
input c_clk;
|
||||
input [0:3] req_cmd_in;
|
||||
input [1:7] reset;
|
||||
input [0:31] req_data_in;
|
||||
|
||||
output [0:3] hold_prio_req;
|
||||
output [0:31] hold_data1, hold_data2;
|
||||
|
||||
|
||||
reg [0:3] cmd_hold, hold_prio_reg;
|
||||
wire [0:3] cmd_hold_q;
|
||||
reg [0:31] hold_data1_q, hold_data2_q;
|
||||
|
||||
always
|
||||
@ (posedge c_clk) begin
|
||||
fork
|
||||
|
||||
cmd_hold[0:3] <= (reset[1] == 1) ? 4'b0 : req_cmd_in[0:3];
|
||||
hold_prio_reg[0:3] <= cmd_hold[0:3];
|
||||
|
||||
join
|
||||
|
||||
end
|
||||
|
||||
|
||||
always
|
||||
@ (posedge c_clk) begin
|
||||
fork
|
||||
hold_data1_q[0:31] <=
|
||||
(reset[1]) ? 32'b0 :
|
||||
(req_cmd_in[0:3] != 4'b0) ? req_data_in[0:31] :
|
||||
hold_data1_q[0:31];
|
||||
|
||||
hold_data2_q[0:31] <=
|
||||
(reset[1]) ? 32'b0 : (cmd_hold[0:3] != 4'b0) ?
|
||||
req_data_in[0:31] : hold_data2_q[0:31];
|
||||
join
|
||||
|
||||
end
|
||||
|
||||
|
||||
assign hold_data1 = hold_data1_q;
|
||||
assign hold_data2 = hold_data2_q;
|
||||
assign hold_prio_req = hold_prio_reg;
|
||||
|
||||
endmodule // holdreg
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user