);
input clk;
- `include "execute.inc"
+ `input(command_r, command_a, command_a_, [(`DATAWIDTH-1):0], command_d)
+ `output(ihorn_r, ihorn_r_, ihorn_a, [(`INSTRUCTION_WIDTH-1):0], ihorn_d_)
+ `defreg(ihorn_d_, [(`INSTRUCTION_WIDTH-1):0], ihorn_d)
+ `output(dhorn_r, dhorn_r_, dhorn_a, [(`PACKET_WIDTH-1):0], dhorn_d_)
+ `defreg(dhorn_d_, [(`PACKET_WIDTH-1):0], dhorn_d)
+
+ reg ihorn_full;
+ reg dhorn_full;
+
+ always @(posedge clk) begin
+ if (ihorn_full) begin
+ `onwrite(ihorn_r, ihorn_a)
+ ihorn_full = 0;
+ end
+ end else if (dhorn_full) begin
+ `onwrite(dhorn_r, dhorn_a)
+ dhorn_full = 0;
+ end
+ end else begin
+ `onread(command_r, command_a)
+ case (command_d[(`INSTRUCTION_WIDTH-1):(`INSTRUCTION_WIDTH-2)])
+ 0: begin
+ ihorn_full = 1;
+ ihorn_d = command_d;
+ end
+ //01:
+ 2: begin
+ dhorn_full = 1;
+ `packet_data(dhorn_d) = command_d[23:0];
+ `packet_dest(dhorn_d) = command_d[34:24];
+ end
+ //11:
+ endcase
+ end
+ end
+ end
+
endmodule
+
+