From 20c87b4c887edff5d23e0fa735068c37469e0dac Mon Sep 17 00:00:00 2001 From: Darius Rad Date: Tue, 9 Apr 2019 18:26:51 -0400 Subject: [PATCH] Update Verilog files for synthesis. Again. Apparently these files necessary. --- src_SSITH_P3/xilinx_ip/hdl/mkDM_CSR_Tap.v | 250 +++++++++++++++++++++ src_SSITH_P3/xilinx_ip/hdl/mkDM_GPR_Tap.v | 251 ++++++++++++++++++++++ 2 files changed, 501 insertions(+) create mode 100644 src_SSITH_P3/xilinx_ip/hdl/mkDM_CSR_Tap.v create mode 100644 src_SSITH_P3/xilinx_ip/hdl/mkDM_GPR_Tap.v diff --git a/src_SSITH_P3/xilinx_ip/hdl/mkDM_CSR_Tap.v b/src_SSITH_P3/xilinx_ip/hdl/mkDM_CSR_Tap.v new file mode 100644 index 0000000..a3bcf6f --- /dev/null +++ b/src_SSITH_P3/xilinx_ip/hdl/mkDM_CSR_Tap.v @@ -0,0 +1,250 @@ +// +// Generated by Bluespec Compiler, version 2017.07.A (build 4f360250d, 2017-07-21) +// +// +// +// +// Ports: +// Name I/O size props +// client_request_get O 77 reg +// RDY_client_request_get O 1 reg +// RDY_client_response_put O 1 reg +// RDY_server_request_put O 1 reg +// server_response_get O 65 reg +// RDY_server_response_get O 1 reg +// trace_data_out_get O 362 reg +// RDY_trace_data_out_get O 1 reg +// CLK I 1 clock +// RST_N I 1 reset +// client_response_put I 65 reg +// server_request_put I 77 reg +// EN_client_response_put I 1 +// EN_server_request_put I 1 +// EN_client_request_get I 1 +// EN_server_response_get I 1 +// EN_trace_data_out_get I 1 +// +// No combinational paths from inputs to outputs +// +// + +`ifdef BSV_ASSIGNMENT_DELAY +`else + `define BSV_ASSIGNMENT_DELAY +`endif + +`ifdef BSV_POSITIVE_RESET + `define BSV_RESET_VALUE 1'b1 + `define BSV_RESET_EDGE posedge +`else + `define BSV_RESET_VALUE 1'b0 + `define BSV_RESET_EDGE negedge +`endif + +module mkDM_CSR_Tap(CLK, + RST_N, + + EN_client_request_get, + client_request_get, + RDY_client_request_get, + + client_response_put, + EN_client_response_put, + RDY_client_response_put, + + server_request_put, + EN_server_request_put, + RDY_server_request_put, + + EN_server_response_get, + server_response_get, + RDY_server_response_get, + + EN_trace_data_out_get, + trace_data_out_get, + RDY_trace_data_out_get); + input CLK; + input RST_N; + + // actionvalue method client_request_get + input EN_client_request_get; + output [76 : 0] client_request_get; + output RDY_client_request_get; + + // action method client_response_put + input [64 : 0] client_response_put; + input EN_client_response_put; + output RDY_client_response_put; + + // action method server_request_put + input [76 : 0] server_request_put; + input EN_server_request_put; + output RDY_server_request_put; + + // actionvalue method server_response_get + input EN_server_response_get; + output [64 : 0] server_response_get; + output RDY_server_response_get; + + // actionvalue method trace_data_out_get + input EN_trace_data_out_get; + output [361 : 0] trace_data_out_get; + output RDY_trace_data_out_get; + + // signals for module outputs + wire [361 : 0] trace_data_out_get; + wire [76 : 0] client_request_get; + wire [64 : 0] server_response_get; + wire RDY_client_request_get, + RDY_client_response_put, + RDY_server_request_put, + RDY_server_response_get, + RDY_trace_data_out_get; + + // ports of submodule f_req_in + wire [76 : 0] f_req_in$D_IN, f_req_in$D_OUT; + wire f_req_in$CLR, + f_req_in$DEQ, + f_req_in$EMPTY_N, + f_req_in$ENQ, + f_req_in$FULL_N; + + // ports of submodule f_req_out + wire [76 : 0] f_req_out$D_IN, f_req_out$D_OUT; + wire f_req_out$CLR, + f_req_out$DEQ, + f_req_out$EMPTY_N, + f_req_out$ENQ, + f_req_out$FULL_N; + + // ports of submodule f_rsp + wire [64 : 0] f_rsp$D_IN, f_rsp$D_OUT; + wire f_rsp$CLR, f_rsp$DEQ, f_rsp$EMPTY_N, f_rsp$ENQ, f_rsp$FULL_N; + + // ports of submodule f_trace_data + wire [361 : 0] f_trace_data$D_IN, f_trace_data$D_OUT; + wire f_trace_data$CLR, + f_trace_data$DEQ, + f_trace_data$EMPTY_N, + f_trace_data$ENQ, + f_trace_data$FULL_N; + + // rule scheduling signals + wire CAN_FIRE_RL_request, + CAN_FIRE_client_request_get, + CAN_FIRE_client_response_put, + CAN_FIRE_server_request_put, + CAN_FIRE_server_response_get, + CAN_FIRE_trace_data_out_get, + WILL_FIRE_RL_request, + WILL_FIRE_client_request_get, + WILL_FIRE_client_response_put, + WILL_FIRE_server_request_put, + WILL_FIRE_server_response_get, + WILL_FIRE_trace_data_out_get; + + // actionvalue method client_request_get + assign client_request_get = f_req_out$D_OUT ; + assign RDY_client_request_get = f_req_out$EMPTY_N ; + assign CAN_FIRE_client_request_get = f_req_out$EMPTY_N ; + assign WILL_FIRE_client_request_get = EN_client_request_get ; + + // action method client_response_put + assign RDY_client_response_put = f_rsp$FULL_N ; + assign CAN_FIRE_client_response_put = f_rsp$FULL_N ; + assign WILL_FIRE_client_response_put = EN_client_response_put ; + + // action method server_request_put + assign RDY_server_request_put = f_req_in$FULL_N ; + assign CAN_FIRE_server_request_put = f_req_in$FULL_N ; + assign WILL_FIRE_server_request_put = EN_server_request_put ; + + // actionvalue method server_response_get + assign server_response_get = f_rsp$D_OUT ; + assign RDY_server_response_get = f_rsp$EMPTY_N ; + assign CAN_FIRE_server_response_get = f_rsp$EMPTY_N ; + assign WILL_FIRE_server_response_get = EN_server_response_get ; + + // actionvalue method trace_data_out_get + assign trace_data_out_get = f_trace_data$D_OUT ; + assign RDY_trace_data_out_get = f_trace_data$EMPTY_N ; + assign CAN_FIRE_trace_data_out_get = f_trace_data$EMPTY_N ; + assign WILL_FIRE_trace_data_out_get = EN_trace_data_out_get ; + + // submodule f_req_in + FIFO2 #(.width(32'd77), .guarded(32'd1)) f_req_in(.RST(RST_N), + .CLK(CLK), + .D_IN(f_req_in$D_IN), + .ENQ(f_req_in$ENQ), + .DEQ(f_req_in$DEQ), + .CLR(f_req_in$CLR), + .D_OUT(f_req_in$D_OUT), + .FULL_N(f_req_in$FULL_N), + .EMPTY_N(f_req_in$EMPTY_N)); + + // submodule f_req_out + FIFO2 #(.width(32'd77), .guarded(32'd1)) f_req_out(.RST(RST_N), + .CLK(CLK), + .D_IN(f_req_out$D_IN), + .ENQ(f_req_out$ENQ), + .DEQ(f_req_out$DEQ), + .CLR(f_req_out$CLR), + .D_OUT(f_req_out$D_OUT), + .FULL_N(f_req_out$FULL_N), + .EMPTY_N(f_req_out$EMPTY_N)); + + // submodule f_rsp + FIFO2 #(.width(32'd65), .guarded(32'd1)) f_rsp(.RST(RST_N), + .CLK(CLK), + .D_IN(f_rsp$D_IN), + .ENQ(f_rsp$ENQ), + .DEQ(f_rsp$DEQ), + .CLR(f_rsp$CLR), + .D_OUT(f_rsp$D_OUT), + .FULL_N(f_rsp$FULL_N), + .EMPTY_N(f_rsp$EMPTY_N)); + + // submodule f_trace_data + FIFO2 #(.width(32'd362), .guarded(32'd1)) f_trace_data(.RST(RST_N), + .CLK(CLK), + .D_IN(f_trace_data$D_IN), + .ENQ(f_trace_data$ENQ), + .DEQ(f_trace_data$DEQ), + .CLR(f_trace_data$CLR), + .D_OUT(f_trace_data$D_OUT), + .FULL_N(f_trace_data$FULL_N), + .EMPTY_N(f_trace_data$EMPTY_N)); + + // rule RL_request + assign CAN_FIRE_RL_request = + f_req_in$EMPTY_N && f_req_out$FULL_N && + (!f_req_in$D_OUT[76] || f_trace_data$FULL_N) ; + assign WILL_FIRE_RL_request = CAN_FIRE_RL_request ; + + // submodule f_req_in + assign f_req_in$D_IN = server_request_put ; + assign f_req_in$ENQ = EN_server_request_put ; + assign f_req_in$DEQ = CAN_FIRE_RL_request ; + assign f_req_in$CLR = 1'b0 ; + + // submodule f_req_out + assign f_req_out$D_IN = f_req_in$D_OUT ; + assign f_req_out$ENQ = CAN_FIRE_RL_request ; + assign f_req_out$DEQ = EN_client_request_get ; + assign f_req_out$CLR = 1'b0 ; + + // submodule f_rsp + assign f_rsp$D_IN = client_response_put ; + assign f_rsp$ENQ = EN_client_response_put ; + assign f_rsp$DEQ = EN_server_response_get ; + assign f_rsp$CLR = 1'b0 ; + + // submodule f_trace_data + assign f_trace_data$D_IN = + { 286'h0EAAAAAAAAAAAAAAA955555554AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0000000000000, + f_req_in$D_OUT[75:0] } ; + assign f_trace_data$ENQ = WILL_FIRE_RL_request && f_req_in$D_OUT[76] ; + assign f_trace_data$DEQ = EN_trace_data_out_get ; + assign f_trace_data$CLR = 1'b0 ; +endmodule // mkDM_CSR_Tap + diff --git a/src_SSITH_P3/xilinx_ip/hdl/mkDM_GPR_Tap.v b/src_SSITH_P3/xilinx_ip/hdl/mkDM_GPR_Tap.v new file mode 100644 index 0000000..be8b221 --- /dev/null +++ b/src_SSITH_P3/xilinx_ip/hdl/mkDM_GPR_Tap.v @@ -0,0 +1,251 @@ +// +// Generated by Bluespec Compiler, version 2017.07.A (build 4f360250d, 2017-07-21) +// +// +// +// +// Ports: +// Name I/O size props +// client_request_get O 70 reg +// RDY_client_request_get O 1 reg +// RDY_client_response_put O 1 reg +// RDY_server_request_put O 1 reg +// server_response_get O 65 reg +// RDY_server_response_get O 1 reg +// trace_data_out_get O 362 reg +// RDY_trace_data_out_get O 1 reg +// CLK I 1 clock +// RST_N I 1 reset +// client_response_put I 65 reg +// server_request_put I 70 reg +// EN_client_response_put I 1 +// EN_server_request_put I 1 +// EN_client_request_get I 1 +// EN_server_response_get I 1 +// EN_trace_data_out_get I 1 +// +// No combinational paths from inputs to outputs +// +// + +`ifdef BSV_ASSIGNMENT_DELAY +`else + `define BSV_ASSIGNMENT_DELAY +`endif + +`ifdef BSV_POSITIVE_RESET + `define BSV_RESET_VALUE 1'b1 + `define BSV_RESET_EDGE posedge +`else + `define BSV_RESET_VALUE 1'b0 + `define BSV_RESET_EDGE negedge +`endif + +module mkDM_GPR_Tap(CLK, + RST_N, + + EN_client_request_get, + client_request_get, + RDY_client_request_get, + + client_response_put, + EN_client_response_put, + RDY_client_response_put, + + server_request_put, + EN_server_request_put, + RDY_server_request_put, + + EN_server_response_get, + server_response_get, + RDY_server_response_get, + + EN_trace_data_out_get, + trace_data_out_get, + RDY_trace_data_out_get); + input CLK; + input RST_N; + + // actionvalue method client_request_get + input EN_client_request_get; + output [69 : 0] client_request_get; + output RDY_client_request_get; + + // action method client_response_put + input [64 : 0] client_response_put; + input EN_client_response_put; + output RDY_client_response_put; + + // action method server_request_put + input [69 : 0] server_request_put; + input EN_server_request_put; + output RDY_server_request_put; + + // actionvalue method server_response_get + input EN_server_response_get; + output [64 : 0] server_response_get; + output RDY_server_response_get; + + // actionvalue method trace_data_out_get + input EN_trace_data_out_get; + output [361 : 0] trace_data_out_get; + output RDY_trace_data_out_get; + + // signals for module outputs + wire [361 : 0] trace_data_out_get; + wire [69 : 0] client_request_get; + wire [64 : 0] server_response_get; + wire RDY_client_request_get, + RDY_client_response_put, + RDY_server_request_put, + RDY_server_response_get, + RDY_trace_data_out_get; + + // ports of submodule f_req_in + wire [69 : 0] f_req_in$D_IN, f_req_in$D_OUT; + wire f_req_in$CLR, + f_req_in$DEQ, + f_req_in$EMPTY_N, + f_req_in$ENQ, + f_req_in$FULL_N; + + // ports of submodule f_req_out + wire [69 : 0] f_req_out$D_IN, f_req_out$D_OUT; + wire f_req_out$CLR, + f_req_out$DEQ, + f_req_out$EMPTY_N, + f_req_out$ENQ, + f_req_out$FULL_N; + + // ports of submodule f_rsp + wire [64 : 0] f_rsp$D_IN, f_rsp$D_OUT; + wire f_rsp$CLR, f_rsp$DEQ, f_rsp$EMPTY_N, f_rsp$ENQ, f_rsp$FULL_N; + + // ports of submodule f_trace_data + wire [361 : 0] f_trace_data$D_IN, f_trace_data$D_OUT; + wire f_trace_data$CLR, + f_trace_data$DEQ, + f_trace_data$EMPTY_N, + f_trace_data$ENQ, + f_trace_data$FULL_N; + + // rule scheduling signals + wire CAN_FIRE_RL_request, + CAN_FIRE_client_request_get, + CAN_FIRE_client_response_put, + CAN_FIRE_server_request_put, + CAN_FIRE_server_response_get, + CAN_FIRE_trace_data_out_get, + WILL_FIRE_RL_request, + WILL_FIRE_client_request_get, + WILL_FIRE_client_response_put, + WILL_FIRE_server_request_put, + WILL_FIRE_server_response_get, + WILL_FIRE_trace_data_out_get; + + // actionvalue method client_request_get + assign client_request_get = f_req_out$D_OUT ; + assign RDY_client_request_get = f_req_out$EMPTY_N ; + assign CAN_FIRE_client_request_get = f_req_out$EMPTY_N ; + assign WILL_FIRE_client_request_get = EN_client_request_get ; + + // action method client_response_put + assign RDY_client_response_put = f_rsp$FULL_N ; + assign CAN_FIRE_client_response_put = f_rsp$FULL_N ; + assign WILL_FIRE_client_response_put = EN_client_response_put ; + + // action method server_request_put + assign RDY_server_request_put = f_req_in$FULL_N ; + assign CAN_FIRE_server_request_put = f_req_in$FULL_N ; + assign WILL_FIRE_server_request_put = EN_server_request_put ; + + // actionvalue method server_response_get + assign server_response_get = f_rsp$D_OUT ; + assign RDY_server_response_get = f_rsp$EMPTY_N ; + assign CAN_FIRE_server_response_get = f_rsp$EMPTY_N ; + assign WILL_FIRE_server_response_get = EN_server_response_get ; + + // actionvalue method trace_data_out_get + assign trace_data_out_get = f_trace_data$D_OUT ; + assign RDY_trace_data_out_get = f_trace_data$EMPTY_N ; + assign CAN_FIRE_trace_data_out_get = f_trace_data$EMPTY_N ; + assign WILL_FIRE_trace_data_out_get = EN_trace_data_out_get ; + + // submodule f_req_in + FIFO2 #(.width(32'd70), .guarded(32'd1)) f_req_in(.RST(RST_N), + .CLK(CLK), + .D_IN(f_req_in$D_IN), + .ENQ(f_req_in$ENQ), + .DEQ(f_req_in$DEQ), + .CLR(f_req_in$CLR), + .D_OUT(f_req_in$D_OUT), + .FULL_N(f_req_in$FULL_N), + .EMPTY_N(f_req_in$EMPTY_N)); + + // submodule f_req_out + FIFO2 #(.width(32'd70), .guarded(32'd1)) f_req_out(.RST(RST_N), + .CLK(CLK), + .D_IN(f_req_out$D_IN), + .ENQ(f_req_out$ENQ), + .DEQ(f_req_out$DEQ), + .CLR(f_req_out$CLR), + .D_OUT(f_req_out$D_OUT), + .FULL_N(f_req_out$FULL_N), + .EMPTY_N(f_req_out$EMPTY_N)); + + // submodule f_rsp + FIFO2 #(.width(32'd65), .guarded(32'd1)) f_rsp(.RST(RST_N), + .CLK(CLK), + .D_IN(f_rsp$D_IN), + .ENQ(f_rsp$ENQ), + .DEQ(f_rsp$DEQ), + .CLR(f_rsp$CLR), + .D_OUT(f_rsp$D_OUT), + .FULL_N(f_rsp$FULL_N), + .EMPTY_N(f_rsp$EMPTY_N)); + + // submodule f_trace_data + FIFO2 #(.width(32'd362), .guarded(32'd1)) f_trace_data(.RST(RST_N), + .CLK(CLK), + .D_IN(f_trace_data$D_IN), + .ENQ(f_trace_data$ENQ), + .DEQ(f_trace_data$DEQ), + .CLR(f_trace_data$CLR), + .D_OUT(f_trace_data$D_OUT), + .FULL_N(f_trace_data$FULL_N), + .EMPTY_N(f_trace_data$EMPTY_N)); + + // rule RL_request + assign CAN_FIRE_RL_request = + f_req_in$EMPTY_N && f_req_out$FULL_N && + (!f_req_in$D_OUT[69] || f_trace_data$FULL_N) ; + assign WILL_FIRE_RL_request = CAN_FIRE_RL_request ; + + // submodule f_req_in + assign f_req_in$D_IN = server_request_put ; + assign f_req_in$ENQ = EN_server_request_put ; + assign f_req_in$DEQ = CAN_FIRE_RL_request ; + assign f_req_in$CLR = 1'b0 ; + + // submodule f_req_out + assign f_req_out$D_IN = f_req_in$D_OUT ; + assign f_req_out$ENQ = CAN_FIRE_RL_request ; + assign f_req_out$DEQ = EN_client_request_get ; + assign f_req_out$CLR = 1'b0 ; + + // submodule f_rsp + assign f_rsp$D_IN = client_response_put ; + assign f_rsp$ENQ = EN_client_response_put ; + assign f_rsp$DEQ = EN_server_response_get ; + assign f_rsp$CLR = 1'b0 ; + + // submodule f_trace_data + assign f_trace_data$D_IN = + { 101'h035555555555555554AAAAAAAA, + f_req_in$D_OUT[68:0], + 192'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA } ; + assign f_trace_data$ENQ = WILL_FIRE_RL_request && f_req_in$D_OUT[69] ; + assign f_trace_data$DEQ = EN_trace_data_out_get ; + assign f_trace_data$CLR = 1'b0 ; +endmodule // mkDM_GPR_Tap +