// Copyright 2020-2022 F4PGA Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // SPDX-License-Identifier: Apache-2.0 `timescale 1ns /10ps `default_nettype none module TDP36K ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; // First 18K RAMFIFO (41 bits) localparam [ 0:0] SYNC_FIFO1_i = MODE_BITS[0]; localparam [ 2:0] RMODE_A1_i = MODE_BITS[3 : 1]; localparam [ 2:0] RMODE_B1_i = MODE_BITS[6 : 4]; localparam [ 2:0] WMODE_A1_i = MODE_BITS[9 : 7]; localparam [ 2:0] WMODE_B1_i = MODE_BITS[12:10]; localparam [ 0:0] FMODE1_i = MODE_BITS[13]; localparam [ 0:0] POWERDN1_i = MODE_BITS[14]; localparam [ 0:0] SLEEP1_i = MODE_BITS[15]; localparam [ 0:0] PROTECT1_i = MODE_BITS[16]; localparam [11:0] UPAE1_i = MODE_BITS[28:17]; localparam [11:0] UPAF1_i = MODE_BITS[40:29]; // Second 18K RAMFIFO (39 bits) localparam [ 0:0] SYNC_FIFO2_i = MODE_BITS[41]; localparam [ 2:0] RMODE_A2_i = MODE_BITS[44:42]; localparam [ 2:0] RMODE_B2_i = MODE_BITS[47:45]; localparam [ 2:0] WMODE_A2_i = MODE_BITS[50:48]; localparam [ 2:0] WMODE_B2_i = MODE_BITS[53:51]; localparam [ 0:0] FMODE2_i = MODE_BITS[54]; localparam [ 0:0] POWERDN2_i = MODE_BITS[55]; localparam [ 0:0] SLEEP2_i = MODE_BITS[56]; localparam [ 0:0] PROTECT2_i = MODE_BITS[57]; localparam [10:0] UPAE2_i = MODE_BITS[68:58]; localparam [10:0] UPAF2_i = MODE_BITS[79:69]; // Split (1 bit) localparam [ 0:0] SPLIT_i = MODE_BITS[80]; parameter [1024*36-1:0] RAM_INIT = 36864'bx; input wire RESET_ni; input wire WEN_A1_i; input wire WEN_B1_i; input wire REN_A1_i; input wire REN_B1_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; input wire [1:0] BE_A1_i; input wire [1:0] BE_B1_i; input wire [14:0] ADDR_A1_i; input wire [14:0] ADDR_B1_i; input wire [17:0] WDATA_A1_i; input wire [17:0] WDATA_B1_i; output reg [17:0] RDATA_A1_o; output reg [17:0] RDATA_B1_o; input wire FLUSH1_i; input wire WEN_A2_i; input wire WEN_B2_i; input wire REN_A2_i; input wire REN_B2_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [1:0] BE_A2_i; input wire [1:0] BE_B2_i; input wire [13:0] ADDR_A2_i; input wire [13:0] ADDR_B2_i; input wire [17:0] WDATA_A2_i; input wire [17:0] WDATA_B2_i; output reg [17:0] RDATA_A2_o; output reg [17:0] RDATA_B2_o; input wire FLUSH2_i; function [18431:0] split_init; input index; integer i; for (i = 0; i < 1024; i = i + 1) begin split_init[i * 18 +: 18] = RAM_INIT[i * 36 + index * 18 +: 18]; end endfunction wire EMPTY2; wire EPO2; wire EWM2; wire FULL2; wire FMO2; wire FWM2; wire EMPTY1; wire EPO1; wire EWM1; wire FULL1; wire FMO1; wire FWM1; wire UNDERRUN1; wire OVERRUN1; wire UNDERRUN2; wire OVERRUN2; wire UNDERRUN3; wire OVERRUN3; wire EMPTY3; wire EPO3; wire EWM3; wire FULL3; wire FMO3; wire FWM3; wire ram_fmode1; wire ram_fmode2; wire [17:0] ram_rdata_a1; wire [17:0] ram_rdata_b1; wire [17:0] ram_rdata_a2; wire [17:0] ram_rdata_b2; reg [17:0] ram_wdata_a1; reg [17:0] ram_wdata_b1; reg [17:0] ram_wdata_a2; reg [17:0] ram_wdata_b2; reg [14:0] laddr_a1; reg [14:0] laddr_b1; wire [13:0] ram_addr_a1; wire [13:0] ram_addr_b1; wire [13:0] ram_addr_a2; wire [13:0] ram_addr_b2; wire smux_clk_a1; wire smux_clk_b1; wire smux_clk_a2; wire smux_clk_b2; reg [1:0] ram_be_a1; reg [1:0] ram_be_a2; reg [1:0] ram_be_b1; reg [1:0] ram_be_b2; wire [2:0] ram_rmode_a1; wire [2:0] ram_wmode_a1; wire [2:0] ram_rmode_b1; wire [2:0] ram_wmode_b1; wire [2:0] ram_rmode_a2; wire [2:0] ram_wmode_a2; wire [2:0] ram_rmode_b2; wire [2:0] ram_wmode_b2; wire ram_ren_a1; wire ram_ren_b1; wire ram_ren_a2; wire ram_ren_b2; wire ram_wen_a1; wire ram_wen_b1; wire ram_wen_a2; wire ram_wen_b2; wire ren_o; wire [11:0] ff_raddr; wire [11:0] ff_waddr; reg [35:0] fifo_rdata; wire [1:0] fifo_rmode; wire [1:0] fifo_wmode; wire [1:0] bwl; wire [17:0] pl_dout0; wire [17:0] pl_dout1; wire sclk_a1; wire sclk_b1; wire sclk_a2; wire sclk_b2; wire sreset; wire flush1; wire flush2; assign sreset = RESET_ni; assign flush1 = ~FLUSH1_i; assign flush2 = ~FLUSH2_i; assign ram_fmode1 = FMODE1_i & SPLIT_i; assign ram_fmode2 = FMODE2_i & SPLIT_i; assign smux_clk_a1 = CLK_A1_i; assign smux_clk_b1 = (FMODE1_i ? (SYNC_FIFO1_i ? CLK_A1_i : CLK_B1_i) : CLK_B1_i); assign smux_clk_a2 = (SPLIT_i ? CLK_A2_i : CLK_A1_i); assign smux_clk_b2 = (SPLIT_i ? (FMODE2_i ? (SYNC_FIFO2_i ? CLK_A2_i : CLK_B2_i) : CLK_B2_i) : (FMODE1_i ? (SYNC_FIFO1_i ? CLK_A1_i : CLK_B1_i) : CLK_B1_i)); assign sclk_a1 = smux_clk_a1; assign sclk_a2 = smux_clk_a2; assign sclk_b1 = smux_clk_b1; assign sclk_b2 = smux_clk_b2; assign ram_ren_a1 = (SPLIT_i ? REN_A1_i : (FMODE1_i ? 0 : REN_A1_i)); assign ram_ren_a2 = (SPLIT_i ? REN_A2_i : (FMODE1_i ? 0 : REN_A1_i)); assign ram_ren_b1 = (SPLIT_i ? REN_B1_i : (FMODE1_i ? ren_o : REN_B1_i)); assign ram_ren_b2 = (SPLIT_i ? REN_B2_i : (FMODE1_i ? ren_o : REN_B1_i)); localparam MODE_36 = 3'b011; assign ram_wen_a1 = (SPLIT_i ? WEN_A1_i : (FMODE1_i ? ~FULL3 & WEN_A1_i : (WMODE_A1_i == MODE_36 ? WEN_A1_i : WEN_A1_i & ~ADDR_A1_i[4]))); assign ram_wen_a2 = (SPLIT_i ? WEN_A2_i : (FMODE1_i ? ~FULL3 & WEN_A1_i : (WMODE_A1_i == MODE_36 ? WEN_A1_i : WEN_A1_i & ADDR_A1_i[4]))); assign ram_wen_b1 = (SPLIT_i ? WEN_B1_i : (WMODE_B1_i == MODE_36 ? WEN_B1_i : WEN_B1_i & ~ADDR_B1_i[4])); assign ram_wen_b2 = (SPLIT_i ? WEN_B2_i : (WMODE_B1_i == MODE_36 ? WEN_B1_i : WEN_B1_i & ADDR_B1_i[4])); assign ram_addr_a1 = (SPLIT_i ? ADDR_A1_i[13:0] : (FMODE1_i ? {ff_waddr[11:2], ff_waddr[0], 3'b000} : {ADDR_A1_i[14:5], ADDR_A1_i[3:0]})); assign ram_addr_b1 = (SPLIT_i ? ADDR_B1_i[13:0] : (FMODE1_i ? {ff_raddr[11:2], ff_raddr[0], 3'b000} : {ADDR_B1_i[14:5], ADDR_B1_i[3:0]})); assign ram_addr_a2 = (SPLIT_i ? ADDR_A2_i[13:0] : (FMODE1_i ? {ff_waddr[11:2], ff_waddr[0], 3'b000} : {ADDR_A1_i[14:5], ADDR_A1_i[3:0]})); assign ram_addr_b2 = (SPLIT_i ? ADDR_B2_i[13:0] : (FMODE1_i ? {ff_raddr[11:2], ff_raddr[0], 3'b000} : {ADDR_B1_i[14:5], ADDR_B1_i[3:0]})); assign bwl = (SPLIT_i ? ADDR_A1_i[4:3] : (FMODE1_i ? ff_waddr[1:0] : ADDR_A1_i[4:3])); localparam MODE_18 = 3'b010; localparam MODE_9 = 3'b001; always @(*) begin : WDATA_SEL case (SPLIT_i) 1: begin ram_wdata_a1 = WDATA_A1_i; ram_wdata_a2 = WDATA_A2_i; ram_wdata_b1 = WDATA_B1_i; ram_wdata_b2 = WDATA_B2_i; ram_be_a2 = BE_A2_i; ram_be_b2 = BE_B2_i; ram_be_a1 = BE_A1_i; ram_be_b1 = BE_B1_i; end 0: begin case (WMODE_A1_i) MODE_36: begin ram_wdata_a1 = WDATA_A1_i; ram_wdata_a2 = WDATA_A2_i; ram_be_a2 = (FMODE1_i ? 2'b11 : BE_A2_i); ram_be_a1 = (FMODE1_i ? 2'b11 : BE_A1_i); end MODE_18: begin ram_wdata_a1 = WDATA_A1_i; ram_wdata_a2 = WDATA_A1_i; ram_be_a1 = (FMODE1_i ? (ff_waddr[1] ? 2'b00 : 2'b11) : BE_A1_i); ram_be_a2 = (FMODE1_i ? (ff_waddr[1] ? 2'b11 : 2'b00) : BE_A1_i); end MODE_9: begin ram_wdata_a1[7:0] = WDATA_A1_i[7:0]; ram_wdata_a1[16] = WDATA_A1_i[16]; ram_wdata_a1[15:8] = WDATA_A1_i[7:0]; ram_wdata_a1[17] = WDATA_A1_i[16]; ram_wdata_a2[7:0] = WDATA_A1_i[7:0]; ram_wdata_a2[16] = WDATA_A1_i[16]; ram_wdata_a2[15:8] = WDATA_A1_i[7:0]; ram_wdata_a2[17] = WDATA_A1_i[16]; case (bwl) 0: {ram_be_a2, ram_be_a1} = 4'b0001; 1: {ram_be_a2, ram_be_a1} = 4'b0010; 2: {ram_be_a2, ram_be_a1} = 4'b0100; 3: {ram_be_a2, ram_be_a1} = 4'b1000; endcase end default: begin ram_wdata_a1 = WDATA_A1_i; ram_wdata_a2 = WDATA_A1_i; ram_be_a2 = (FMODE1_i ? 2'b11 : BE_A1_i); ram_be_a1 = (FMODE1_i ? 2'b11 : BE_A1_i); end endcase case (WMODE_B1_i) MODE_36: begin ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i); ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B2_i); ram_be_b2 = BE_B2_i; ram_be_b1 = BE_B1_i; end MODE_18: begin ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i); ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i); ram_be_b1 = BE_B1_i; ram_be_b2 = BE_B1_i; end MODE_9: begin ram_wdata_b1[7:0] = WDATA_B1_i[7:0]; ram_wdata_b1[16] = WDATA_B1_i[16]; ram_wdata_b1[15:8] = WDATA_B1_i[7:0]; ram_wdata_b1[17] = WDATA_B1_i[16]; ram_wdata_b2[7:0] = WDATA_B1_i[7:0]; ram_wdata_b2[16] = WDATA_B1_i[16]; ram_wdata_b2[15:8] = WDATA_B1_i[7:0]; ram_wdata_b2[17] = WDATA_B1_i[16]; case (ADDR_B1_i[4:3]) 0: {ram_be_b2, ram_be_b1} = 4'b0001; 1: {ram_be_b2, ram_be_b1} = 4'b0010; 2: {ram_be_b2, ram_be_b1} = 4'b0100; 3: {ram_be_b2, ram_be_b1} = 4'b1000; endcase end default: begin ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i); ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i); ram_be_b2 = BE_B1_i; ram_be_b1 = BE_B1_i; end endcase end endcase end assign ram_rmode_a1 = (SPLIT_i ? (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i) : (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i)); assign ram_rmode_a2 = (SPLIT_i ? (RMODE_A2_i == MODE_36 ? MODE_18 : RMODE_A2_i) : (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i)); assign ram_wmode_a1 = (SPLIT_i ? (WMODE_A1_i == MODE_36 ? MODE_18 : WMODE_A1_i) : (WMODE_A1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : WMODE_A1_i))); assign ram_wmode_a2 = (SPLIT_i ? (WMODE_A2_i == MODE_36 ? MODE_18 : WMODE_A2_i) : (WMODE_A1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : WMODE_A1_i))); assign ram_rmode_b1 = (SPLIT_i ? (RMODE_B1_i == MODE_36 ? MODE_18 : RMODE_B1_i) : (RMODE_B1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : RMODE_B1_i))); assign ram_rmode_b2 = (SPLIT_i ? (RMODE_B2_i == MODE_36 ? MODE_18 : RMODE_B2_i) : (RMODE_B1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : RMODE_B1_i))); assign ram_wmode_b1 = (SPLIT_i ? (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i) : (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i)); assign ram_wmode_b2 = (SPLIT_i ? (WMODE_B2_i == MODE_36 ? MODE_18 : WMODE_B2_i) : (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i)); always @(*) begin : FIFO_READ_SEL case (RMODE_B1_i) MODE_36: fifo_rdata = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:0], ram_rdata_b1[15:0]}; MODE_18: fifo_rdata = (ff_raddr[1] ? {18'b000000000000000000, ram_rdata_b2} : {18'b000000000000000000, ram_rdata_b1}); MODE_9: case (ff_raddr[1:0]) 0: fifo_rdata = {19'b0000000000000000000, ram_rdata_b1[16], 8'b00000000, ram_rdata_b1[7:0]}; 1: fifo_rdata = {19'b0000000000000000000, ram_rdata_b1[17], 8'b00000000, ram_rdata_b1[15:8]}; 2: fifo_rdata = {19'b0000000000000000000, ram_rdata_b2[16], 8'b00000000, ram_rdata_b2[7:0]}; 3: fifo_rdata = {19'b0000000000000000000, ram_rdata_b2[17], 8'b00000000, ram_rdata_b2[15:8]}; endcase default: fifo_rdata = {ram_rdata_b2, ram_rdata_b1}; endcase end localparam MODE_1 = 3'b101; localparam MODE_2 = 3'b110; localparam MODE_4 = 3'b100; always @(*) begin : RDATA_SEL case (SPLIT_i) 1: begin RDATA_A1_o = (FMODE1_i ? {10'b0000000000, EMPTY1, EPO1, EWM1, UNDERRUN1, FULL1, FMO1, FWM1, OVERRUN1} : ram_rdata_a1); RDATA_B1_o = ram_rdata_b1; RDATA_A2_o = (FMODE2_i ? {10'b0000000000, EMPTY2, EPO2, EWM2, UNDERRUN2, FULL2, FMO2, FWM2, OVERRUN2} : ram_rdata_a2); RDATA_B2_o = ram_rdata_b2; end 0: begin if (FMODE1_i) begin RDATA_A1_o = {10'b0000000000, EMPTY3, EPO3, EWM3, UNDERRUN3, FULL3, FMO3, FWM3, OVERRUN3}; RDATA_A2_o = 18'b000000000000000000; end else case (RMODE_A1_i) MODE_36: begin RDATA_A1_o = {ram_rdata_a1[17:0]}; RDATA_A2_o = {ram_rdata_a2[17:0]}; end MODE_18: begin RDATA_A1_o = (laddr_a1[4] ? ram_rdata_a2 : ram_rdata_a1); RDATA_A2_o = 18'b000000000000000000; end MODE_9: begin RDATA_A1_o = (laddr_a1[4] ? {{2 {ram_rdata_a2[16]}}, {2 {ram_rdata_a2[7:0]}}} : {{2 {ram_rdata_a1[16]}}, {2 {ram_rdata_a1[7:0]}}}); RDATA_A2_o = 18'b000000000000000000; end MODE_4: begin RDATA_A2_o = 18'b000000000000000000; RDATA_A1_o[17:4] = 14'b00000000000000; RDATA_A1_o[3:0] = (laddr_a1[4] ? ram_rdata_a2[3:0] : ram_rdata_a1[3:0]); end MODE_2: begin RDATA_A2_o = 18'b000000000000000000; RDATA_A1_o[17:2] = 16'b0000000000000000; RDATA_A1_o[1:0] = (laddr_a1[4] ? ram_rdata_a2[1:0] : ram_rdata_a1[1:0]); end MODE_1: begin RDATA_A2_o = 18'b000000000000000000; RDATA_A1_o[17:1] = 17'b00000000000000000; RDATA_A1_o[0] = (laddr_a1[4] ? ram_rdata_a2[0] : ram_rdata_a1[0]); end default: begin RDATA_A1_o = {ram_rdata_a2[1:0], ram_rdata_a1[15:0]}; RDATA_A2_o = {ram_rdata_a2[17:16], ram_rdata_a1[17:16], ram_rdata_a2[15:2]}; end endcase case (RMODE_B1_i) MODE_36: begin RDATA_B1_o = {ram_rdata_b1}; RDATA_B2_o = {ram_rdata_b2}; end MODE_18: begin RDATA_B1_o = (FMODE1_i ? fifo_rdata[17:0] : (laddr_b1[4] ? ram_rdata_b2 : ram_rdata_b1)); RDATA_B2_o = 18'b000000000000000000; end MODE_9: begin RDATA_B1_o = (FMODE1_i ? {fifo_rdata[17:0]} : (laddr_b1[4] ? {1'b0, ram_rdata_b2[16], 8'b00000000, ram_rdata_b2[7:0]} : {1'b0, ram_rdata_b1[16], 8'b00000000, ram_rdata_b1[7:0]})); RDATA_B2_o = 18'b000000000000000000; end MODE_4: begin RDATA_B2_o = 18'b000000000000000000; RDATA_B1_o[17:4] = 14'b00000000000000; RDATA_B1_o[3:0] = (laddr_b1[4] ? ram_rdata_b2[3:0] : ram_rdata_b1[3:0]); end MODE_2: begin RDATA_B2_o = 18'b000000000000000000; RDATA_B1_o[17:2] = 16'b0000000000000000; RDATA_B1_o[1:0] = (laddr_b1[4] ? ram_rdata_b2[1:0] : ram_rdata_b1[1:0]); end MODE_1: begin RDATA_B2_o = 18'b000000000000000000; RDATA_B1_o[17:1] = 17'b00000000000000000; RDATA_B1_o[0] = (laddr_b1[4] ? ram_rdata_b2[0] : ram_rdata_b1[0]); end default: begin RDATA_B1_o = ram_rdata_b1; RDATA_B2_o = ram_rdata_b2; end endcase end endcase end always @(posedge sclk_a1 or negedge sreset) if (sreset == 0) laddr_a1 <= 1'sb0; else laddr_a1 <= ADDR_A1_i; always @(posedge sclk_b1 or negedge sreset) if (sreset == 0) laddr_b1 <= 1'sb0; else laddr_b1 <= ADDR_B1_i; assign fifo_wmode = ((WMODE_A1_i == MODE_36) ? 2'b00 : ((WMODE_A1_i == MODE_18) ? 2'b01 : ((WMODE_A1_i == MODE_9) ? 2'b10 : 2'b00))); assign fifo_rmode = ((RMODE_B1_i == MODE_36) ? 2'b00 : ((RMODE_B1_i == MODE_18) ? 2'b01 : ((RMODE_B1_i == MODE_9) ? 2'b10 : 2'b00))); fifo_ctl #( .ADDR_WIDTH(12), .FIFO_WIDTH(3'd4), .DEPTH(7) ) fifo36_ctl( .rclk(sclk_b1), .rst_R_n(flush1), .wclk(sclk_a1), .rst_W_n(flush1), .ren(REN_B1_i), .wen(ram_wen_a1), .sync(SYNC_FIFO1_i), .rmode(fifo_rmode), .wmode(fifo_wmode), .ren_o(ren_o), .fflags({FULL3, FMO3, FWM3, OVERRUN3, EMPTY3, EPO3, EWM3, UNDERRUN3}), .raddr(ff_raddr), .waddr(ff_waddr), .upaf(UPAF1_i), .upae(UPAE1_i) ); TDP18K_FIFO #( .UPAF_i(UPAF1_i[10:0]), .UPAE_i(UPAE1_i[10:0]), .SYNC_FIFO_i(SYNC_FIFO1_i), .POWERDN_i(POWERDN1_i), .SLEEP_i(SLEEP1_i), .PROTECT_i(PROTECT1_i), .INIT_i(split_init(0)) )u1( .RMODE_A_i(ram_rmode_a1), .RMODE_B_i(ram_rmode_b1), .WMODE_A_i(ram_wmode_a1), .WMODE_B_i(ram_wmode_b1), .WEN_A_i(ram_wen_a1), .WEN_B_i(ram_wen_b1), .REN_A_i(ram_ren_a1), .REN_B_i(ram_ren_b1), .CLK_A_i(sclk_a1), .CLK_B_i(sclk_b1), .BE_A_i(ram_be_a1), .BE_B_i(ram_be_b1), .ADDR_A_i(ram_addr_a1), .ADDR_B_i(ram_addr_b1), .WDATA_A_i(ram_wdata_a1), .WDATA_B_i(ram_wdata_b1), .RDATA_A_o(ram_rdata_a1), .RDATA_B_o(ram_rdata_b1), .EMPTY_o(EMPTY1), .EPO_o(EPO1), .EWM_o(EWM1), .UNDERRUN_o(UNDERRUN1), .FULL_o(FULL1), .FMO_o(FMO1), .FWM_o(FWM1), .OVERRUN_o(OVERRUN1), .FLUSH_ni(flush1), .FMODE_i(ram_fmode1) ); TDP18K_FIFO #( .UPAF_i(UPAF2_i), .UPAE_i(UPAE2_i), .SYNC_FIFO_i(SYNC_FIFO2_i), .POWERDN_i(POWERDN2_i), .SLEEP_i(SLEEP2_i), .PROTECT_i(PROTECT2_i), .INIT_i(split_init(1)) )u2( .RMODE_A_i(ram_rmode_a2), .RMODE_B_i(ram_rmode_b2), .WMODE_A_i(ram_wmode_a2), .WMODE_B_i(ram_wmode_b2), .WEN_A_i(ram_wen_a2), .WEN_B_i(ram_wen_b2), .REN_A_i(ram_ren_a2), .REN_B_i(ram_ren_b2), .CLK_A_i(sclk_a2), .CLK_B_i(sclk_b2), .BE_A_i(ram_be_a2), .BE_B_i(ram_be_b2), .ADDR_A_i(ram_addr_a2), .ADDR_B_i(ram_addr_b2), .WDATA_A_i(ram_wdata_a2), .WDATA_B_i(ram_wdata_b2), .RDATA_A_o(ram_rdata_a2), .RDATA_B_o(ram_rdata_b2), .EMPTY_o(EMPTY2), .EPO_o(EPO2), .EWM_o(EWM2), .UNDERRUN_o(UNDERRUN2), .FULL_o(FULL2), .FMO_o(FMO2), .FWM_o(FWM2), .OVERRUN_o(OVERRUN2), .FLUSH_ni(flush2), .FMODE_i(ram_fmode2) ); endmodule module RAM_18K_X2_BLK ( RESET_ni, WEN1_i, REN1_i, WR1_CLK_i, RD1_CLK_i, WR1_BE_i, WR1_ADDR_i, RD1_ADDR_i, WDATA1_i, RDATA1_o, WEN2_i, REN2_i, WR2_CLK_i, RD2_CLK_i, WR2_BE_i, WR2_ADDR_i, RD2_ADDR_i, WDATA2_i, RDATA2_o ); parameter WR1_ADDR_WIDTH = 10; parameter RD1_ADDR_WIDTH = 10; parameter WR1_DATA_WIDTH = 18; parameter RD1_DATA_WIDTH = 18; parameter BE1_WIDTH = 2; parameter WR2_ADDR_WIDTH = 10; parameter RD2_ADDR_WIDTH = 10; parameter WR2_DATA_WIDTH = 18; parameter RD2_DATA_WIDTH = 18; parameter BE2_WIDTH = 2; input wire RESET_ni; input wire WEN1_i; input wire REN1_i; input wire WR1_CLK_i; input wire RD1_CLK_i; input wire [BE1_WIDTH-1:0] WR1_BE_i; input wire [WR1_ADDR_WIDTH-1 :0] WR1_ADDR_i; input wire [RD1_ADDR_WIDTH-1 :0] RD1_ADDR_i; input wire [WR1_DATA_WIDTH-1 :0] WDATA1_i; output wire [RD1_DATA_WIDTH-1 :0] RDATA1_o; input wire WEN2_i; input wire REN2_i; input wire WR2_CLK_i; input wire RD2_CLK_i; input wire [BE2_WIDTH-1:0] WR2_BE_i; input wire [WR2_ADDR_WIDTH-1 :0] WR2_ADDR_i; input wire [RD2_ADDR_WIDTH-1 :0] RD2_ADDR_i; input wire [WR2_DATA_WIDTH-1 :0] WDATA2_i; output wire [RD2_DATA_WIDTH-1 :0] RDATA2_o; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd0; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = 12'd10; localparam [11:0] UPAF1_i = 12'd10; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd0; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = 11'd10; localparam [10:0] UPAF2_i = 11'd10; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire REN_A1_i; wire REN_A2_i; wire REN_B1_i; wire REN_B2_i; wire WEN_A1_i; wire WEN_A2_i; wire WEN_B1_i; wire WEN_B2_i; wire [1:0] BE_A1_i; wire [1:0] BE_A2_i; wire [1:0] BE_B1_i; wire [1:0] BE_B2_i; wire [14:0] ADDR_A1_i; wire [13:0] ADDR_A2_i; wire [14:0] ADDR_B1_i; wire [13:0] ADDR_B2_i; wire [17:0] WDATA_A1_i; wire [17:0] WDATA_A2_i; wire [17:0] WDATA_B1_i; wire [17:0] WDATA_B2_i; wire [17:0] RDATA_A1_o; wire [17:0] RDATA_A2_o; wire [17:0] RDATA_B1_o; wire [17:0] RDATA_B2_o; wire [1:0] WR1_BE; wire [1:0] WR2_BE; wire [17:0] PORT_B1_RDATA; wire [17:0] PORT_A1_WDATA; wire [17:0] PORT_B2_RDATA; wire [17:0] PORT_A2_WDATA; wire [13:0] WR1_ADDR_INT; wire [13:0] RD1_ADDR_INT; wire [13:0] WR2_ADDR_INT; wire [13:0] RD2_ADDR_INT; wire [13:0] PORT_A1_ADDR; wire [13:0] PORT_B1_ADDR; wire [13:0] PORT_A2_ADDR; wire [13:0] PORT_B2_ADDR; // Set port width mode (In non-split mode A2/B2 is not active. Set same values anyway to match previous behavior.) localparam [ 2:0] RMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD2_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD2_DATA_WIDTH); generate if (WR1_ADDR_WIDTH == 14) begin assign WR1_ADDR_INT = WR1_ADDR_i; end else begin assign WR1_ADDR_INT[13:WR1_ADDR_WIDTH] = 0; assign WR1_ADDR_INT[WR1_ADDR_WIDTH-1:0] = WR1_ADDR_i; end endgenerate case (WR1_DATA_WIDTH) 1: begin assign PORT_A1_ADDR = WR1_ADDR_INT; end 2: begin assign PORT_A1_ADDR = WR1_ADDR_INT << 1; end 4: begin assign PORT_A1_ADDR = WR1_ADDR_INT << 2; end 8, 9: begin assign PORT_A1_ADDR = WR1_ADDR_INT << 3; end 16, 18: begin assign PORT_A1_ADDR = WR1_ADDR_INT << 4; end default: begin assign PORT_A1_ADDR = WR1_ADDR_INT; end endcase generate if (RD1_ADDR_WIDTH == 14) begin assign RD1_ADDR_INT = RD1_ADDR_i; end else begin assign RD1_ADDR_INT[13:RD1_ADDR_WIDTH] = 0; assign RD1_ADDR_INT[RD1_ADDR_WIDTH-1:0] = RD1_ADDR_i; end endgenerate case (RD1_DATA_WIDTH) 1: begin assign PORT_B1_ADDR = RD1_ADDR_INT; end 2: begin assign PORT_B1_ADDR = RD1_ADDR_INT << 1; end 4: begin assign PORT_B1_ADDR = RD1_ADDR_INT << 2; end 8, 9: begin assign PORT_B1_ADDR = RD1_ADDR_INT << 3; end 16, 18: begin assign PORT_B1_ADDR = RD1_ADDR_INT << 4; end default: begin assign PORT_B1_ADDR = RD1_ADDR_INT; end endcase generate if (WR2_ADDR_WIDTH == 14) begin assign WR2_ADDR_INT = WR2_ADDR_i; end else begin assign WR2_ADDR_INT[13:WR2_ADDR_WIDTH] = 0; assign WR2_ADDR_INT[WR2_ADDR_WIDTH-1:0] = WR2_ADDR_i; end endgenerate case (WR2_DATA_WIDTH) 1: begin assign PORT_A2_ADDR = WR2_ADDR_INT; end 2: begin assign PORT_A2_ADDR = WR2_ADDR_INT << 1; end 4: begin assign PORT_A2_ADDR = WR2_ADDR_INT << 2; end 8, 9: begin assign PORT_A2_ADDR = WR2_ADDR_INT << 3; end 16, 18: begin assign PORT_A2_ADDR = WR2_ADDR_INT << 4; end default: begin assign PORT_A2_ADDR = WR2_ADDR_INT; end endcase generate if (RD2_ADDR_WIDTH == 14) begin assign RD2_ADDR_INT = RD2_ADDR_i; end else begin assign RD2_ADDR_INT[13:RD2_ADDR_WIDTH] = 0; assign RD2_ADDR_INT[RD2_ADDR_WIDTH-1:0] = RD2_ADDR_i; end endgenerate case (RD2_DATA_WIDTH) 1: begin assign PORT_B2_ADDR = RD2_ADDR_INT; end 2: begin assign PORT_B2_ADDR = RD2_ADDR_INT << 1; end 4: begin assign PORT_B2_ADDR = RD2_ADDR_INT << 2; end 8, 9: begin assign PORT_B2_ADDR = RD2_ADDR_INT << 3; end 16, 18: begin assign PORT_B2_ADDR = RD2_ADDR_INT << 4; end default: begin assign PORT_B2_ADDR = RD2_ADDR_INT; end endcase case (BE1_WIDTH) 2: begin assign WR1_BE = WR1_BE_i[BE1_WIDTH-1 :0]; end default: begin assign WR1_BE[1:BE1_WIDTH] = 0; assign WR1_BE[BE1_WIDTH-1 :0] = WR1_BE_i[BE1_WIDTH-1 :0]; end endcase case (BE2_WIDTH) 2: begin assign WR2_BE = WR2_BE_i[BE2_WIDTH-1 :0]; end default: begin assign WR2_BE[1:BE2_WIDTH] = 0; assign WR2_BE[BE2_WIDTH-1 :0] = WR2_BE_i[BE2_WIDTH-1 :0]; end endcase assign REN_A1_i = 1'b0; assign WEN_A1_i = WEN1_i; assign BE_A1_i = WR1_BE; assign REN_A2_i = 1'b0; assign WEN_A2_i = WEN2_i; assign BE_A2_i = WR2_BE; assign REN_B1_i = REN1_i; assign WEN_B1_i = 1'b0; assign BE_B1_i = 2'h0; assign REN_B2_i = REN2_i; assign WEN_B2_i = 1'b0; assign BE_B2_i = 2'h0; generate if (WR1_DATA_WIDTH == 18) begin assign PORT_A1_WDATA[WR1_DATA_WIDTH-1:0] = WDATA1_i[WR1_DATA_WIDTH-1:0]; end else if (WR1_DATA_WIDTH == 9) begin assign PORT_A1_WDATA = {1'b0, WDATA1_i[8], 8'h0, WDATA1_i[7:0]}; end else begin assign PORT_A1_WDATA[17:WR1_DATA_WIDTH] = 0; assign PORT_A1_WDATA[WR1_DATA_WIDTH-1:0] = WDATA1_i[WR1_DATA_WIDTH-1:0]; end endgenerate assign WDATA_A1_i = PORT_A1_WDATA[17:0]; assign WDATA_B1_i = 18'h0; generate if (RD1_DATA_WIDTH == 9) begin assign PORT_B1_RDATA = { 9'h0, RDATA_B1_o[16], RDATA_B1_o[7:0]}; end else begin assign PORT_B1_RDATA = RDATA_B1_o; end endgenerate assign RDATA1_o = PORT_B1_RDATA[RD1_DATA_WIDTH-1:0]; generate if (WR2_DATA_WIDTH == 18) begin assign PORT_A2_WDATA[WR2_DATA_WIDTH-1:0] = WDATA2_i[WR2_DATA_WIDTH-1:0]; end else if (WR2_DATA_WIDTH == 9) begin assign PORT_A2_WDATA = {1'b0, WDATA2_i[8], 8'h0, WDATA2_i[7:0]}; end else begin assign PORT_A2_WDATA[17:WR2_DATA_WIDTH] = 0; assign PORT_A2_WDATA[WR2_DATA_WIDTH-1:0] = WDATA2_i[WR2_DATA_WIDTH-1:0]; end endgenerate assign WDATA_A2_i = PORT_A2_WDATA[17:0]; assign WDATA_B2_i = 18'h0; generate if (RD2_DATA_WIDTH == 9) begin assign PORT_B2_RDATA = { 9'h0, RDATA_B2_o[16], RDATA_B2_o[7:0]}; end else begin assign PORT_B2_RDATA = RDATA_B2_o; end endgenerate assign RDATA2_o = PORT_B2_RDATA[RD2_DATA_WIDTH-1:0]; defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b1, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_inferred = 0 *) (* is_split = 1 *) (* port_a1_dwidth = WR1_DATA_WIDTH *) (* port_a2_dwidth = WR2_DATA_WIDTH *) (* port_b1_dwidth = RD1_DATA_WIDTH *) (* port_b2_dwidth = RD2_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .CLK_A1_i(WR1_CLK_i), .ADDR_A1_i({1'b0,PORT_A1_ADDR}), .WEN_A1_i(WEN_A1_i), .BE_A1_i(BE_A1_i), .WDATA_A1_i(WDATA_A1_i), .REN_A1_i(REN_A1_i), .RDATA_A1_o(RDATA_A1_o), .CLK_A2_i(WR2_CLK_i), .ADDR_A2_i(PORT_A2_ADDR), .WEN_A2_i(WEN_A2_i), .BE_A2_i(BE_A2_i), .WDATA_A2_i(WDATA_A2_i), .REN_A2_i(REN_A2_i), .RDATA_A2_o(RDATA_A2_o), .CLK_B1_i(RD1_CLK_i), .ADDR_B1_i({1'b0,PORT_B1_ADDR}), .WEN_B1_i(WEN_B1_i), .BE_B1_i(BE_B1_i), .WDATA_B1_i(WDATA_B1_i), .REN_B1_i(REN_B1_i), .RDATA_B1_o(RDATA_B1_o), .CLK_B2_i(RD2_CLK_i), .ADDR_B2_i(PORT_B2_ADDR), .WEN_B2_i(WEN_B2_i), .BE_B2_i(BE_B2_i), .WDATA_B2_i(WDATA_B2_i), .REN_B2_i(REN_B2_i), .RDATA_B2_o(RDATA_B2_o), .FLUSH1_i(1'b0), .FLUSH2_i(1'b0) ); endmodule module BRAM2x18_SP ( RESET_ni, WEN1_i, REN1_i, WR1_CLK_i, RD1_CLK_i, WR1_BE_i, WR1_ADDR_i, RD1_ADDR_i, WDATA1_i, RDATA1_o, WEN2_i, REN2_i, WR2_CLK_i, RD2_CLK_i, WR2_BE_i, WR2_ADDR_i, RD2_ADDR_i, WDATA2_i, RDATA2_o ); parameter WR1_ADDR_WIDTH = 10; parameter RD1_ADDR_WIDTH = 10; parameter WR1_DATA_WIDTH = 18; parameter RD1_DATA_WIDTH = 18; parameter BE1_WIDTH = 2; parameter WR2_ADDR_WIDTH = 10; parameter RD2_ADDR_WIDTH = 10; parameter WR2_DATA_WIDTH = 18; parameter RD2_DATA_WIDTH = 18; parameter BE2_WIDTH = 2; input wire RESET_ni; input wire WEN1_i; input wire REN1_i; input wire WR1_CLK_i; input wire RD1_CLK_i; input wire [BE1_WIDTH-1:0] WR1_BE_i; input wire [WR1_ADDR_WIDTH-1 :0] WR1_ADDR_i; input wire [RD1_ADDR_WIDTH-1 :0] RD1_ADDR_i; input wire [WR1_DATA_WIDTH-1 :0] WDATA1_i; output wire [RD1_DATA_WIDTH-1 :0] RDATA1_o; input wire WEN2_i; input wire REN2_i; input wire WR2_CLK_i; input wire RD2_CLK_i; input wire [BE2_WIDTH-1:0] WR2_BE_i; input wire [WR2_ADDR_WIDTH-1 :0] WR2_ADDR_i; input wire [RD2_ADDR_WIDTH-1 :0] RD2_ADDR_i; input wire [WR2_DATA_WIDTH-1 :0] WDATA2_i; output wire [RD2_DATA_WIDTH-1 :0] RDATA2_o; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd0; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = 12'd10; localparam [11:0] UPAF1_i = 12'd10; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd0; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = 11'd10; localparam [10:0] UPAF2_i = 11'd10; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire REN_A1_i; wire REN_A2_i; wire REN_B1_i; wire REN_B2_i; wire WEN_A1_i; wire WEN_A2_i; wire WEN_B1_i; wire WEN_B2_i; wire [1:0] BE_A1_i; wire [1:0] BE_A2_i; wire [1:0] BE_B1_i; wire [1:0] BE_B2_i; wire [14:0] ADDR_A1_i; wire [13:0] ADDR_A2_i; wire [14:0] ADDR_B1_i; wire [13:0] ADDR_B2_i; wire [17:0] WDATA_A1_i; wire [17:0] WDATA_A2_i; wire [17:0] WDATA_B1_i; wire [17:0] WDATA_B2_i; wire [17:0] RDATA_A1_o; wire [17:0] RDATA_A2_o; wire [17:0] RDATA_B1_o; wire [17:0] RDATA_B2_o; wire [1:0] WR1_BE; wire [1:0] WR2_BE; wire [17:0] PORT_B1_RDATA; wire [17:0] PORT_A1_WDATA; wire [17:0] PORT_B2_RDATA; wire [17:0] PORT_A2_WDATA; wire [13:0] WR1_ADDR_INT; wire [13:0] RD1_ADDR_INT; wire [13:0] WR2_ADDR_INT; wire [13:0] RD2_ADDR_INT; wire [13:0] PORT_A1_ADDR; wire [13:0] PORT_B1_ADDR; wire [13:0] PORT_A2_ADDR; wire [13:0] PORT_B2_ADDR; // Set port width mode (In non-split mode A2/B2 is not active. Set same values anyway to match previous behavior.) localparam [ 2:0] RMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD2_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD2_DATA_WIDTH); generate if (WR1_ADDR_WIDTH == 14) begin assign WR1_ADDR_INT = WR1_ADDR_i; end else begin assign WR1_ADDR_INT[13:WR1_ADDR_WIDTH] = 0; assign WR1_ADDR_INT[WR1_ADDR_WIDTH-1:0] = WR1_ADDR_i; end endgenerate case (WR1_DATA_WIDTH) 1: begin assign PORT_A1_ADDR = WR1_ADDR_INT; end 2: begin assign PORT_A1_ADDR = WR1_ADDR_INT << 1; end 4: begin assign PORT_A1_ADDR = WR1_ADDR_INT << 2; end 8, 9: begin assign PORT_A1_ADDR = WR1_ADDR_INT << 3; end 16, 18: begin assign PORT_A1_ADDR = WR1_ADDR_INT << 4; end default: begin assign PORT_A1_ADDR = WR1_ADDR_INT; end endcase generate if (RD1_ADDR_WIDTH == 14) begin assign RD1_ADDR_INT = RD1_ADDR_i; end else begin assign RD1_ADDR_INT[13:RD1_ADDR_WIDTH] = 0; assign RD1_ADDR_INT[RD1_ADDR_WIDTH-1:0] = RD1_ADDR_i; end endgenerate case (RD1_DATA_WIDTH) 1: begin assign PORT_B1_ADDR = RD1_ADDR_INT; end 2: begin assign PORT_B1_ADDR = RD1_ADDR_INT << 1; end 4: begin assign PORT_B1_ADDR = RD1_ADDR_INT << 2; end 8, 9: begin assign PORT_B1_ADDR = RD1_ADDR_INT << 3; end 16, 18: begin assign PORT_B1_ADDR = RD1_ADDR_INT << 4; end default: begin assign PORT_B1_ADDR = RD1_ADDR_INT; end endcase generate if (WR2_ADDR_WIDTH == 14) begin assign WR2_ADDR_INT = WR2_ADDR_i; end else begin assign WR2_ADDR_INT[13:WR2_ADDR_WIDTH] = 0; assign WR2_ADDR_INT[WR2_ADDR_WIDTH-1:0] = WR2_ADDR_i; end endgenerate case (WR2_DATA_WIDTH) 1: begin assign PORT_A2_ADDR = WR2_ADDR_INT; end 2: begin assign PORT_A2_ADDR = WR2_ADDR_INT << 1; end 4: begin assign PORT_A2_ADDR = WR2_ADDR_INT << 2; end 8, 9: begin assign PORT_A2_ADDR = WR2_ADDR_INT << 3; end 16, 18: begin assign PORT_A2_ADDR = WR2_ADDR_INT << 4; end default: begin assign PORT_A2_ADDR = WR2_ADDR_INT; end endcase generate if (RD2_ADDR_WIDTH == 14) begin assign RD2_ADDR_INT = RD2_ADDR_i; end else begin assign RD2_ADDR_INT[13:RD2_ADDR_WIDTH] = 0; assign RD2_ADDR_INT[RD2_ADDR_WIDTH-1:0] = RD2_ADDR_i; end endgenerate case (RD2_DATA_WIDTH) 1: begin assign PORT_B2_ADDR = RD2_ADDR_INT; end 2: begin assign PORT_B2_ADDR = RD2_ADDR_INT << 1; end 4: begin assign PORT_B2_ADDR = RD2_ADDR_INT << 2; end 8, 9: begin assign PORT_B2_ADDR = RD2_ADDR_INT << 3; end 16, 18: begin assign PORT_B2_ADDR = RD2_ADDR_INT << 4; end default: begin assign PORT_B2_ADDR = RD2_ADDR_INT; end endcase case (BE1_WIDTH) 2: begin assign WR1_BE = WR1_BE_i[BE1_WIDTH-1 :0]; end default: begin assign WR1_BE[1:BE1_WIDTH] = 0; assign WR1_BE[BE1_WIDTH-1 :0] = WR1_BE_i[BE1_WIDTH-1 :0]; end endcase case (BE2_WIDTH) 2: begin assign WR2_BE = WR2_BE_i[BE2_WIDTH-1 :0]; end default: begin assign WR2_BE[1:BE2_WIDTH] = 0; assign WR2_BE[BE2_WIDTH-1 :0] = WR2_BE_i[BE2_WIDTH-1 :0]; end endcase assign REN_A1_i = 1'b0; assign WEN_A1_i = WEN1_i; assign BE_A1_i = WR1_BE; assign REN_A2_i = 1'b0; assign WEN_A2_i = WEN2_i; assign BE_A2_i = WR2_BE; assign REN_B1_i = REN1_i; assign WEN_B1_i = 1'b0; assign BE_B1_i = 2'h0; assign REN_B2_i = REN2_i; assign WEN_B2_i = 1'b0; assign BE_B2_i = 2'h0; generate if (WR1_DATA_WIDTH == 18) begin assign PORT_A1_WDATA[WR1_DATA_WIDTH-1:0] = WDATA1_i[WR1_DATA_WIDTH-1:0]; end else if (WR1_DATA_WIDTH == 9) begin assign PORT_A1_WDATA = {1'b0, WDATA1_i[8], 8'h0, WDATA1_i[7:0]}; end else begin assign PORT_A1_WDATA[17:WR1_DATA_WIDTH] = 0; assign PORT_A1_WDATA[WR1_DATA_WIDTH-1:0] = WDATA1_i[WR1_DATA_WIDTH-1:0]; end endgenerate assign WDATA_A1_i = PORT_A1_WDATA[17:0]; assign WDATA_B1_i = 18'h0; generate if (RD1_DATA_WIDTH == 9) begin assign PORT_B1_RDATA = { 9'h0, RDATA_B1_o[16], RDATA_B1_o[7:0]}; end else begin assign PORT_B1_RDATA = RDATA_B1_o; end endgenerate assign RDATA1_o = PORT_B1_RDATA[RD1_DATA_WIDTH-1:0]; generate if (WR2_DATA_WIDTH == 18) begin assign PORT_A2_WDATA[WR2_DATA_WIDTH-1:0] = WDATA2_i[WR2_DATA_WIDTH-1:0]; end else if (WR2_DATA_WIDTH == 9) begin assign PORT_A2_WDATA = {1'b0, WDATA2_i[8], 8'h0, WDATA2_i[7:0]}; end else begin assign PORT_A2_WDATA[17:WR2_DATA_WIDTH] = 0; assign PORT_A2_WDATA[WR2_DATA_WIDTH-1:0] = WDATA2_i[WR2_DATA_WIDTH-1:0]; end endgenerate assign WDATA_A2_i = PORT_A2_WDATA[17:0]; assign WDATA_B2_i = 18'h0; generate if (RD2_DATA_WIDTH == 9) begin assign PORT_B2_RDATA = { 9'h0, RDATA_B2_o[16], RDATA_B2_o[7:0]}; end else begin assign PORT_B2_RDATA = RDATA_B2_o; end endgenerate assign RDATA2_o = PORT_B2_RDATA[RD2_DATA_WIDTH-1:0]; defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b1, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_inferred = 0 *) (* is_split = 0 *) (* port_a_dwidth = WR1_DATA_WIDTH *) (* port_b_dwidth = RD1_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .CLK_A1_i(WR1_CLK_i), .ADDR_A1_i({1'b0,PORT_A1_ADDR}), .WEN_A1_i(WEN_A1_i), .BE_A1_i(BE_A1_i), .WDATA_A1_i(WDATA_A1_i), .REN_A1_i(REN_A1_i), .RDATA_A1_o(RDATA_A1_o), .CLK_A2_i(WR2_CLK_i), .ADDR_A2_i(PORT_A2_ADDR), .WEN_A2_i(WEN_A2_i), .BE_A2_i(BE_A2_i), .WDATA_A2_i(WDATA_A2_i), .REN_A2_i(REN_A2_i), .RDATA_A2_o(RDATA_A2_o), .CLK_B1_i(RD1_CLK_i), .ADDR_B1_i({1'b0,PORT_B1_ADDR}), .WEN_B1_i(WEN_B1_i), .BE_B1_i(BE_B1_i), .WDATA_B1_i(WDATA_B1_i), .REN_B1_i(REN_B1_i), .RDATA_B1_o(RDATA_B1_o), .CLK_B2_i(RD2_CLK_i), .ADDR_B2_i(PORT_B2_ADDR), .WEN_B2_i(WEN_B2_i), .BE_B2_i(BE_B2_i), .WDATA_B2_i(WDATA_B2_i), .REN_B2_i(REN_B2_i), .RDATA_B2_o(RDATA_B2_o), .FLUSH1_i(1'b0), .FLUSH2_i(1'b0) ); endmodule module RAM_18K_BLK ( WEN_i, REN_i, WR_CLK_i, RD_CLK_i, WR_BE_i, WR_ADDR_i, RD_ADDR_i, WDATA_i, RDATA_o ); parameter WR_ADDR_WIDTH = 10; parameter RD_ADDR_WIDTH = 10; parameter WR_DATA_WIDTH = 18; parameter RD_DATA_WIDTH = 18; parameter BE_WIDTH = 2; input wire WEN_i; input wire REN_i; input wire WR_CLK_i; input wire RD_CLK_i; input wire [BE_WIDTH-1:0] WR_BE_i; input wire [WR_ADDR_WIDTH-1 :0] WR_ADDR_i; input wire [RD_ADDR_WIDTH-1 :0] RD_ADDR_i; input wire [WR_DATA_WIDTH-1 :0] WDATA_i; output wire [RD_DATA_WIDTH-1 :0] RDATA_o; (* is_inferred = 0 *) (* is_split = 0 *) BRAM2x18_SP #( .WR1_ADDR_WIDTH(WR_ADDR_WIDTH), .RD1_ADDR_WIDTH(RD_ADDR_WIDTH), .WR1_DATA_WIDTH(WR_DATA_WIDTH), .RD1_DATA_WIDTH(RD_DATA_WIDTH), .BE1_WIDTH(BE_WIDTH), .WR2_ADDR_WIDTH(), .RD2_ADDR_WIDTH(), .WR2_DATA_WIDTH(), .RD2_DATA_WIDTH(), .BE2_WIDTH() ) U1 ( .RESET_ni(1'b1), .WEN1_i(WEN_i), .REN1_i(REN_i), .WR1_CLK_i(WR_CLK_i), .RD1_CLK_i(RD_CLK_i), .WR1_BE_i(WR_BE_i), .WR1_ADDR_i(WR_ADDR_i), .RD1_ADDR_i(RD_ADDR_i), .WDATA1_i(WDATA_i), .RDATA1_o(RDATA_o), .WEN2_i(1'b0), .REN2_i(1'b0), .WR2_CLK_i(1'b0), .RD2_CLK_i(1'b0), .WR2_BE_i(2'b00), .WR2_ADDR_i(14'h0), .RD2_ADDR_i(14'h0), .WDATA2_i(18'h0), .RDATA2_o() ); endmodule module RAM_36K_BLK ( WEN_i, REN_i, WR_CLK_i, RD_CLK_i, WR_BE_i, WR_ADDR_i, RD_ADDR_i, WDATA_i, RDATA_o ); parameter WR_ADDR_WIDTH = 10; parameter RD_ADDR_WIDTH = 10; parameter WR_DATA_WIDTH = 36; parameter RD_DATA_WIDTH = 36; parameter BE_WIDTH = 4; parameter INIT = 0; input wire WEN_i; input wire REN_i; input wire WR_CLK_i; input wire RD_CLK_i; input wire [BE_WIDTH-1:0] WR_BE_i; input wire [WR_ADDR_WIDTH-1 :0] WR_ADDR_i; input wire [RD_ADDR_WIDTH-1 :0] RD_ADDR_i; input wire [WR_DATA_WIDTH-1 :0] WDATA_i; output wire [RD_DATA_WIDTH-1 :0] RDATA_o; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd0; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = 12'd10; localparam [11:0] UPAF1_i = 12'd10; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd0; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = 11'd10; localparam [10:0] UPAF2_i = 11'd10; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire REN_A1_i; wire REN_A2_i; wire REN_B1_i; wire REN_B2_i; wire WEN_A1_i; wire WEN_A2_i; wire WEN_B1_i; wire WEN_B2_i; wire [1:0] BE_A1_i; wire [1:0] BE_A2_i; wire [1:0] BE_B1_i; wire [1:0] BE_B2_i; wire [14:0] ADDR_A1_i; wire [13:0] ADDR_A2_i; wire [14:0] ADDR_B1_i; wire [13:0] ADDR_B2_i; wire [17:0] WDATA_A1_i; wire [17:0] WDATA_A2_i; wire [17:0] WDATA_B1_i; wire [17:0] WDATA_B2_i; wire [17:0] RDATA_A1_o; wire [17:0] RDATA_A2_o; wire [17:0] RDATA_B1_o; wire [17:0] RDATA_B2_o; wire [3:0] WR_BE; wire [35:0] PORT_B_RDATA; wire [35:0] PORT_A_WDATA; wire [14:0] WR_ADDR_INT; wire [14:0] RD_ADDR_INT; wire [14:0] PORT_A_ADDR; wire [14:0] PORT_B_ADDR; wire PORT_A_CLK; wire PORT_B_CLK; // Set port width mode (In non-split mode A2/B2 is not active. Set same values anyway to match previous behavior.) localparam [ 2:0] RMODE_A1_i = mode(WR_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD_DATA_WIDTH); assign PORT_A_CLK = WR_CLK_i; assign PORT_B_CLK = RD_CLK_i; generate if (WR_ADDR_WIDTH == 15) begin assign WR_ADDR_INT = WR_ADDR_i; end else begin assign WR_ADDR_INT[14:WR_ADDR_WIDTH] = 0; assign WR_ADDR_INT[WR_ADDR_WIDTH-1:0] = WR_ADDR_i; end endgenerate case (WR_DATA_WIDTH) 1: begin assign PORT_A_ADDR = WR_ADDR_INT; end 2: begin assign PORT_A_ADDR = WR_ADDR_INT << 1; end 4: begin assign PORT_A_ADDR = WR_ADDR_INT << 2; end 8, 9: begin assign PORT_A_ADDR = WR_ADDR_INT << 3; end 16, 18: begin assign PORT_A_ADDR = WR_ADDR_INT << 4; end 32, 36: begin assign PORT_A_ADDR = WR_ADDR_INT << 5; end default: begin assign PORT_A_ADDR = WR_ADDR_INT; end endcase generate if (RD_ADDR_WIDTH == 15) begin assign RD_ADDR_INT = RD_ADDR_i; end else begin assign RD_ADDR_INT[14:RD_ADDR_WIDTH] = 0; assign RD_ADDR_INT[RD_ADDR_WIDTH-1:0] = RD_ADDR_i; end endgenerate case (RD_DATA_WIDTH) 1: begin assign PORT_B_ADDR = RD_ADDR_INT; end 2: begin assign PORT_B_ADDR = RD_ADDR_INT << 1; end 4: begin assign PORT_B_ADDR = RD_ADDR_INT << 2; end 8, 9: begin assign PORT_B_ADDR = RD_ADDR_INT << 3; end 16, 18: begin assign PORT_B_ADDR = RD_ADDR_INT << 4; end 32, 36: begin assign PORT_B_ADDR = RD_ADDR_INT << 5; end default: begin assign PORT_B_ADDR = RD_ADDR_INT; end endcase case (BE_WIDTH) 4: begin assign WR_BE = WR_BE_i[BE_WIDTH-1 :0]; end default: begin assign WR_BE[3:BE_WIDTH] = 0; assign WR_BE[BE_WIDTH-1 :0] = WR_BE_i[BE_WIDTH-1 :0]; end endcase assign REN_A1_i = 1'b0; assign WEN_A1_i = WEN_i; assign {BE_A2_i, BE_A1_i} = WR_BE; assign REN_B1_i = REN_i; assign WEN_B1_i = 1'b0; assign {BE_B2_i, BE_B1_i} = 4'h0; generate if (WR_DATA_WIDTH == 36) begin assign PORT_A_WDATA[WR_DATA_WIDTH-1:0] = WDATA_i[WR_DATA_WIDTH-1:0]; end else if (WR_DATA_WIDTH > 18 && WR_DATA_WIDTH < 36) begin assign PORT_A_WDATA[WR_DATA_WIDTH+1:18] = WDATA_i[WR_DATA_WIDTH-1:16]; assign PORT_A_WDATA[17:0] = {2'b00,WDATA_i[15:0]}; end else if (WR_DATA_WIDTH == 9) begin assign PORT_A_WDATA = {19'h0, WDATA_i[8], 8'h0, WDATA_i[7:0]}; end else begin assign PORT_A_WDATA[35:WR_DATA_WIDTH] = 0; assign PORT_A_WDATA[WR_DATA_WIDTH-1:0] = WDATA_i[WR_DATA_WIDTH-1:0]; end endgenerate assign WDATA_A1_i = PORT_A_WDATA[17:0]; assign WDATA_A2_i = PORT_A_WDATA[35:18]; assign WDATA_B1_i = 18'h0; assign WDATA_B2_i = 18'h0; generate if (RD_DATA_WIDTH == 36) begin assign PORT_B_RDATA = {RDATA_B2_o, RDATA_B1_o}; end else if (RD_DATA_WIDTH > 18 && RD_DATA_WIDTH < 36) begin assign PORT_B_RDATA = {2'b00,RDATA_B2_o[17:0],RDATA_B1_o[15:0]}; end else if (RD_DATA_WIDTH == 9) begin assign PORT_B_RDATA = { 27'h0, RDATA_B1_o[16], RDATA_B1_o[7:0]}; end else begin assign PORT_B_RDATA = {18'h0, RDATA_B1_o}; end endgenerate assign RDATA_o = PORT_B_RDATA[RD_DATA_WIDTH-1:0]; defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b0, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_inferred = 1 *) (* is_split = 0 *) (* port_a_width = WR_DATA_WIDTH *) (* port_b_width = RD_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .CLK_A1_i(PORT_A_CLK), .ADDR_A1_i(PORT_A_ADDR), .WEN_A1_i(WEN_A1_i), .BE_A1_i(BE_A1_i), .WDATA_A1_i(WDATA_A1_i), .REN_A1_i(REN_A1_i), .RDATA_A1_o(RDATA_A1_o), .CLK_A2_i(PORT_A_CLK), .ADDR_A2_i(PORT_A_ADDR[13:0]), .WEN_A2_i(WEN_A1_i), .BE_A2_i(BE_A2_i), .WDATA_A2_i(WDATA_A2_i), .REN_A2_i(REN_A1_i), .RDATA_A2_o(RDATA_A2_o), .CLK_B1_i(PORT_B_CLK), .ADDR_B1_i(PORT_B_ADDR), .WEN_B1_i(WEN_B1_i), .BE_B1_i(BE_B1_i), .WDATA_B1_i(WDATA_B1_i), .REN_B1_i(REN_B1_i), .RDATA_B1_o(RDATA_B1_o), .CLK_B2_i(PORT_B_CLK), .ADDR_B2_i(PORT_B_ADDR[13:0]), .WEN_B2_i(WEN_B1_i), .BE_B2_i(BE_B2_i), .WDATA_B2_i(WDATA_B2_i), .REN_B2_i(REN_B1_i), .RDATA_B2_o(RDATA_B2_o), .FLUSH1_i(1'b0), .FLUSH2_i(1'b0) ); endmodule module DPRAM_18K_X2_BLK ( PORT_A1_CLK_i, PORT_A1_WEN_i, PORT_A1_WR_BE_i, PORT_A1_REN_i, PORT_A1_ADDR_i, PORT_A1_WR_DATA_i, PORT_A1_RD_DATA_o, PORT_B1_CLK_i, PORT_B1_WEN_i, PORT_B1_WR_BE_i, PORT_B1_REN_i, PORT_B1_ADDR_i, PORT_B1_WR_DATA_i, PORT_B1_RD_DATA_o, PORT_A2_CLK_i, PORT_A2_WEN_i, PORT_A2_WR_BE_i, PORT_A2_REN_i, PORT_A2_ADDR_i, PORT_A2_WR_DATA_i, PORT_A2_RD_DATA_o, PORT_B2_CLK_i, PORT_B2_WEN_i, PORT_B2_WR_BE_i, PORT_B2_REN_i, PORT_B2_ADDR_i, PORT_B2_WR_DATA_i, PORT_B2_RD_DATA_o ); parameter PORT_A1_AWIDTH = 10; parameter PORT_A1_DWIDTH = 18; parameter PORT_A1_WR_BE_WIDTH = 2; parameter PORT_B1_AWIDTH = 10; parameter PORT_B1_DWIDTH = 18; parameter PORT_B1_WR_BE_WIDTH = 2; parameter PORT_A2_AWIDTH = 10; parameter PORT_A2_DWIDTH = 18; parameter PORT_A2_WR_BE_WIDTH = 2; parameter PORT_B2_AWIDTH = 10; parameter PORT_B2_DWIDTH = 18; parameter PORT_B2_WR_BE_WIDTH = 2; input wire PORT_A1_CLK_i; input wire [PORT_A1_AWIDTH-1:0] PORT_A1_ADDR_i; input wire [PORT_A1_DWIDTH-1:0] PORT_A1_WR_DATA_i; input wire PORT_A1_WEN_i; input wire [PORT_A1_WR_BE_WIDTH-1:0] PORT_A1_WR_BE_i; input wire PORT_A1_REN_i; output wire [PORT_A1_DWIDTH-1:0] PORT_A1_RD_DATA_o; input wire PORT_B1_CLK_i; input wire [PORT_B1_AWIDTH-1:0] PORT_B1_ADDR_i; input wire [PORT_B1_DWIDTH-1:0] PORT_B1_WR_DATA_i; input wire PORT_B1_WEN_i; input wire [PORT_B1_WR_BE_WIDTH-1:0] PORT_B1_WR_BE_i; input wire PORT_B1_REN_i; output wire [PORT_B1_DWIDTH-1:0] PORT_B1_RD_DATA_o; input wire PORT_A2_CLK_i; input wire [PORT_A2_AWIDTH-1:0] PORT_A2_ADDR_i; input wire [PORT_A2_DWIDTH-1:0] PORT_A2_WR_DATA_i; input wire PORT_A2_WEN_i; input wire [PORT_A2_WR_BE_WIDTH-1:0] PORT_A2_WR_BE_i; input wire PORT_A2_REN_i; output wire [PORT_A2_DWIDTH-1:0] PORT_A2_RD_DATA_o; input wire PORT_B2_CLK_i; input wire [PORT_B2_AWIDTH-1:0] PORT_B2_ADDR_i; input wire [PORT_B2_DWIDTH-1:0] PORT_B2_WR_DATA_i; input wire PORT_B2_WEN_i; input wire [PORT_B2_WR_BE_WIDTH-1:0] PORT_B2_WR_BE_i; input wire PORT_B2_REN_i; output wire [PORT_B2_DWIDTH-1:0] PORT_B2_RD_DATA_o; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd0; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = 12'd10; localparam [11:0] UPAF1_i = 12'd10; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd0; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = 11'd10; localparam [10:0] UPAF2_i = 11'd10; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire REN_A1_i; wire REN_A2_i; wire REN_B1_i; wire REN_B2_i; wire WEN_A1_i; wire WEN_A2_i; wire WEN_B1_i; wire WEN_B2_i; wire [1:0] BE_A1_i; wire [1:0] BE_A2_i; wire [1:0] BE_B1_i; wire [1:0] BE_B2_i; wire [14:0] ADDR_A1_i; wire [13:0] ADDR_A2_i; wire [14:0] ADDR_B1_i; wire [13:0] ADDR_B2_i; wire [17:0] WDATA_A1_i; wire [17:0] WDATA_A2_i; wire [17:0] WDATA_B1_i; wire [17:0] WDATA_B2_i; wire [17:0] RDATA_A1_o; wire [17:0] RDATA_A2_o; wire [17:0] RDATA_B1_o; wire [17:0] RDATA_B2_o; wire [1:0] PORT_A1_WR_BE; wire [1:0] PORT_B1_WR_BE; wire [1:0] PORT_A2_WR_BE; wire [1:0] PORT_B2_WR_BE; wire [17:0] PORT_B1_WDATA; wire [17:0] PORT_B1_RDATA; wire [17:0] PORT_A1_WDATA; wire [17:0] PORT_A1_RDATA; wire [17:0] PORT_B2_WDATA; wire [17:0] PORT_B2_RDATA; wire [17:0] PORT_A2_WDATA; wire [17:0] PORT_A2_RDATA; wire [13:0] PORT_A1_ADDR_INT; wire [13:0] PORT_B1_ADDR_INT; wire [13:0] PORT_A2_ADDR_INT; wire [13:0] PORT_B2_ADDR_INT; wire [13:0] PORT_A1_ADDR; wire [13:0] PORT_B1_ADDR; wire [13:0] PORT_A2_ADDR; wire [13:0] PORT_B2_ADDR; wire PORT_A1_CLK; wire PORT_B1_CLK; wire PORT_A2_CLK; wire PORT_B2_CLK; // Set port width mode (In non-split mode A2/B2 is not active. Set same values anyway to match previous behavior.) localparam [ 2:0] RMODE_A1_i = mode(PORT_A1_DWIDTH); localparam [ 2:0] WMODE_A1_i = mode(PORT_A1_DWIDTH); localparam [ 2:0] RMODE_A2_i = mode(PORT_A2_DWIDTH); localparam [ 2:0] WMODE_A2_i = mode(PORT_A2_DWIDTH); localparam [ 2:0] RMODE_B1_i = mode(PORT_B1_DWIDTH); localparam [ 2:0] WMODE_B1_i = mode(PORT_B1_DWIDTH); localparam [ 2:0] RMODE_B2_i = mode(PORT_B2_DWIDTH); localparam [ 2:0] WMODE_B2_i = mode(PORT_B2_DWIDTH); assign PORT_A1_CLK = PORT_A1_CLK_i; assign PORT_B1_CLK = PORT_B1_CLK_i; assign PORT_A2_CLK = PORT_A2_CLK_i; assign PORT_B2_CLK = PORT_B2_CLK_i; generate if (PORT_A1_AWIDTH == 14) begin assign PORT_A1_ADDR_INT = PORT_A1_ADDR_i; end else begin assign PORT_A1_ADDR_INT[13:PORT_A1_AWIDTH] = 0; assign PORT_A1_ADDR_INT[PORT_A1_AWIDTH-1:0] = PORT_A1_ADDR_i; end endgenerate case (PORT_A1_DWIDTH) 1: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT; end 2: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT << 1; end 4: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT << 2; end 8, 9: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT << 3; end 16, 18: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT << 4; end default: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT; end endcase generate if (PORT_B1_AWIDTH == 14) begin assign PORT_B1_ADDR_INT = PORT_B1_ADDR_i; end else begin assign PORT_B1_ADDR_INT[13:PORT_B1_AWIDTH] = 0; assign PORT_B1_ADDR_INT[PORT_B1_AWIDTH-1:0] = PORT_B1_ADDR_i; end endgenerate case (PORT_B1_DWIDTH) 1: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT; end 2: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT << 1; end 4: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT << 2; end 8, 9: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT << 3; end 16, 18: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT << 4; end default: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT; end endcase generate if (PORT_A2_AWIDTH == 14) begin assign PORT_A2_ADDR_INT = PORT_A2_ADDR_i; end else begin assign PORT_A2_ADDR_INT[13:PORT_A2_AWIDTH] = 0; assign PORT_A2_ADDR_INT[PORT_A2_AWIDTH-1:0] = PORT_A2_ADDR_i; end endgenerate case (PORT_A2_DWIDTH) 1: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT; end 2: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT << 1; end 4: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT << 2; end 8, 9: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT << 3; end 16, 18: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT << 4; end default: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT; end endcase generate if (PORT_B2_AWIDTH == 14) begin assign PORT_B2_ADDR_INT = PORT_B2_ADDR_i; end else begin assign PORT_B2_ADDR_INT[13:PORT_B2_AWIDTH] = 0; assign PORT_B2_ADDR_INT[PORT_B2_AWIDTH-1:0] = PORT_B2_ADDR_i; end endgenerate case (PORT_B2_DWIDTH) 1: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT; end 2: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT << 1; end 4: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT << 2; end 8, 9: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT << 3; end 16, 18: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT << 4; end default: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT; end endcase case (PORT_A1_WR_BE_WIDTH) 2: begin assign PORT_A1_WR_BE = PORT_A1_WR_BE_i[PORT_A1_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_A1_WR_BE[1:PORT_A1_WR_BE_WIDTH] = 0; assign PORT_A1_WR_BE[PORT_A1_WR_BE_WIDTH-1 :0] = PORT_A1_WR_BE_i[PORT_A1_WR_BE_WIDTH-1 :0]; end endcase case (PORT_B1_WR_BE_WIDTH) 2: begin assign PORT_B1_WR_BE = PORT_B1_WR_BE_i[PORT_B1_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_B1_WR_BE[1:PORT_B1_WR_BE_WIDTH] = 0; assign PORT_B1_WR_BE[PORT_B1_WR_BE_WIDTH-1 :0] = PORT_B1_WR_BE_i[PORT_B1_WR_BE_WIDTH-1 :0]; end endcase case (PORT_A2_WR_BE_WIDTH) 2: begin assign PORT_A2_WR_BE = PORT_A2_WR_BE_i[PORT_A2_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_A2_WR_BE[1:PORT_A2_WR_BE_WIDTH] = 0; assign PORT_A2_WR_BE[PORT_A2_WR_BE_WIDTH-1 :0] = PORT_A2_WR_BE_i[PORT_A2_WR_BE_WIDTH-1 :0]; end endcase case (PORT_B2_WR_BE_WIDTH) 2: begin assign PORT_B2_WR_BE = PORT_B2_WR_BE_i[PORT_B2_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_B2_WR_BE[1:PORT_B2_WR_BE_WIDTH] = 0; assign PORT_B2_WR_BE[PORT_B2_WR_BE_WIDTH-1 :0] = PORT_B2_WR_BE_i[PORT_B2_WR_BE_WIDTH-1 :0]; end endcase assign REN_A1_i = PORT_A1_REN_i; assign WEN_A1_i = PORT_A1_WEN_i; assign BE_A1_i = PORT_A1_WR_BE; assign REN_A2_i = PORT_A2_REN_i; assign WEN_A2_i = PORT_A2_WEN_i; assign BE_A2_i = PORT_A2_WR_BE; assign REN_B1_i = PORT_B1_REN_i; assign WEN_B1_i = PORT_B1_WEN_i; assign BE_B1_i = PORT_B1_WR_BE; assign REN_B2_i = PORT_B2_REN_i; assign WEN_B2_i = PORT_B2_WEN_i; assign BE_B2_i = PORT_B2_WR_BE; generate if (PORT_A1_DWIDTH == 18) begin assign PORT_A1_WDATA[PORT_A1_DWIDTH-1:0] = PORT_A1_WR_DATA_i[PORT_A1_DWIDTH-1:0]; end else if (PORT_A1_DWIDTH == 9) begin assign PORT_A1_WDATA = {1'b0, PORT_A1_WR_DATA_i[8], 8'h0, PORT_A1_WR_DATA_i[7:0]}; end else begin assign PORT_A1_WDATA[17:PORT_A1_DWIDTH] = 0; assign PORT_A1_WDATA[PORT_A1_DWIDTH-1:0] = PORT_A1_WR_DATA_i[PORT_A1_DWIDTH-1:0]; end endgenerate assign WDATA_A1_i = PORT_A1_WDATA; generate if (PORT_A2_DWIDTH == 18) begin assign PORT_A2_WDATA[PORT_A2_DWIDTH-1:0] = PORT_A2_WR_DATA_i[PORT_A2_DWIDTH-1:0]; end else if (PORT_A2_DWIDTH == 9) begin assign PORT_A2_WDATA = {1'b0, PORT_A2_WR_DATA_i[8], 8'h0, PORT_A2_WR_DATA_i[7:0]}; end else begin assign PORT_A2_WDATA[17:PORT_A2_DWIDTH] = 0; assign PORT_A2_WDATA[PORT_A2_DWIDTH-1:0] = PORT_A2_WR_DATA_i[PORT_A2_DWIDTH-1:0]; end endgenerate assign WDATA_A2_i = PORT_A2_WDATA; generate if (PORT_A1_DWIDTH == 9) begin assign PORT_A1_RDATA = { 9'h0, RDATA_A1_o[16], RDATA_A1_o[7:0]}; end else begin assign PORT_A1_RDATA = RDATA_A1_o; end endgenerate assign PORT_A1_RD_DATA_o = PORT_A1_RDATA[PORT_A1_DWIDTH-1:0]; generate if (PORT_A2_DWIDTH == 9) begin assign PORT_A2_RDATA = { 9'h0, RDATA_A2_o[16], RDATA_A2_o[7:0]}; end else begin assign PORT_A2_RDATA = RDATA_A2_o; end endgenerate assign PORT_A2_RD_DATA_o = PORT_A2_RDATA[PORT_A2_DWIDTH-1:0]; generate if (PORT_B1_DWIDTH == 18) begin assign PORT_B1_WDATA[PORT_B1_DWIDTH-1:0] = PORT_B1_WR_DATA_i[PORT_B1_DWIDTH-1:0]; end else if (PORT_B1_DWIDTH == 9) begin assign PORT_B1_WDATA = {1'b0, PORT_B1_WR_DATA_i[8], 8'h0, PORT_B1_WR_DATA_i[7:0]}; end else begin assign PORT_B1_WDATA[17:PORT_B1_DWIDTH] = 0; assign PORT_B1_WDATA[PORT_B1_DWIDTH-1:0] = PORT_B1_WR_DATA_i[PORT_B1_DWIDTH-1:0]; end endgenerate assign WDATA_B1_i = PORT_B1_WDATA; generate if (PORT_B2_DWIDTH == 18) begin assign PORT_B2_WDATA[PORT_B2_DWIDTH-1:0] = PORT_B2_WR_DATA_i[PORT_B2_DWIDTH-1:0]; end else if (PORT_B2_DWIDTH == 9) begin assign PORT_B2_WDATA = {1'b0, PORT_B2_WR_DATA_i[8], 8'h0, PORT_B2_WR_DATA_i[7:0]}; end else begin assign PORT_B2_WDATA[17:PORT_B2_DWIDTH] = 0; assign PORT_B2_WDATA[PORT_B2_DWIDTH-1:0] = PORT_B2_WR_DATA_i[PORT_B2_DWIDTH-1:0]; end endgenerate assign WDATA_B2_i = PORT_B2_WDATA; generate if (PORT_B1_DWIDTH == 9) begin assign PORT_B1_RDATA = { 9'h0, RDATA_B1_o[16], RDATA_B1_o[7:0]}; end else begin assign PORT_B1_RDATA = RDATA_B1_o; end endgenerate assign PORT_B1_RD_DATA_o = PORT_B1_RDATA[PORT_B1_DWIDTH-1:0]; generate if (PORT_B2_DWIDTH == 9) begin assign PORT_B2_RDATA = { 9'h0, RDATA_B2_o[16], RDATA_B2_o[7:0]}; end else begin assign PORT_B2_RDATA = RDATA_B2_o; end endgenerate assign PORT_B2_RD_DATA_o = PORT_B2_RDATA[PORT_B2_DWIDTH-1:0]; defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b1, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_inferred = 0 *) (* is_split = 1 *) (* port_a1_dwidth = PORT_A1_DWIDTH *) (* port_a2_dwidth = PORT_A2_DWIDTH *) (* port_b1_dwidth = PORT_B1_DWIDTH *) (* port_b2_dwidth = PORT_B2_DWIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .CLK_A1_i(PORT_A1_CLK), .ADDR_A1_i({1'b0,PORT_A1_ADDR}), .WEN_A1_i(WEN_A1_i), .BE_A1_i(BE_A1_i), .WDATA_A1_i(WDATA_A1_i), .REN_A1_i(REN_A1_i), .RDATA_A1_o(RDATA_A1_o), .CLK_A2_i(PORT_A2_CLK), .ADDR_A2_i(PORT_A2_ADDR), .WEN_A2_i(WEN_A2_i), .BE_A2_i(BE_A2_i), .WDATA_A2_i(WDATA_A2_i), .REN_A2_i(REN_A2_i), .RDATA_A2_o(RDATA_A2_o), .CLK_B1_i(PORT_B1_CLK), .ADDR_B1_i({1'b0,PORT_B1_ADDR}), .WEN_B1_i(WEN_B1_i), .BE_B1_i(BE_B1_i), .WDATA_B1_i(WDATA_B1_i), .REN_B1_i(REN_B1_i), .RDATA_B1_o(RDATA_B1_o), .CLK_B2_i(PORT_B2_CLK), .ADDR_B2_i(PORT_B2_ADDR), .WEN_B2_i(WEN_B2_i), .BE_B2_i(BE_B2_i), .WDATA_B2_i(WDATA_B2_i), .REN_B2_i(REN_B2_i), .RDATA_B2_o(RDATA_B2_o), .FLUSH1_i(1'b0), .FLUSH2_i(1'b0) ); endmodule module BRAM2x18_dP ( PORT_A1_CLK_i, PORT_A1_WEN_i, PORT_A1_WR_BE_i, PORT_A1_REN_i, PORT_A1_ADDR_i, PORT_A1_WR_DATA_i, PORT_A1_RD_DATA_o, PORT_B1_CLK_i, PORT_B1_WEN_i, PORT_B1_WR_BE_i, PORT_B1_REN_i, PORT_B1_ADDR_i, PORT_B1_WR_DATA_i, PORT_B1_RD_DATA_o, PORT_A2_CLK_i, PORT_A2_WEN_i, PORT_A2_WR_BE_i, PORT_A2_REN_i, PORT_A2_ADDR_i, PORT_A2_WR_DATA_i, PORT_A2_RD_DATA_o, PORT_B2_CLK_i, PORT_B2_WEN_i, PORT_B2_WR_BE_i, PORT_B2_REN_i, PORT_B2_ADDR_i, PORT_B2_WR_DATA_i, PORT_B2_RD_DATA_o ); parameter PORT_A1_AWIDTH = 10; parameter PORT_A1_DWIDTH = 18; parameter PORT_A1_WR_BE_WIDTH = 2; parameter PORT_B1_AWIDTH = 10; parameter PORT_B1_DWIDTH = 18; parameter PORT_B1_WR_BE_WIDTH = 2; parameter PORT_A2_AWIDTH = 10; parameter PORT_A2_DWIDTH = 18; parameter PORT_A2_WR_BE_WIDTH = 2; parameter PORT_B2_AWIDTH = 10; parameter PORT_B2_DWIDTH = 18; parameter PORT_B2_WR_BE_WIDTH = 2; input wire PORT_A1_CLK_i; input wire [PORT_A1_AWIDTH-1:0] PORT_A1_ADDR_i; input wire [PORT_A1_DWIDTH-1:0] PORT_A1_WR_DATA_i; input wire PORT_A1_WEN_i; input wire [PORT_A1_WR_BE_WIDTH-1:0] PORT_A1_WR_BE_i; input wire PORT_A1_REN_i; output wire [PORT_A1_DWIDTH-1:0] PORT_A1_RD_DATA_o; input wire PORT_B1_CLK_i; input wire [PORT_B1_AWIDTH-1:0] PORT_B1_ADDR_i; input wire [PORT_B1_DWIDTH-1:0] PORT_B1_WR_DATA_i; input wire PORT_B1_WEN_i; input wire [PORT_B1_WR_BE_WIDTH-1:0] PORT_B1_WR_BE_i; input wire PORT_B1_REN_i; output wire [PORT_B1_DWIDTH-1:0] PORT_B1_RD_DATA_o; input wire PORT_A2_CLK_i; input wire [PORT_A2_AWIDTH-1:0] PORT_A2_ADDR_i; input wire [PORT_A2_DWIDTH-1:0] PORT_A2_WR_DATA_i; input wire PORT_A2_WEN_i; input wire [PORT_A2_WR_BE_WIDTH-1:0] PORT_A2_WR_BE_i; input wire PORT_A2_REN_i; output wire [PORT_A2_DWIDTH-1:0] PORT_A2_RD_DATA_o; input wire PORT_B2_CLK_i; input wire [PORT_B2_AWIDTH-1:0] PORT_B2_ADDR_i; input wire [PORT_B2_DWIDTH-1:0] PORT_B2_WR_DATA_i; input wire PORT_B2_WEN_i; input wire [PORT_B2_WR_BE_WIDTH-1:0] PORT_B2_WR_BE_i; input wire PORT_B2_REN_i; output wire [PORT_B2_DWIDTH-1:0] PORT_B2_RD_DATA_o; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd0; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = 12'd10; localparam [11:0] UPAF1_i = 12'd10; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd0; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = 11'd10; localparam [10:0] UPAF2_i = 11'd10; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire REN_A1_i; wire REN_A2_i; wire REN_B1_i; wire REN_B2_i; wire WEN_A1_i; wire WEN_A2_i; wire WEN_B1_i; wire WEN_B2_i; wire [1:0] BE_A1_i; wire [1:0] BE_A2_i; wire [1:0] BE_B1_i; wire [1:0] BE_B2_i; wire [14:0] ADDR_A1_i; wire [13:0] ADDR_A2_i; wire [14:0] ADDR_B1_i; wire [13:0] ADDR_B2_i; wire [17:0] WDATA_A1_i; wire [17:0] WDATA_A2_i; wire [17:0] WDATA_B1_i; wire [17:0] WDATA_B2_i; wire [17:0] RDATA_A1_o; wire [17:0] RDATA_A2_o; wire [17:0] RDATA_B1_o; wire [17:0] RDATA_B2_o; wire [1:0] PORT_A1_WR_BE; wire [1:0] PORT_B1_WR_BE; wire [1:0] PORT_A2_WR_BE; wire [1:0] PORT_B2_WR_BE; wire [17:0] PORT_B1_WDATA; wire [17:0] PORT_B1_RDATA; wire [17:0] PORT_A1_WDATA; wire [17:0] PORT_A1_RDATA; wire [17:0] PORT_B2_WDATA; wire [17:0] PORT_B2_RDATA; wire [17:0] PORT_A2_WDATA; wire [17:0] PORT_A2_RDATA; wire [13:0] PORT_A1_ADDR_INT; wire [13:0] PORT_B1_ADDR_INT; wire [13:0] PORT_A2_ADDR_INT; wire [13:0] PORT_B2_ADDR_INT; wire [13:0] PORT_A1_ADDR; wire [13:0] PORT_B1_ADDR; wire [13:0] PORT_A2_ADDR; wire [13:0] PORT_B2_ADDR; wire PORT_A1_CLK; wire PORT_B1_CLK; wire PORT_A2_CLK; wire PORT_B2_CLK; // Set port width mode (In non-split mode A2/B2 is not active. Set same values anyway to match previous behavior.) localparam [ 2:0] RMODE_A1_i = mode(PORT_A1_DWIDTH); localparam [ 2:0] WMODE_A1_i = mode(PORT_A1_DWIDTH); localparam [ 2:0] RMODE_A2_i = mode(PORT_A2_DWIDTH); localparam [ 2:0] WMODE_A2_i = mode(PORT_A2_DWIDTH); localparam [ 2:0] RMODE_B1_i = mode(PORT_B1_DWIDTH); localparam [ 2:0] WMODE_B1_i = mode(PORT_B1_DWIDTH); localparam [ 2:0] RMODE_B2_i = mode(PORT_B2_DWIDTH); localparam [ 2:0] WMODE_B2_i = mode(PORT_B2_DWIDTH); assign PORT_A1_CLK = PORT_A1_CLK_i; assign PORT_B1_CLK = PORT_B1_CLK_i; assign PORT_A2_CLK = PORT_A2_CLK_i; assign PORT_B2_CLK = PORT_B2_CLK_i; generate if (PORT_A1_AWIDTH == 14) begin assign PORT_A1_ADDR_INT = PORT_A1_ADDR_i; end else begin assign PORT_A1_ADDR_INT[13:PORT_A1_AWIDTH] = 0; assign PORT_A1_ADDR_INT[PORT_A1_AWIDTH-1:0] = PORT_A1_ADDR_i; end endgenerate case (PORT_A1_DWIDTH) 1: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT; end 2: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT << 1; end 4: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT << 2; end 8, 9: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT << 3; end 16, 18: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT << 4; end default: begin assign PORT_A1_ADDR = PORT_A1_ADDR_INT; end endcase generate if (PORT_B1_AWIDTH == 14) begin assign PORT_B1_ADDR_INT = PORT_B1_ADDR_i; end else begin assign PORT_B1_ADDR_INT[13:PORT_B1_AWIDTH] = 0; assign PORT_B1_ADDR_INT[PORT_B1_AWIDTH-1:0] = PORT_B1_ADDR_i; end endgenerate case (PORT_B1_DWIDTH) 1: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT; end 2: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT << 1; end 4: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT << 2; end 8, 9: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT << 3; end 16, 18: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT << 4; end default: begin assign PORT_B1_ADDR = PORT_B1_ADDR_INT; end endcase generate if (PORT_A2_AWIDTH == 14) begin assign PORT_A2_ADDR_INT = PORT_A2_ADDR_i; end else begin assign PORT_A2_ADDR_INT[13:PORT_A2_AWIDTH] = 0; assign PORT_A2_ADDR_INT[PORT_A2_AWIDTH-1:0] = PORT_A2_ADDR_i; end endgenerate case (PORT_A2_DWIDTH) 1: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT; end 2: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT << 1; end 4: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT << 2; end 8, 9: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT << 3; end 16, 18: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT << 4; end default: begin assign PORT_A2_ADDR = PORT_A2_ADDR_INT; end endcase generate if (PORT_B2_AWIDTH == 14) begin assign PORT_B2_ADDR_INT = PORT_B2_ADDR_i; end else begin assign PORT_B2_ADDR_INT[13:PORT_B2_AWIDTH] = 0; assign PORT_B2_ADDR_INT[PORT_B2_AWIDTH-1:0] = PORT_B2_ADDR_i; end endgenerate case (PORT_B2_DWIDTH) 1: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT; end 2: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT << 1; end 4: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT << 2; end 8, 9: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT << 3; end 16, 18: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT << 4; end default: begin assign PORT_B2_ADDR = PORT_B2_ADDR_INT; end endcase case (PORT_A1_WR_BE_WIDTH) 2: begin assign PORT_A1_WR_BE = PORT_A1_WR_BE_i[PORT_A1_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_A1_WR_BE[1:PORT_A1_WR_BE_WIDTH] = 0; assign PORT_A1_WR_BE[PORT_A1_WR_BE_WIDTH-1 :0] = PORT_A1_WR_BE_i[PORT_A1_WR_BE_WIDTH-1 :0]; end endcase case (PORT_B1_WR_BE_WIDTH) 2: begin assign PORT_B1_WR_BE = PORT_B1_WR_BE_i[PORT_B1_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_B1_WR_BE[1:PORT_B1_WR_BE_WIDTH] = 0; assign PORT_B1_WR_BE[PORT_B1_WR_BE_WIDTH-1 :0] = PORT_B1_WR_BE_i[PORT_B1_WR_BE_WIDTH-1 :0]; end endcase case (PORT_A2_WR_BE_WIDTH) 2: begin assign PORT_A2_WR_BE = PORT_A2_WR_BE_i[PORT_A2_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_A2_WR_BE[1:PORT_A2_WR_BE_WIDTH] = 0; assign PORT_A2_WR_BE[PORT_A2_WR_BE_WIDTH-1 :0] = PORT_A2_WR_BE_i[PORT_A2_WR_BE_WIDTH-1 :0]; end endcase case (PORT_B2_WR_BE_WIDTH) 2: begin assign PORT_B2_WR_BE = PORT_B2_WR_BE_i[PORT_B2_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_B2_WR_BE[1:PORT_B2_WR_BE_WIDTH] = 0; assign PORT_B2_WR_BE[PORT_B2_WR_BE_WIDTH-1 :0] = PORT_B2_WR_BE_i[PORT_B2_WR_BE_WIDTH-1 :0]; end endcase assign REN_A1_i = PORT_A1_REN_i; assign WEN_A1_i = PORT_A1_WEN_i; assign BE_A1_i = PORT_A1_WR_BE; assign REN_A2_i = PORT_A2_REN_i; assign WEN_A2_i = PORT_A2_WEN_i; assign BE_A2_i = PORT_A2_WR_BE; assign REN_B1_i = PORT_B1_REN_i; assign WEN_B1_i = PORT_B1_WEN_i; assign BE_B1_i = PORT_B1_WR_BE; assign REN_B2_i = PORT_B2_REN_i; assign WEN_B2_i = PORT_B2_WEN_i; assign BE_B2_i = PORT_B2_WR_BE; generate if (PORT_A1_DWIDTH == 18) begin assign PORT_A1_WDATA[PORT_A1_DWIDTH-1:0] = PORT_A1_WR_DATA_i[PORT_A1_DWIDTH-1:0]; end else if (PORT_A1_DWIDTH == 9) begin assign PORT_A1_WDATA = {1'b0, PORT_A1_WR_DATA_i[8], 8'h0, PORT_A1_WR_DATA_i[7:0]}; end else begin assign PORT_A1_WDATA[17:PORT_A1_DWIDTH] = 0; assign PORT_A1_WDATA[PORT_A1_DWIDTH-1:0] = PORT_A1_WR_DATA_i[PORT_A1_DWIDTH-1:0]; end endgenerate assign WDATA_A1_i = PORT_A1_WDATA; generate if (PORT_A2_DWIDTH == 18) begin assign PORT_A2_WDATA[PORT_A2_DWIDTH-1:0] = PORT_A2_WR_DATA_i[PORT_A2_DWIDTH-1:0]; end else if (PORT_A2_DWIDTH == 9) begin assign PORT_A2_WDATA = {1'b0, PORT_A2_WR_DATA_i[8], 8'h0, PORT_A2_WR_DATA_i[7:0]}; end else begin assign PORT_A2_WDATA[17:PORT_A2_DWIDTH] = 0; assign PORT_A2_WDATA[PORT_A2_DWIDTH-1:0] = PORT_A2_WR_DATA_i[PORT_A2_DWIDTH-1:0]; end endgenerate assign WDATA_A2_i = PORT_A2_WDATA; generate if (PORT_A1_DWIDTH == 9) begin assign PORT_A1_RDATA = { 9'h0, RDATA_A1_o[16], RDATA_A1_o[7:0]}; end else begin assign PORT_A1_RDATA = RDATA_A1_o; end endgenerate assign PORT_A1_RD_DATA_o = PORT_A1_RDATA[PORT_A1_DWIDTH-1:0]; generate if (PORT_A2_DWIDTH == 9) begin assign PORT_A2_RDATA = { 9'h0, RDATA_A2_o[16], RDATA_A2_o[7:0]}; end else begin assign PORT_A2_RDATA = RDATA_A2_o; end endgenerate assign PORT_A2_RD_DATA_o = PORT_A2_RDATA[PORT_A2_DWIDTH-1:0]; generate if (PORT_B1_DWIDTH == 18) begin assign PORT_B1_WDATA[PORT_B1_DWIDTH-1:0] = PORT_B1_WR_DATA_i[PORT_B1_DWIDTH-1:0]; end else if (PORT_B1_DWIDTH == 9) begin assign PORT_B1_WDATA = {1'b0, PORT_B1_WR_DATA_i[8], 8'h0, PORT_B1_WR_DATA_i[7:0]}; end else begin assign PORT_B1_WDATA[17:PORT_B1_DWIDTH] = 0; assign PORT_B1_WDATA[PORT_B1_DWIDTH-1:0] = PORT_B1_WR_DATA_i[PORT_B1_DWIDTH-1:0]; end endgenerate assign WDATA_B1_i = PORT_B1_WDATA; generate if (PORT_B2_DWIDTH == 18) begin assign PORT_B2_WDATA[PORT_B2_DWIDTH-1:0] = PORT_B2_WR_DATA_i[PORT_B2_DWIDTH-1:0]; end else if (PORT_B2_DWIDTH == 9) begin assign PORT_B2_WDATA = {1'b0, PORT_B2_WR_DATA_i[8], 8'h0, PORT_B2_WR_DATA_i[7:0]}; end else begin assign PORT_B2_WDATA[17:PORT_B2_DWIDTH] = 0; assign PORT_B2_WDATA[PORT_B2_DWIDTH-1:0] = PORT_B2_WR_DATA_i[PORT_B2_DWIDTH-1:0]; end endgenerate assign WDATA_B2_i = PORT_B2_WDATA; generate if (PORT_B1_DWIDTH == 9) begin assign PORT_B1_RDATA = { 9'h0, RDATA_B1_o[16], RDATA_B1_o[7:0]}; end else begin assign PORT_B1_RDATA = RDATA_B1_o; end endgenerate assign PORT_B1_RD_DATA_o = PORT_B1_RDATA[PORT_B1_DWIDTH-1:0]; generate if (PORT_B2_DWIDTH == 9) begin assign PORT_B2_RDATA = { 9'h0, RDATA_B2_o[16], RDATA_B2_o[7:0]}; end else begin assign PORT_B2_RDATA = RDATA_B2_o; end endgenerate assign PORT_B2_RD_DATA_o = PORT_B2_RDATA[PORT_B2_DWIDTH-1:0]; defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b1, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_inferred = 0 *) (* is_split = 0 *) (* port_a_dwidth = PORT_A1_DWIDTH *) (* port_b_dwidth = PORT_B1_DWIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .CLK_A1_i(PORT_A1_CLK), .ADDR_A1_i({1'b0,PORT_A1_ADDR}), .WEN_A1_i(WEN_A1_i), .BE_A1_i(BE_A1_i), .WDATA_A1_i(WDATA_A1_i), .REN_A1_i(REN_A1_i), .RDATA_A1_o(RDATA_A1_o), .CLK_A2_i(PORT_A2_CLK), .ADDR_A2_i(PORT_A2_ADDR), .WEN_A2_i(WEN_A2_i), .BE_A2_i(BE_A2_i), .WDATA_A2_i(WDATA_A2_i), .REN_A2_i(REN_A2_i), .RDATA_A2_o(RDATA_A2_o), .CLK_B1_i(PORT_B1_CLK), .ADDR_B1_i({1'b0,PORT_B1_ADDR}), .WEN_B1_i(WEN_B1_i), .BE_B1_i(BE_B1_i), .WDATA_B1_i(WDATA_B1_i), .REN_B1_i(REN_B1_i), .RDATA_B1_o(RDATA_B1_o), .CLK_B2_i(PORT_B2_CLK), .ADDR_B2_i(PORT_B2_ADDR), .WEN_B2_i(WEN_B2_i), .BE_B2_i(BE_B2_i), .WDATA_B2_i(WDATA_B2_i), .REN_B2_i(REN_B2_i), .RDATA_B2_o(RDATA_B2_o), .FLUSH1_i(1'b0), .FLUSH2_i(1'b0) ); endmodule module DPRAM_18K_BLK ( PORT_A_CLK_i, PORT_A_WEN_i, PORT_A_WR_BE_i, PORT_A_REN_i, PORT_A_ADDR_i, PORT_A_WR_DATA_i, PORT_A_RD_DATA_o, PORT_B_CLK_i, PORT_B_WEN_i, PORT_B_WR_BE_i, PORT_B_REN_i, PORT_B_ADDR_i, PORT_B_WR_DATA_i, PORT_B_RD_DATA_o ); parameter PORT_A_AWIDTH = 10; parameter PORT_A_DWIDTH = 36; parameter PORT_A_WR_BE_WIDTH = 4; parameter PORT_B_AWIDTH = 10; parameter PORT_B_DWIDTH = 36; parameter PORT_B_WR_BE_WIDTH = 4; input wire PORT_A_CLK_i; input wire [PORT_A_AWIDTH-1:0] PORT_A_ADDR_i; input wire [PORT_A_DWIDTH-1:0] PORT_A_WR_DATA_i; input wire PORT_A_WEN_i; input wire [PORT_A_WR_BE_WIDTH-1:0] PORT_A_WR_BE_i; input wire PORT_A_REN_i; output wire [PORT_A_DWIDTH-1:0] PORT_A_RD_DATA_o; input wire PORT_B_CLK_i; input wire [PORT_B_AWIDTH-1:0] PORT_B_ADDR_i; input wire [PORT_B_DWIDTH-1:0] PORT_B_WR_DATA_i; input wire PORT_B_WEN_i; input wire [PORT_B_WR_BE_WIDTH-1:0] PORT_B_WR_BE_i; input wire PORT_B_REN_i; output wire [PORT_B_DWIDTH-1:0] PORT_B_RD_DATA_o; (* is_inferred = 0 *) (* is_split = 0 *) BRAM2x18_dP #( .PORT_A1_AWIDTH(PORT_A_AWIDTH), .PORT_A1_DWIDTH(PORT_A_DWIDTH), .PORT_A1_WR_BE_WIDTH(PORT_A_WR_BE_WIDTH), .PORT_B1_AWIDTH(PORT_B_AWIDTH), .PORT_B1_DWIDTH(PORT_B_DWIDTH), .PORT_B1_WR_BE_WIDTH(PORT_B_WR_BE_WIDTH), .PORT_A2_AWIDTH(), .PORT_A2_DWIDTH(), .PORT_A2_WR_BE_WIDTH(), .PORT_B2_AWIDTH(), .PORT_B2_DWIDTH(), .PORT_B2_WR_BE_WIDTH() ) U1 ( .PORT_A1_CLK_i(PORT_A_CLK_i), .PORT_A1_WEN_i(PORT_A_WEN_i), .PORT_A1_WR_BE_i(PORT_A_WR_BE_i), .PORT_A1_REN_i(PORT_A_REN_i), .PORT_A1_ADDR_i(PORT_A_ADDR_i), .PORT_A1_WR_DATA_i(PORT_A_WR_DATA_i), .PORT_A1_RD_DATA_o(PORT_A_RD_DATA_o), .PORT_B1_CLK_i(PORT_B_CLK_i), .PORT_B1_WEN_i(PORT_B_WEN_i), .PORT_B1_WR_BE_i(PORT_B_WR_BE_i), .PORT_B1_REN_i(PORT_B_REN_i), .PORT_B1_ADDR_i(PORT_B_ADDR_i), .PORT_B1_WR_DATA_i(PORT_B_WR_DATA_i), .PORT_B1_RD_DATA_o(PORT_B_RD_DATA_o), .PORT_A2_CLK_i(1'b0), .PORT_A2_WEN_i(1'b0), .PORT_A2_WR_BE_i(2'b00), .PORT_A2_REN_i(1'b0), .PORT_A2_ADDR_i(14'h0), .PORT_A2_WR_DATA_i(18'h0), .PORT_A2_RD_DATA_o(), .PORT_B2_CLK_i(1'b0), .PORT_B2_WEN_i(1'b0), .PORT_B2_WR_BE_i(2'b00), .PORT_B2_REN_i(1'b0), .PORT_B2_ADDR_i(14'h0), .PORT_B2_WR_DATA_i(18'h0), .PORT_B2_RD_DATA_o() ); endmodule module DPRAM_36K_BLK ( PORT_A_CLK_i, PORT_A_WEN_i, PORT_A_WR_BE_i, PORT_A_REN_i, PORT_A_ADDR_i, PORT_A_WR_DATA_i, PORT_A_RD_DATA_o, PORT_B_CLK_i, PORT_B_WEN_i, PORT_B_WR_BE_i, PORT_B_REN_i, PORT_B_ADDR_i, PORT_B_WR_DATA_i, PORT_B_RD_DATA_o ); parameter PORT_A_AWIDTH = 10; parameter PORT_A_DWIDTH = 36; parameter PORT_A_WR_BE_WIDTH = 4; parameter PORT_B_AWIDTH = 10; parameter PORT_B_DWIDTH = 36; parameter PORT_B_WR_BE_WIDTH = 4; input wire PORT_A_CLK_i; input wire [PORT_A_AWIDTH-1:0] PORT_A_ADDR_i; input wire [PORT_A_DWIDTH-1:0] PORT_A_WR_DATA_i; input wire PORT_A_WEN_i; input wire [PORT_A_WR_BE_WIDTH-1:0] PORT_A_WR_BE_i; input wire PORT_A_REN_i; output wire [PORT_A_DWIDTH-1:0] PORT_A_RD_DATA_o; input wire PORT_B_CLK_i; input wire [PORT_B_AWIDTH-1:0] PORT_B_ADDR_i; input wire [PORT_B_DWIDTH-1:0] PORT_B_WR_DATA_i; input wire PORT_B_WEN_i; input wire [PORT_B_WR_BE_WIDTH-1:0] PORT_B_WR_BE_i; input wire PORT_B_REN_i; output wire [PORT_B_DWIDTH-1:0] PORT_B_RD_DATA_o; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd0; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = 12'd10; localparam [11:0] UPAF1_i = 12'd10; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd0; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = 11'd10; localparam [10:0] UPAF2_i = 11'd10; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire REN_A1_i; wire REN_A2_i; wire REN_B1_i; wire REN_B2_i; wire WEN_A1_i; wire WEN_A2_i; wire WEN_B1_i; wire WEN_B2_i; wire [1:0] BE_A1_i; wire [1:0] BE_A2_i; wire [1:0] BE_B1_i; wire [1:0] BE_B2_i; wire [14:0] ADDR_A1_i; wire [13:0] ADDR_A2_i; wire [14:0] ADDR_B1_i; wire [13:0] ADDR_B2_i; wire [17:0] WDATA_A1_i; wire [17:0] WDATA_A2_i; wire [17:0] WDATA_B1_i; wire [17:0] WDATA_B2_i; wire [17:0] RDATA_A1_o; wire [17:0] RDATA_A2_o; wire [17:0] RDATA_B1_o; wire [17:0] RDATA_B2_o; wire [3:0] PORT_A_WR_BE; wire [3:0] PORT_B_WR_BE; wire [35:0] PORT_B_WDATA; wire [35:0] PORT_B_RDATA; wire [35:0] PORT_A_WDATA; wire [35:0] PORT_A_RDATA; wire [14:0] PORT_A_ADDR_INT; wire [14:0] PORT_B_ADDR_INT; wire [14:0] PORT_A_ADDR; wire [14:0] PORT_B_ADDR; wire PORT_A_CLK; wire PORT_B_CLK; // Set port width mode (In non-split mode A2/B2 is not active. Set same values anyway to match previous behavior.) localparam [ 2:0] RMODE_A1_i = mode(PORT_A_DWIDTH); localparam [ 2:0] WMODE_A1_i = mode(PORT_A_DWIDTH); localparam [ 2:0] RMODE_A2_i = mode(PORT_A_DWIDTH); localparam [ 2:0] WMODE_A2_i = mode(PORT_A_DWIDTH); localparam [ 2:0] RMODE_B1_i = mode(PORT_B_DWIDTH); localparam [ 2:0] WMODE_B1_i = mode(PORT_B_DWIDTH); localparam [ 2:0] RMODE_B2_i = mode(PORT_B_DWIDTH); localparam [ 2:0] WMODE_B2_i = mode(PORT_B_DWIDTH); assign PORT_A_CLK = PORT_A_CLK_i; assign PORT_B_CLK = PORT_B_CLK_i; generate if (PORT_A_AWIDTH == 15) begin assign PORT_A_ADDR_INT = PORT_A_ADDR_i; end else begin assign PORT_A_ADDR_INT[14:PORT_A_AWIDTH] = 0; assign PORT_A_ADDR_INT[PORT_A_AWIDTH-1:0] = PORT_A_ADDR_i; end endgenerate case (PORT_A_DWIDTH) 1: begin assign PORT_A_ADDR = PORT_A_ADDR_INT; end 2: begin assign PORT_A_ADDR = PORT_A_ADDR_INT << 1; end 4: begin assign PORT_A_ADDR = PORT_A_ADDR_INT << 2; end 8, 9: begin assign PORT_A_ADDR = PORT_A_ADDR_INT << 3; end 16, 18: begin assign PORT_A_ADDR = PORT_A_ADDR_INT << 4; end 32, 36: begin assign PORT_A_ADDR = PORT_A_ADDR_INT << 5; end default: begin assign PORT_A_ADDR = PORT_A_ADDR_INT; end endcase generate if (PORT_B_AWIDTH == 15) begin assign PORT_B_ADDR_INT = PORT_B_ADDR_i; end else begin assign PORT_B_ADDR_INT[14:PORT_B_AWIDTH] = 0; assign PORT_B_ADDR_INT[PORT_B_AWIDTH-1:0] = PORT_B_ADDR_i; end endgenerate case (PORT_B_DWIDTH) 1: begin assign PORT_B_ADDR = PORT_B_ADDR_INT; end 2: begin assign PORT_B_ADDR = PORT_B_ADDR_INT << 1; end 4: begin assign PORT_B_ADDR = PORT_B_ADDR_INT << 2; end 8, 9: begin assign PORT_B_ADDR = PORT_B_ADDR_INT << 3; end 16, 18: begin assign PORT_B_ADDR = PORT_B_ADDR_INT << 4; end 32, 36: begin assign PORT_B_ADDR = PORT_B_ADDR_INT << 5; end default: begin assign PORT_B_ADDR = PORT_B_ADDR_INT; end endcase case (PORT_A_WR_BE_WIDTH) 4: begin assign PORT_A_WR_BE = PORT_A_WR_BE_i[PORT_A_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_A_WR_BE[3:PORT_A_WR_BE_WIDTH] = 0; assign PORT_A_WR_BE[PORT_A_WR_BE_WIDTH-1 :0] = PORT_A_WR_BE_i[PORT_A_WR_BE_WIDTH-1 :0]; end endcase case (PORT_B_WR_BE_WIDTH) 4: begin assign PORT_B_WR_BE = PORT_B_WR_BE_i[PORT_B_WR_BE_WIDTH-1 :0]; end default: begin assign PORT_B_WR_BE[3:PORT_B_WR_BE_WIDTH] = 0; assign PORT_B_WR_BE[PORT_B_WR_BE_WIDTH-1 :0] = PORT_B_WR_BE_i[PORT_B_WR_BE_WIDTH-1 :0]; end endcase assign REN_A1_i = PORT_A_REN_i; assign WEN_A1_i = PORT_A_WEN_i; assign {BE_A2_i, BE_A1_i} = PORT_A_WR_BE; assign REN_B1_i = PORT_B_REN_i; assign WEN_B1_i = PORT_B_WEN_i; assign {BE_B2_i, BE_B1_i} = PORT_B_WR_BE; generate if (PORT_A_DWIDTH == 36) begin assign PORT_A_WDATA[PORT_A_DWIDTH-1:0] = PORT_A_WR_DATA_i[PORT_A_DWIDTH-1:0]; end else if (PORT_A_DWIDTH > 18 && PORT_A_DWIDTH < 36) begin assign PORT_A_WDATA[PORT_A_DWIDTH+1:18] = PORT_A_WR_DATA_i[PORT_A_DWIDTH-1:16]; assign PORT_A_WDATA[17:0] = {2'b00,PORT_A_WR_DATA_i[15:0]}; end else if (PORT_A_DWIDTH == 9) begin assign PORT_A_WDATA = {19'h0, PORT_A_WR_DATA_i[8], 8'h0, PORT_A_WR_DATA_i[7:0]}; end else begin assign PORT_A_WDATA[35:PORT_A_DWIDTH] = 0; assign PORT_A_WDATA[PORT_A_DWIDTH-1:0] = PORT_A_WR_DATA_i[PORT_A_DWIDTH-1:0]; end endgenerate assign WDATA_A1_i = PORT_A_WDATA[17:0]; assign WDATA_A2_i = PORT_A_WDATA[35:18]; generate if (PORT_A_DWIDTH == 36) begin assign PORT_A_RDATA = {RDATA_A2_o, RDATA_A1_o}; end else if (PORT_A_DWIDTH > 18 && PORT_A_DWIDTH < 36) begin assign PORT_A_RDATA = {2'b00,RDATA_A2_o[17:0],RDATA_A1_o[15:0]}; end else if (PORT_A_DWIDTH == 9) begin assign PORT_A_RDATA = { 27'h0, RDATA_A1_o[16], RDATA_A1_o[7:0]}; end else begin assign PORT_A_RDATA = {18'h0, RDATA_A1_o}; end endgenerate assign PORT_A_RD_DATA_o = PORT_A_RDATA[PORT_A_DWIDTH-1:0]; generate if (PORT_B_DWIDTH == 36) begin assign PORT_B_WDATA[PORT_B_DWIDTH-1:0] = PORT_B_WR_DATA_i[PORT_B_DWIDTH-1:0]; end else if (PORT_B_DWIDTH > 18 && PORT_B_DWIDTH < 36) begin assign PORT_B_WDATA[PORT_B_DWIDTH+1:18] = PORT_B_WR_DATA_i[PORT_B_DWIDTH-1:16]; assign PORT_B_WDATA[17:0] = {2'b00,PORT_B_WR_DATA_i[15:0]}; end else if (PORT_B_DWIDTH == 9) begin assign PORT_B_WDATA = {19'h0, PORT_B_WR_DATA_i[8], 8'h0, PORT_B_WR_DATA_i[7:0]}; end else begin assign PORT_B_WDATA[35:PORT_B_DWIDTH] = 0; assign PORT_B_WDATA[PORT_B_DWIDTH-1:0] = PORT_B_WR_DATA_i[PORT_B_DWIDTH-1:0]; end endgenerate assign WDATA_B1_i = PORT_B_WDATA[17:0]; assign WDATA_B2_i = PORT_B_WDATA[35:18]; generate if (PORT_B_DWIDTH == 36) begin assign PORT_B_RDATA = {RDATA_B2_o, RDATA_B1_o}; end else if (PORT_B_DWIDTH > 18 && PORT_B_DWIDTH < 36) begin assign PORT_B_RDATA = {2'b00,RDATA_B2_o[17:0],RDATA_B1_o[15:0]}; end else if (PORT_B_DWIDTH == 9) begin assign PORT_B_RDATA = { 27'h0, RDATA_B1_o[16], RDATA_B1_o[7:0]}; end else begin assign PORT_B_RDATA = {18'h0, RDATA_B1_o}; end endgenerate assign PORT_B_RD_DATA_o = PORT_B_RDATA[PORT_B_DWIDTH-1:0]; defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b0, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_inferred = 1 *) (* is_split = 0 *) (* port_a_width = PORT_A_DWIDTH *) (* port_b_width = PORT_B_DWIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .CLK_A1_i(PORT_A_CLK), .ADDR_A1_i(PORT_A_ADDR), .WEN_A1_i(WEN_A1_i), .BE_A1_i(BE_A1_i), .WDATA_A1_i(WDATA_A1_i), .REN_A1_i(REN_A1_i), .RDATA_A1_o(RDATA_A1_o), .CLK_A2_i(PORT_A_CLK), .ADDR_A2_i(PORT_A_ADDR[13:0]), .WEN_A2_i(WEN_A1_i), .BE_A2_i(BE_A2_i), .WDATA_A2_i(WDATA_A2_i), .REN_A2_i(REN_A1_i), .RDATA_A2_o(RDATA_A2_o), .CLK_B1_i(PORT_B_CLK), .ADDR_B1_i(PORT_B_ADDR), .WEN_B1_i(WEN_B1_i), .BE_B1_i(BE_B1_i), .WDATA_B1_i(WDATA_B1_i), .REN_B1_i(REN_B1_i), .RDATA_B1_o(RDATA_B1_o), .CLK_B2_i(PORT_B_CLK), .ADDR_B2_i(PORT_B_ADDR[13:0]), .WEN_B2_i(WEN_B1_i), .BE_B2_i(BE_B2_i), .WDATA_B2_i(WDATA_B2_i), .REN_B2_i(REN_B1_i), .RDATA_B2_o(RDATA_B2_o), .FLUSH1_i(1'b0), .FLUSH2_i(1'b0) ); endmodule module BRAM2x18_SFIFO ( DIN1, PUSH1, POP1, CLK1, Async_Flush1, Overrun_Error1, Full_Watermark1, Almost_Full1, Full1, Underrun_Error1, Empty_Watermark1, Almost_Empty1, Empty1, DOUT1, DIN2, PUSH2, POP2, CLK2, Async_Flush2, Overrun_Error2, Full_Watermark2, Almost_Full2, Full2, Underrun_Error2, Empty_Watermark2, Almost_Empty2, Empty2, DOUT2 ); parameter WR1_DATA_WIDTH = 18; parameter RD1_DATA_WIDTH = 18; parameter WR2_DATA_WIDTH = 18; parameter RD2_DATA_WIDTH = 18; parameter UPAE_DBITS1 = 12'd10; parameter UPAF_DBITS1 = 12'd10; parameter UPAE_DBITS2 = 11'd10; parameter UPAF_DBITS2 = 11'd10; input wire CLK1; input wire PUSH1, POP1; input wire [WR1_DATA_WIDTH-1:0] DIN1; input wire Async_Flush1; output wire [RD1_DATA_WIDTH-1:0] DOUT1; output wire Almost_Full1, Almost_Empty1; output wire Full1, Empty1; output wire Full_Watermark1, Empty_Watermark1; output wire Overrun_Error1, Underrun_Error1; input wire CLK2; input wire PUSH2, POP2; input wire [WR2_DATA_WIDTH-1:0] DIN2; input wire Async_Flush2; output wire [RD2_DATA_WIDTH-1:0] DOUT2; output wire Almost_Full2, Almost_Empty2; output wire Full2, Empty2; output wire Full_Watermark2, Empty_Watermark2; output wire Overrun_Error2, Underrun_Error2; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd1; localparam [ 0:0] FMODE1_i = 1'd1; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = UPAE_DBITS1; localparam [11:0] UPAF1_i = UPAF_DBITS1; localparam [ 0:0] SYNC_FIFO2_i = 1'd1; localparam [ 0:0] FMODE2_i = 1'd1; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = UPAE_DBITS2; localparam [10:0] UPAF2_i = UPAF_DBITS2; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire [17:0] in_reg1; wire [17:0] out_reg1; wire [17:0] fifo1_flags; wire [17:0] in_reg2; wire [17:0] out_reg2; wire [17:0] fifo2_flags; wire Push_Clk1, Pop_Clk1; wire Push_Clk2, Pop_Clk2; assign Push_Clk1 = CLK1; assign Pop_Clk1 = CLK1; assign Push_Clk2 = CLK2; assign Pop_Clk2 = CLK2; assign Overrun_Error1 = fifo1_flags[0]; assign Full_Watermark1 = fifo1_flags[1]; assign Almost_Full1 = fifo1_flags[2]; assign Full1 = fifo1_flags[3]; assign Underrun_Error1 = fifo1_flags[4]; assign Empty_Watermark1 = fifo1_flags[5]; assign Almost_Empty1 = fifo1_flags[6]; assign Empty1 = fifo1_flags[7]; assign Overrun_Error2 = fifo2_flags[0]; assign Full_Watermark2 = fifo2_flags[1]; assign Almost_Full2 = fifo2_flags[2]; assign Full2 = fifo2_flags[3]; assign Underrun_Error2 = fifo2_flags[4]; assign Empty_Watermark2 = fifo2_flags[5]; assign Almost_Empty2 = fifo2_flags[6]; assign Empty2 = fifo2_flags[7]; localparam [ 2:0] RMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD2_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD2_DATA_WIDTH); generate if (WR1_DATA_WIDTH == 18) begin assign in_reg1[17:0] = DIN1[17:0]; end else if (WR1_DATA_WIDTH == 9) begin assign in_reg1[17:0] = {1'b0, DIN1[8], 8'h0, DIN1[7:0]}; end else begin assign in_reg1[17:WR1_DATA_WIDTH] = 0; assign in_reg1[WR1_DATA_WIDTH-1:0] = DIN1[WR1_DATA_WIDTH-1:0]; end endgenerate generate if (RD1_DATA_WIDTH == 9) begin assign DOUT1[RD1_DATA_WIDTH-1:0] = {out_reg1[16], out_reg1[7:0]}; end else begin assign DOUT1[RD1_DATA_WIDTH-1:0] = out_reg1[RD1_DATA_WIDTH-1:0]; end endgenerate generate if (WR2_DATA_WIDTH == 18) begin assign in_reg2[17:0] = DIN2[17:0]; end else if (WR2_DATA_WIDTH == 9) begin assign in_reg2[17:0] = {1'b0, DIN2[8], 8'h0, DIN2[7:0]}; end else begin assign in_reg2[17:WR2_DATA_WIDTH] = 0; assign in_reg2[WR2_DATA_WIDTH-1:0] = DIN2[WR2_DATA_WIDTH-1:0]; end endgenerate generate if (RD2_DATA_WIDTH == 9) begin assign DOUT2[RD2_DATA_WIDTH-1:0] = {out_reg2[16], out_reg2[7:0]}; end else begin assign DOUT2[RD2_DATA_WIDTH-1:0] = out_reg2[RD2_DATA_WIDTH-1:0]; end endgenerate defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b1, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_fifo = 1 *) (* sync_fifo = 1 *) (* is_split = 0 *) (* is_inferred = 0 *) (* port_a_dwidth = WR1_DATA_WIDTH *) (* port_b_dwidth = RD1_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .WDATA_A1_i(in_reg1[17:0]), .WDATA_A2_i(in_reg2[17:0]), .RDATA_A1_o(fifo1_flags), .RDATA_A2_o(fifo2_flags), .ADDR_A1_i(14'h0), .ADDR_A2_i(14'h0), .CLK_A1_i(Push_Clk1), .CLK_A2_i(Push_Clk2), .REN_A1_i(1'b1), .REN_A2_i(1'b1), .WEN_A1_i(PUSH1), .WEN_A2_i(PUSH2), .BE_A1_i(2'b11), .BE_A2_i(2'b11), .WDATA_B1_i(18'h0), .WDATA_B2_i(18'h0), .RDATA_B1_o(out_reg1[17:0]), .RDATA_B2_o(out_reg2[17:0]), .ADDR_B1_i(14'h0), .ADDR_B2_i(14'h0), .CLK_B1_i(Pop_Clk1), .CLK_B2_i(Pop_Clk2), .REN_B1_i(POP1), .REN_B2_i(POP2), .WEN_B1_i(1'b0), .WEN_B2_i(1'b0), .BE_B1_i(2'b11), .BE_B2_i(2'b11), .FLUSH1_i(Async_Flush1), .FLUSH2_i(Async_Flush2) ); endmodule module SFIFO_18K_BLK ( DIN, PUSH, POP, CLK, Async_Flush, Overrun_Error, Full_Watermark, Almost_Full, Full, Underrun_Error, Empty_Watermark, Almost_Empty, Empty, DOUT ); parameter WR_DATA_WIDTH = 18; parameter RD_DATA_WIDTH = 18; parameter UPAE_DBITS = 11'd10; parameter UPAF_DBITS = 11'd10; input wire CLK; input wire PUSH, POP; input wire [WR_DATA_WIDTH-1:0] DIN; input wire Async_Flush; output wire [RD_DATA_WIDTH-1:0] DOUT; output wire Almost_Full, Almost_Empty; output wire Full, Empty; output wire Full_Watermark, Empty_Watermark; output wire Overrun_Error, Underrun_Error; BRAM2x18_SFIFO #( .WR1_DATA_WIDTH(WR_DATA_WIDTH), .RD1_DATA_WIDTH(RD_DATA_WIDTH), .UPAE_DBITS1(UPAE_DBITS), .UPAF_DBITS1(UPAF_DBITS), .WR2_DATA_WIDTH(), .RD2_DATA_WIDTH(), .UPAE_DBITS2(), .UPAF_DBITS2() ) U1 ( .DIN1(DIN), .PUSH1(PUSH), .POP1(POP), .CLK1(CLK), .Async_Flush1(Async_Flush), .Overrun_Error1(Overrun_Error), .Full_Watermark1(Full_Watermark), .Almost_Full1(Almost_Full), .Full1(Full), .Underrun_Error1(Underrun_Error), .Empty_Watermark1(Empty_Watermark), .Almost_Empty1(Almost_Empty), .Empty1(Empty), .DOUT1(DOUT), .DIN2(18'h0), .PUSH2(1'b0), .POP2(1'b0), .CLK2(1'b0), .Async_Flush2(1'b0), .Overrun_Error2(), .Full_Watermark2(), .Almost_Full2(), .Full2(), .Underrun_Error2(), .Empty_Watermark2(), .Almost_Empty2(), .Empty2(), .DOUT2() ); endmodule module SFIFO_18K_X2_BLK ( DIN1, PUSH1, POP1, CLK1, Async_Flush1, Overrun_Error1, Full_Watermark1, Almost_Full1, Full1, Underrun_Error1, Empty_Watermark1, Almost_Empty1, Empty1, DOUT1, DIN2, PUSH2, POP2, CLK2, Async_Flush2, Overrun_Error2, Full_Watermark2, Almost_Full2, Full2, Underrun_Error2, Empty_Watermark2, Almost_Empty2, Empty2, DOUT2 ); parameter WR1_DATA_WIDTH = 18; parameter RD1_DATA_WIDTH = 18; parameter WR2_DATA_WIDTH = 18; parameter RD2_DATA_WIDTH = 18; parameter UPAE_DBITS1 = 12'd10; parameter UPAF_DBITS1 = 12'd10; parameter UPAE_DBITS2 = 11'd10; parameter UPAF_DBITS2 = 11'd10; input wire CLK1; input wire PUSH1, POP1; input wire [WR1_DATA_WIDTH-1:0] DIN1; input wire Async_Flush1; output wire [RD1_DATA_WIDTH-1:0] DOUT1; output wire Almost_Full1, Almost_Empty1; output wire Full1, Empty1; output wire Full_Watermark1, Empty_Watermark1; output wire Overrun_Error1, Underrun_Error1; input wire CLK2; input wire PUSH2, POP2; input wire [WR2_DATA_WIDTH-1:0] DIN2; input wire Async_Flush2; output wire [RD2_DATA_WIDTH-1:0] DOUT2; output wire Almost_Full2, Almost_Empty2; output wire Full2, Empty2; output wire Full_Watermark2, Empty_Watermark2; output wire Overrun_Error2, Underrun_Error2; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd1; localparam [ 0:0] FMODE1_i = 1'd1; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = UPAE_DBITS1; localparam [11:0] UPAF1_i = UPAF_DBITS1; localparam [ 0:0] SYNC_FIFO2_i = 1'd1; localparam [ 0:0] FMODE2_i = 1'd1; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = UPAE_DBITS2; localparam [10:0] UPAF2_i = UPAF_DBITS2; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire [17:0] in_reg1; wire [17:0] out_reg1; wire [17:0] fifo1_flags; wire [17:0] in_reg2; wire [17:0] out_reg2; wire [17:0] fifo2_flags; wire Push_Clk1, Pop_Clk1; wire Push_Clk2, Pop_Clk2; assign Push_Clk1 = CLK1; assign Pop_Clk1 = CLK1; assign Push_Clk2 = CLK2; assign Pop_Clk2 = CLK2; assign Overrun_Error1 = fifo1_flags[0]; assign Full_Watermark1 = fifo1_flags[1]; assign Almost_Full1 = fifo1_flags[2]; assign Full1 = fifo1_flags[3]; assign Underrun_Error1 = fifo1_flags[4]; assign Empty_Watermark1 = fifo1_flags[5]; assign Almost_Empty1 = fifo1_flags[6]; assign Empty1 = fifo1_flags[7]; assign Overrun_Error2 = fifo2_flags[0]; assign Full_Watermark2 = fifo2_flags[1]; assign Almost_Full2 = fifo2_flags[2]; assign Full2 = fifo2_flags[3]; assign Underrun_Error2 = fifo2_flags[4]; assign Empty_Watermark2 = fifo2_flags[5]; assign Almost_Empty2 = fifo2_flags[6]; assign Empty2 = fifo2_flags[7]; localparam [ 2:0] RMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD2_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD2_DATA_WIDTH); generate if (WR1_DATA_WIDTH == 18) begin assign in_reg1[17:0] = DIN1[17:0]; end else if (WR1_DATA_WIDTH == 9) begin assign in_reg1[17:0] = {1'b0, DIN1[8], 8'h0, DIN1[7:0]}; end else begin assign in_reg1[17:WR1_DATA_WIDTH] = 0; assign in_reg1[WR1_DATA_WIDTH-1:0] = DIN1[WR1_DATA_WIDTH-1:0]; end endgenerate generate if (RD1_DATA_WIDTH == 9) begin assign DOUT1[RD1_DATA_WIDTH-1:0] = {out_reg1[16], out_reg1[7:0]}; end else begin assign DOUT1[RD1_DATA_WIDTH-1:0] = out_reg1[RD1_DATA_WIDTH-1:0]; end endgenerate generate if (WR2_DATA_WIDTH == 18) begin assign in_reg2[17:0] = DIN2[17:0]; end else if (WR2_DATA_WIDTH == 9) begin assign in_reg2[17:0] = {1'b0, DIN2[8], 8'h0, DIN2[7:0]}; end else begin assign in_reg2[17:WR2_DATA_WIDTH] = 0; assign in_reg2[WR2_DATA_WIDTH-1:0] = DIN2[WR2_DATA_WIDTH-1:0]; end endgenerate generate if (RD2_DATA_WIDTH == 9) begin assign DOUT2[RD2_DATA_WIDTH-1:0] = {out_reg2[16], out_reg2[7:0]}; end else begin assign DOUT2[RD2_DATA_WIDTH-1:0] = out_reg2[RD2_DATA_WIDTH-1:0]; end endgenerate defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b1, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_fifo = 1 *) (* sync_fifo = 1 *) (* is_split = 1 *) (* is_inferred = 0 *) (* port_a1_dwidth = WR1_DATA_WIDTH *) (* port_a2_dwidth = WR2_DATA_WIDTH *) (* port_b1_dwidth = RD1_DATA_WIDTH *) (* port_b2_dwidth = RD2_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .WDATA_A1_i(in_reg1[17:0]), .WDATA_A2_i(in_reg2[17:0]), .RDATA_A1_o(fifo1_flags), .RDATA_A2_o(fifo2_flags), .ADDR_A1_i(14'h0), .ADDR_A2_i(14'h0), .CLK_A1_i(Push_Clk1), .CLK_A2_i(Push_Clk2), .REN_A1_i(1'b1), .REN_A2_i(1'b1), .WEN_A1_i(PUSH1), .WEN_A2_i(PUSH2), .BE_A1_i(2'b11), .BE_A2_i(2'b11), .WDATA_B1_i(18'h0), .WDATA_B2_i(18'h0), .RDATA_B1_o(out_reg1[17:0]), .RDATA_B2_o(out_reg2[17:0]), .ADDR_B1_i(14'h0), .ADDR_B2_i(14'h0), .CLK_B1_i(Pop_Clk1), .CLK_B2_i(Pop_Clk2), .REN_B1_i(POP1), .REN_B2_i(POP2), .WEN_B1_i(1'b0), .WEN_B2_i(1'b0), .BE_B1_i(2'b11), .BE_B2_i(2'b11), .FLUSH1_i(Async_Flush1), .FLUSH2_i(Async_Flush2) ); endmodule module BRAM2x18_AFIFO ( DIN1, PUSH1, POP1, Push_Clk1, Pop_Clk1, Async_Flush1, Overrun_Error1, Full_Watermark1, Almost_Full1, Full1, Underrun_Error1, Empty_Watermark1, Almost_Empty1, Empty1, DOUT1, DIN2, PUSH2, POP2, Push_Clk2, Pop_Clk2, Async_Flush2, Overrun_Error2, Full_Watermark2, Almost_Full2, Full2, Underrun_Error2, Empty_Watermark2, Almost_Empty2, Empty2, DOUT2 ); parameter WR1_DATA_WIDTH = 18; parameter RD1_DATA_WIDTH = 18; parameter WR2_DATA_WIDTH = 18; parameter RD2_DATA_WIDTH = 18; parameter UPAE_DBITS1 = 12'd10; parameter UPAF_DBITS1 = 12'd10; parameter UPAE_DBITS2 = 11'd10; parameter UPAF_DBITS2 = 11'd10; input wire Push_Clk1, Pop_Clk1; input wire PUSH1, POP1; input wire [WR1_DATA_WIDTH-1:0] DIN1; input wire Async_Flush1; output wire [RD1_DATA_WIDTH-1:0] DOUT1; output wire Almost_Full1, Almost_Empty1; output wire Full1, Empty1; output wire Full_Watermark1, Empty_Watermark1; output wire Overrun_Error1, Underrun_Error1; input wire Push_Clk2, Pop_Clk2; input wire PUSH2, POP2; input wire [WR2_DATA_WIDTH-1:0] DIN2; input wire Async_Flush2; output wire [RD2_DATA_WIDTH-1:0] DOUT2; output wire Almost_Full2, Almost_Empty2; output wire Full2, Empty2; output wire Full_Watermark2, Empty_Watermark2; output wire Overrun_Error2, Underrun_Error2; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd1; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = UPAE_DBITS1; localparam [11:0] UPAF1_i = UPAF_DBITS1; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd1; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = UPAE_DBITS2; localparam [10:0] UPAF2_i = UPAF_DBITS2; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire [17:0] in_reg1; wire [17:0] out_reg1; wire [17:0] fifo1_flags; wire [17:0] in_reg2; wire [17:0] out_reg2; wire [17:0] fifo2_flags; assign Overrun_Error1 = fifo1_flags[0]; assign Full_Watermark1 = fifo1_flags[1]; assign Almost_Full1 = fifo1_flags[2]; assign Full1 = fifo1_flags[3]; assign Underrun_Error1 = fifo1_flags[4]; assign Empty_Watermark1 = fifo1_flags[5]; assign Almost_Empty1 = fifo1_flags[6]; assign Empty1 = fifo1_flags[7]; assign Overrun_Error2 = fifo2_flags[0]; assign Full_Watermark2 = fifo2_flags[1]; assign Almost_Full2 = fifo2_flags[2]; assign Full2 = fifo2_flags[3]; assign Underrun_Error2 = fifo2_flags[4]; assign Empty_Watermark2 = fifo2_flags[5]; assign Almost_Empty2 = fifo2_flags[6]; assign Empty2 = fifo2_flags[7]; localparam [ 2:0] RMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD2_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD2_DATA_WIDTH); generate if (WR1_DATA_WIDTH == 18) begin assign in_reg1[17:0] = DIN1[17:0]; end else if (WR1_DATA_WIDTH == 9) begin assign in_reg1[17:0] = {1'b0, DIN1[8], 8'h0, DIN1[7:0]}; end else begin assign in_reg1[17:WR1_DATA_WIDTH] = 0; assign in_reg1[WR1_DATA_WIDTH-1:0] = DIN1[WR1_DATA_WIDTH-1:0]; end endgenerate generate if (RD1_DATA_WIDTH == 9) begin assign DOUT1[RD1_DATA_WIDTH-1:0] = {out_reg1[16], out_reg1[7:0]}; end else begin assign DOUT1[RD1_DATA_WIDTH-1:0] = out_reg1[RD1_DATA_WIDTH-1:0]; end endgenerate generate if (WR2_DATA_WIDTH == 18) begin assign in_reg2[17:0] = DIN2[17:0]; end else if (WR2_DATA_WIDTH == 9) begin assign in_reg2[17:0] = {1'b0, DIN2[8], 8'h0, DIN2[7:0]}; end else begin assign in_reg2[17:WR2_DATA_WIDTH] = 0; assign in_reg2[WR2_DATA_WIDTH-1:0] = DIN2[WR2_DATA_WIDTH-1:0]; end endgenerate generate if (RD2_DATA_WIDTH == 9) begin assign DOUT2[RD2_DATA_WIDTH-1:0] = {out_reg2[16], out_reg2[7:0]}; end else begin assign DOUT2[RD2_DATA_WIDTH-1:0] = out_reg2[RD2_DATA_WIDTH-1:0]; end endgenerate defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b1, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_fifo = 1 *) (* sync_fifo = 0 *) (* is_split = 0 *) (* is_inferred = 0 *) (* port_a_dwidth = WR1_DATA_WIDTH *) (* port_b_dwidth = RD1_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .WDATA_A1_i(in_reg1[17:0]), .WDATA_A2_i(in_reg2[17:0]), .RDATA_A1_o(fifo1_flags), .RDATA_A2_o(fifo2_flags), .ADDR_A1_i(14'h0), .ADDR_A2_i(14'h0), .CLK_A1_i(Push_Clk1), .CLK_A2_i(Push_Clk2), .REN_A1_i(1'b1), .REN_A2_i(1'b1), .WEN_A1_i(PUSH1), .WEN_A2_i(PUSH2), .BE_A1_i(2'b11), .BE_A2_i(2'b11), .WDATA_B1_i(18'h0), .WDATA_B2_i(18'h0), .RDATA_B1_o(out_reg1[17:0]), .RDATA_B2_o(out_reg2[17:0]), .ADDR_B1_i(14'h0), .ADDR_B2_i(14'h0), .CLK_B1_i(Pop_Clk1), .CLK_B2_i(Pop_Clk2), .REN_B1_i(POP1), .REN_B2_i(POP2), .WEN_B1_i(1'b0), .WEN_B2_i(1'b0), .BE_B1_i(2'b11), .BE_B2_i(2'b11), .FLUSH1_i(Async_Flush1), .FLUSH2_i(Async_Flush2) ); endmodule module AFIFO_18K_BLK ( DIN, PUSH, POP, Push_Clk, Pop_Clk, Async_Flush, Overrun_Error, Full_Watermark, Almost_Full, Full, Underrun_Error, Empty_Watermark, Almost_Empty, Empty, DOUT ); parameter WR_DATA_WIDTH = 18; parameter RD_DATA_WIDTH = 18; parameter UPAE_DBITS = 11'd10; parameter UPAF_DBITS = 11'd10; input wire Push_Clk, Pop_Clk; input wire PUSH, POP; input wire [WR_DATA_WIDTH-1:0] DIN; input wire Async_Flush; output wire [RD_DATA_WIDTH-1:0] DOUT; output wire Almost_Full, Almost_Empty; output wire Full, Empty; output wire Full_Watermark, Empty_Watermark; output wire Overrun_Error, Underrun_Error; BRAM2x18_AFIFO #( .WR1_DATA_WIDTH(WR_DATA_WIDTH), .RD1_DATA_WIDTH(RD_DATA_WIDTH), .UPAE_DBITS1(UPAE_DBITS), .UPAF_DBITS1(UPAF_DBITS), .WR2_DATA_WIDTH(), .RD2_DATA_WIDTH(), .UPAE_DBITS2(), .UPAF_DBITS2() ) U1 ( .DIN1(DIN), .PUSH1(PUSH), .POP1(POP), .Push_Clk1(Push_Clk), .Pop_Clk1(Pop_Clk), .Async_Flush1(Async_Flush), .Overrun_Error1(Overrun_Error), .Full_Watermark1(Full_Watermark), .Almost_Full1(Almost_Full), .Full1(Full), .Underrun_Error1(Underrun_Error), .Empty_Watermark1(Empty_Watermark), .Almost_Empty1(Almost_Empty), .Empty1(Empty), .DOUT1(DOUT), .DIN2(18'h0), .PUSH2(1'b0), .POP2(1'b0), .Push_Clk2(1'b0), .Pop_Clk2(1'b0), .Async_Flush2(1'b0), .Overrun_Error2(), .Full_Watermark2(), .Almost_Full2(), .Full2(), .Underrun_Error2(), .Empty_Watermark2(), .Almost_Empty2(), .Empty2(), .DOUT2() ); endmodule module AFIFO_18K_X2_BLK ( DIN1, PUSH1, POP1, Push_Clk1, Pop_Clk1, Async_Flush1, Overrun_Error1, Full_Watermark1, Almost_Full1, Full1, Underrun_Error1, Empty_Watermark1, Almost_Empty1, Empty1, DOUT1, DIN2, PUSH2, POP2, Push_Clk2, Pop_Clk2, Async_Flush2, Overrun_Error2, Full_Watermark2, Almost_Full2, Full2, Underrun_Error2, Empty_Watermark2, Almost_Empty2, Empty2, DOUT2 ); parameter WR1_DATA_WIDTH = 18; parameter RD1_DATA_WIDTH = 18; parameter WR2_DATA_WIDTH = 18; parameter RD2_DATA_WIDTH = 18; parameter UPAE_DBITS1 = 12'd10; parameter UPAF_DBITS1 = 12'd10; parameter UPAE_DBITS2 = 11'd10; parameter UPAF_DBITS2 = 11'd10; input wire Push_Clk1, Pop_Clk1; input wire PUSH1, POP1; input wire [WR1_DATA_WIDTH-1:0] DIN1; input wire Async_Flush1; output wire [RD1_DATA_WIDTH-1:0] DOUT1; output wire Almost_Full1, Almost_Empty1; output wire Full1, Empty1; output wire Full_Watermark1, Empty_Watermark1; output wire Overrun_Error1, Underrun_Error1; input wire Push_Clk2, Pop_Clk2; input wire PUSH2, POP2; input wire [WR2_DATA_WIDTH-1:0] DIN2; input wire Async_Flush2; output wire [RD2_DATA_WIDTH-1:0] DOUT2; output wire Almost_Full2, Almost_Empty2; output wire Full2, Empty2; output wire Full_Watermark2, Empty_Watermark2; output wire Overrun_Error2, Underrun_Error2; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd1; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = UPAE_DBITS1; localparam [11:0] UPAF1_i = UPAF_DBITS1; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd1; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = UPAE_DBITS2; localparam [10:0] UPAF2_i = UPAF_DBITS2; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire [17:0] in_reg1; wire [17:0] out_reg1; wire [17:0] fifo1_flags; wire [17:0] in_reg2; wire [17:0] out_reg2; wire [17:0] fifo2_flags; assign Overrun_Error1 = fifo1_flags[0]; assign Full_Watermark1 = fifo1_flags[1]; assign Almost_Full1 = fifo1_flags[2]; assign Full1 = fifo1_flags[3]; assign Underrun_Error1 = fifo1_flags[4]; assign Empty_Watermark1 = fifo1_flags[5]; assign Almost_Empty1 = fifo1_flags[6]; assign Empty1 = fifo1_flags[7]; assign Overrun_Error2 = fifo2_flags[0]; assign Full_Watermark2 = fifo2_flags[1]; assign Almost_Full2 = fifo2_flags[2]; assign Full2 = fifo2_flags[3]; assign Underrun_Error2 = fifo2_flags[4]; assign Empty_Watermark2 = fifo2_flags[5]; assign Almost_Empty2 = fifo2_flags[6]; assign Empty2 = fifo2_flags[7]; localparam [ 2:0] RMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR1_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR2_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD1_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD2_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD2_DATA_WIDTH); generate if (WR1_DATA_WIDTH == 18) begin assign in_reg1[17:0] = DIN1[17:0]; end else if (WR1_DATA_WIDTH == 9) begin assign in_reg1[17:0] = {1'b0, DIN1[8], 8'h0, DIN1[7:0]}; end else begin assign in_reg1[17:WR1_DATA_WIDTH] = 0; assign in_reg1[WR1_DATA_WIDTH-1:0] = DIN1[WR1_DATA_WIDTH-1:0]; end endgenerate generate if (RD1_DATA_WIDTH == 9) begin assign DOUT1[RD1_DATA_WIDTH-1:0] = {out_reg1[16], out_reg1[7:0]}; end else begin assign DOUT1[RD1_DATA_WIDTH-1:0] = out_reg1[RD1_DATA_WIDTH-1:0]; end endgenerate generate if (WR2_DATA_WIDTH == 18) begin assign in_reg2[17:0] = DIN2[17:0]; end else if (WR2_DATA_WIDTH == 9) begin assign in_reg2[17:0] = {1'b0, DIN2[8], 8'h0, DIN2[7:0]}; end else begin assign in_reg2[17:WR2_DATA_WIDTH] = 0; assign in_reg2[WR2_DATA_WIDTH-1:0] = DIN2[WR2_DATA_WIDTH-1:0]; end endgenerate generate if (RD2_DATA_WIDTH == 9) begin assign DOUT2[RD2_DATA_WIDTH-1:0] = {out_reg2[16], out_reg2[7:0]}; end else begin assign DOUT2[RD2_DATA_WIDTH-1:0] = out_reg2[RD2_DATA_WIDTH-1:0]; end endgenerate defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b1, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_fifo = 1 *) (* sync_fifo = 0 *) (* is_split = 1 *) (* is_inferred = 0 *) (* port_a1_dwidth = WR1_DATA_WIDTH *) (* port_a2_dwidth = WR2_DATA_WIDTH *) (* port_b1_dwidth = RD1_DATA_WIDTH *) (* port_b2_dwidth = RD2_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .WDATA_A1_i(in_reg1[17:0]), .WDATA_A2_i(in_reg2[17:0]), .RDATA_A1_o(fifo1_flags), .RDATA_A2_o(fifo2_flags), .ADDR_A1_i(14'h0), .ADDR_A2_i(14'h0), .CLK_A1_i(Push_Clk1), .CLK_A2_i(Push_Clk2), .REN_A1_i(1'b1), .REN_A2_i(1'b1), .WEN_A1_i(PUSH1), .WEN_A2_i(PUSH2), .BE_A1_i(2'b11), .BE_A2_i(2'b11), .WDATA_B1_i(18'h0), .WDATA_B2_i(18'h0), .RDATA_B1_o(out_reg1[17:0]), .RDATA_B2_o(out_reg2[17:0]), .ADDR_B1_i(14'h0), .ADDR_B2_i(14'h0), .CLK_B1_i(Pop_Clk1), .CLK_B2_i(Pop_Clk2), .REN_B1_i(POP1), .REN_B2_i(POP2), .WEN_B1_i(1'b0), .WEN_B2_i(1'b0), .BE_B1_i(2'b11), .BE_B2_i(2'b11), .FLUSH1_i(Async_Flush1), .FLUSH2_i(Async_Flush2) ); endmodule module SFIFO_36K_BLK ( DIN, PUSH, POP, CLK, Async_Flush, Overrun_Error, Full_Watermark, Almost_Full, Full, Underrun_Error, Empty_Watermark, Almost_Empty, Empty, DOUT ); parameter WR_DATA_WIDTH = 36; parameter RD_DATA_WIDTH = 36; parameter UPAE_DBITS = 12'd10; parameter UPAF_DBITS = 12'd10; input wire CLK; input wire PUSH, POP; input wire [WR_DATA_WIDTH-1:0] DIN; input wire Async_Flush; output wire [RD_DATA_WIDTH-1:0] DOUT; output wire Almost_Full, Almost_Empty; output wire Full, Empty; output wire Full_Watermark, Empty_Watermark; output wire Overrun_Error, Underrun_Error; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd1; localparam [ 0:0] FMODE1_i = 1'd1; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = UPAE_DBITS; localparam [11:0] UPAF1_i = UPAF_DBITS; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd0; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = 11'd10; localparam [10:0] UPAF2_i = 11'd10; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire [35:0] in_reg; wire [35:0] out_reg; wire [17:0] fifo_flags; wire [35:0] RD_DATA_INT; wire Push_Clk, Pop_Clk; assign Push_Clk = CLK; assign Pop_Clk = CLK; assign Overrun_Error = fifo_flags[0]; assign Full_Watermark = fifo_flags[1]; assign Almost_Full = fifo_flags[2]; assign Full = fifo_flags[3]; assign Underrun_Error = fifo_flags[4]; assign Empty_Watermark = fifo_flags[5]; assign Almost_Empty = fifo_flags[6]; assign Empty = fifo_flags[7]; localparam [ 2:0] RMODE_A1_i = mode(WR_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD_DATA_WIDTH); generate if (WR_DATA_WIDTH == 36) begin assign in_reg[WR_DATA_WIDTH-1:0] = DIN[WR_DATA_WIDTH-1:0]; end else if (WR_DATA_WIDTH > 18 && WR_DATA_WIDTH < 36) begin assign in_reg[WR_DATA_WIDTH+1:18] = DIN[WR_DATA_WIDTH-1:16]; assign in_reg[17:0] = {2'b00,DIN[15:0]}; end else if (WR_DATA_WIDTH == 9) begin assign in_reg[35:0] = {19'h0, DIN[8], 8'h0, DIN[7:0]}; end else begin assign in_reg[35:WR_DATA_WIDTH] = 0; assign in_reg[WR_DATA_WIDTH-1:0] = DIN[WR_DATA_WIDTH-1:0]; end endgenerate generate if (RD_DATA_WIDTH == 36) begin assign RD_DATA_INT = out_reg; end else if (RD_DATA_WIDTH > 18 && RD_DATA_WIDTH < 36) begin assign RD_DATA_INT = {2'b00,out_reg[35:18],out_reg[15:0]}; end else if (RD_DATA_WIDTH == 9) begin assign RD_DATA_INT = { 27'h0, out_reg[16], out_reg[7:0]}; end else begin assign RD_DATA_INT = {18'h0, out_reg[17:0]}; end endgenerate assign DOUT[RD_DATA_WIDTH-1 : 0] = RD_DATA_INT[RD_DATA_WIDTH-1 : 0]; defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b0, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_fifo = 1 *) (* sync_fifo = 1 *) (* is_inferred = 0 *) (* is_split = 0 *) (* port_a_dwidth = WR_DATA_WIDTH *) (* port_b_dwidth = RD_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .WDATA_A1_i(in_reg[17:0]), .WDATA_A2_i(in_reg[35:18]), .RDATA_A1_o(fifo_flags), .RDATA_A2_o(), .ADDR_A1_i(14'h0), .ADDR_A2_i(14'h0), .CLK_A1_i(Push_Clk), .CLK_A2_i(1'b0), .REN_A1_i(1'b1), .REN_A2_i(1'b0), .WEN_A1_i(PUSH), .WEN_A2_i(1'b0), .BE_A1_i(2'b11), .BE_A2_i(2'b11), .WDATA_B1_i(18'h0), .WDATA_B2_i(18'h0), .RDATA_B1_o(out_reg[17:0]), .RDATA_B2_o(out_reg[35:18]), .ADDR_B1_i(14'h0), .ADDR_B2_i(14'h0), .CLK_B1_i(Pop_Clk), .CLK_B2_i(1'b0), .REN_B1_i(POP), .REN_B2_i(1'b0), .WEN_B1_i(1'b0), .WEN_B2_i(1'b0), .BE_B1_i(2'b11), .BE_B2_i(2'b11), .FLUSH1_i(Async_Flush), .FLUSH2_i(1'b0) ); endmodule module AFIFO_36K_BLK ( DIN, PUSH, POP, Push_Clk, Pop_Clk, Async_Flush, Overrun_Error, Full_Watermark, Almost_Full, Full, Underrun_Error, Empty_Watermark, Almost_Empty, Empty, DOUT ); parameter WR_DATA_WIDTH = 36; parameter RD_DATA_WIDTH = 36; parameter UPAE_DBITS = 12'd10; parameter UPAF_DBITS = 12'd10; input wire Push_Clk, Pop_Clk; input wire PUSH, POP; input wire [WR_DATA_WIDTH-1:0] DIN; input wire Async_Flush; output wire [RD_DATA_WIDTH-1:0] DOUT; output wire Almost_Full, Almost_Empty; output wire Full, Empty; output wire Full_Watermark, Empty_Watermark; output wire Overrun_Error, Underrun_Error; // Fixed mode settings localparam [ 0:0] SYNC_FIFO1_i = 1'd0; localparam [ 0:0] FMODE1_i = 1'd1; localparam [ 0:0] POWERDN1_i = 1'd0; localparam [ 0:0] SLEEP1_i = 1'd0; localparam [ 0:0] PROTECT1_i = 1'd0; localparam [11:0] UPAE1_i = UPAE_DBITS; localparam [11:0] UPAF1_i = UPAF_DBITS; localparam [ 0:0] SYNC_FIFO2_i = 1'd0; localparam [ 0:0] FMODE2_i = 1'd0; localparam [ 0:0] POWERDN2_i = 1'd0; localparam [ 0:0] SLEEP2_i = 1'd0; localparam [ 0:0] PROTECT2_i = 1'd0; localparam [10:0] UPAE2_i = 11'd10; localparam [10:0] UPAF2_i = 11'd10; // Width mode function function [2:0] mode; input integer width; case (width) 1: mode = 3'b101; 2: mode = 3'b110; 4: mode = 3'b100; 8,9: mode = 3'b001; 16, 18: mode = 3'b010; 32, 36: mode = 3'b011; default: mode = 3'b000; endcase endfunction wire [35:0] in_reg; wire [35:0] out_reg; wire [17:0] fifo_flags; wire [35:0] RD_DATA_INT; wire [35:WR_DATA_WIDTH] WR_DATA_CMPL; assign Overrun_Error = fifo_flags[0]; assign Full_Watermark = fifo_flags[1]; assign Almost_Full = fifo_flags[2]; assign Full = fifo_flags[3]; assign Underrun_Error = fifo_flags[4]; assign Empty_Watermark = fifo_flags[5]; assign Almost_Empty = fifo_flags[6]; assign Empty = fifo_flags[7]; localparam [ 2:0] RMODE_A1_i = mode(WR_DATA_WIDTH); localparam [ 2:0] WMODE_A1_i = mode(WR_DATA_WIDTH); localparam [ 2:0] RMODE_A2_i = mode(WR_DATA_WIDTH); localparam [ 2:0] WMODE_A2_i = mode(WR_DATA_WIDTH); localparam [ 2:0] RMODE_B1_i = mode(RD_DATA_WIDTH); localparam [ 2:0] WMODE_B1_i = mode(RD_DATA_WIDTH); localparam [ 2:0] RMODE_B2_i = mode(RD_DATA_WIDTH); localparam [ 2:0] WMODE_B2_i = mode(RD_DATA_WIDTH); generate if (WR_DATA_WIDTH == 36) begin assign in_reg[WR_DATA_WIDTH-1:0] = DIN[WR_DATA_WIDTH-1:0]; end else if (WR_DATA_WIDTH > 18 && WR_DATA_WIDTH < 36) begin assign in_reg[WR_DATA_WIDTH+1:18] = DIN[WR_DATA_WIDTH-1:16]; assign in_reg[17:0] = {2'b00,DIN[15:0]}; end else if (WR_DATA_WIDTH == 9) begin assign in_reg[35:0] = {19'h0, DIN[8], 8'h0, DIN[7:0]}; end else begin assign in_reg[35:WR_DATA_WIDTH] = 0; assign in_reg[WR_DATA_WIDTH-1:0] = DIN[WR_DATA_WIDTH-1:0]; end endgenerate generate if (RD_DATA_WIDTH == 36) begin assign RD_DATA_INT = out_reg; end else if (RD_DATA_WIDTH > 18 && RD_DATA_WIDTH < 36) begin assign RD_DATA_INT = {2'b00,out_reg[35:18],out_reg[15:0]}; end else if (RD_DATA_WIDTH == 9) begin assign RD_DATA_INT = { 27'h0, out_reg[16], out_reg[7:0]}; end else begin assign RD_DATA_INT = {18'h0, out_reg[17:0]}; end endgenerate assign DOUT[RD_DATA_WIDTH-1 : 0] = RD_DATA_INT[RD_DATA_WIDTH-1 : 0]; defparam _TECHMAP_REPLACE_.MODE_BITS = { 1'b0, UPAF2_i, UPAE2_i, PROTECT2_i, SLEEP2_i, POWERDN2_i, FMODE2_i, WMODE_B2_i, WMODE_A2_i, RMODE_B2_i, RMODE_A2_i, SYNC_FIFO2_i, UPAF1_i, UPAE1_i, PROTECT1_i, SLEEP1_i, POWERDN1_i, FMODE1_i, WMODE_B1_i, WMODE_A1_i, RMODE_B1_i, RMODE_A1_i, SYNC_FIFO1_i }; (* is_fifo = 1 *) (* sync_fifo = 0 *) (* is_inferred = 0 *) (* is_split = 0 *) (* port_a_dwidth = WR_DATA_WIDTH *) (* port_b_dwidth = RD_DATA_WIDTH *) TDP36K _TECHMAP_REPLACE_ ( .RESET_ni(1'b1), .WDATA_A1_i(in_reg[17:0]), .WDATA_A2_i(in_reg[35:18]), .RDATA_A1_o(fifo_flags), .RDATA_A2_o(), .ADDR_A1_i(14'h0), .ADDR_A2_i(14'h0), .CLK_A1_i(Push_Clk), .CLK_A2_i(1'b0), .REN_A1_i(1'b1), .REN_A2_i(1'b0), .WEN_A1_i(PUSH), .WEN_A2_i(1'b0), .BE_A1_i(2'b11), .BE_A2_i(2'b11), .WDATA_B1_i(18'h0), .WDATA_B2_i(18'h0), .RDATA_B1_o(out_reg[17:0]), .RDATA_B2_o(out_reg[35:18]), .ADDR_B1_i(14'h0), .ADDR_B2_i(14'h0), .CLK_B1_i(Pop_Clk), .CLK_B2_i(1'b0), .REN_B1_i(POP), .REN_B2_i(1'b0), .WEN_B1_i(1'b0), .WEN_B2_i(1'b0), .BE_B1_i(2'b11), .BE_B2_i(2'b11), .FLUSH1_i(Async_Flush), .FLUSH2_i(1'b0) ); endmodule //=============================================================================== module TDP36K_FIFO_ASYNC_A_X9_B_X9_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A_X9_B_X18_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A_X9_B_X36_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A_X18_B_X9_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A_X18_B_X18_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A_X18_B_X36_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A_X36_B_X9_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A_X36_B_X18_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A_X36_B_X36_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X18_B1_X18_A2_X18_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X18_B1_X18_A2_X18_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X18_B1_X18_A2_X9_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X18_B1_X18_A2_X9_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X18_B1_X9_A2_X18_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X18_B1_X9_A2_X18_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X18_B1_X9_A2_X9_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X18_B1_X9_A2_X9_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X9_B1_X18_A2_X18_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X9_B1_X18_A2_X18_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X9_B1_X18_A2_X9_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X9_B1_X18_A2_X9_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X9_B1_X9_A2_X18_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X9_B1_X9_A2_X18_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X9_B1_X9_A2_X9_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_ASYNC_A1_X9_B1_X9_A2_X9_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X9_B_X9_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X9_B_X18_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X9_B_X36_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X18_B_X9_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X18_B_X18_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X18_B_X36_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X36_B_X9_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X36_B_X18_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A_X36_B_X36_nonsplit ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X18_B1_X18_A2_X18_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X18_B1_X18_A2_X18_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X18_B1_X18_A2_X9_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X18_B1_X18_A2_X9_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X18_B1_X9_A2_X18_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X18_B1_X9_A2_X18_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X18_B1_X9_A2_X9_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X18_B1_X9_A2_X9_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X9_B1_X18_A2_X18_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X9_B1_X18_A2_X18_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X9_B1_X18_A2_X9_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X9_B1_X18_A2_X9_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X9_B1_X9_A2_X18_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X9_B1_X9_A2_X18_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X9_B1_X9_A2_X9_B2_X18_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule module TDP36K_FIFO_SYNC_A1_X9_B1_X9_A2_X9_B2_X9_split ( RESET_ni, WEN_A1_i, WEN_B1_i, REN_A1_i, REN_B1_i, CLK_A1_i, CLK_B1_i, BE_A1_i, BE_B1_i, ADDR_A1_i, ADDR_B1_i, WDATA_A1_i, WDATA_B1_i, RDATA_A1_o, RDATA_B1_o, FLUSH1_i, WEN_A2_i, WEN_B2_i, REN_A2_i, REN_B2_i, CLK_A2_i, CLK_B2_i, BE_A2_i, BE_B2_i, ADDR_A2_i, ADDR_B2_i, WDATA_A2_i, WDATA_B2_i, RDATA_A2_o, RDATA_B2_o, FLUSH2_i ); parameter [80:0] MODE_BITS = 81'd0; input wire RESET_ni; input wire WEN_A1_i, WEN_B1_i; input wire REN_A1_i, REN_B1_i; input wire WEN_A2_i, WEN_B2_i; input wire REN_A2_i, REN_B2_i; (* clkbuf_sink *) input wire CLK_A1_i; (* clkbuf_sink *) input wire CLK_B1_i; (* clkbuf_sink *) input wire CLK_A2_i; (* clkbuf_sink *) input wire CLK_B2_i; input wire [ 1:0] BE_A1_i, BE_B1_i; input wire [14:0] ADDR_A1_i, ADDR_B1_i; input wire [17:0] WDATA_A1_i, WDATA_B1_i; output wire [17:0] RDATA_A1_o, RDATA_B1_o; input wire FLUSH1_i; input wire [ 1:0] BE_A2_i, BE_B2_i; input wire [13:0] ADDR_A2_i, ADDR_B2_i; input wire [17:0] WDATA_A2_i, WDATA_B2_i; output wire [17:0] RDATA_A2_o, RDATA_B2_o; input wire FLUSH2_i; TDP36K #(.MODE_BITS(MODE_BITS)) bram ( .RESET_ni (RESET_ni), .WEN_A1_i (WEN_A1_i), .WEN_B1_i (WEN_B1_i), .REN_A1_i (REN_A1_i), .REN_B1_i (REN_B1_i), .CLK_A1_i (CLK_A1_i), .CLK_B1_i (CLK_B1_i), .BE_A1_i (BE_A1_i), .BE_B1_i (BE_B1_i), .ADDR_A1_i (ADDR_A1_i), .ADDR_B1_i (ADDR_B1_i), .WDATA_A1_i (WDATA_A1_i), .WDATA_B1_i (WDATA_B1_i), .RDATA_A1_o (RDATA_A1_o), .RDATA_B1_o (RDATA_B1_o), .FLUSH1_i (FLUSH1_i), .WEN_A2_i (WEN_A2_i), .WEN_B2_i (WEN_B2_i), .REN_A2_i (REN_A2_i), .REN_B2_i (REN_B2_i), .CLK_A2_i (CLK_A2_i), .CLK_B2_i (CLK_B2_i), .BE_A2_i (BE_A2_i), .BE_B2_i (BE_B2_i), .ADDR_A2_i (ADDR_A2_i), .ADDR_B2_i (ADDR_B2_i), .WDATA_A2_i (WDATA_A2_i), .WDATA_B2_i (WDATA_B2_i), .RDATA_A2_o (RDATA_A2_o), .RDATA_B2_o (RDATA_B2_o), .FLUSH2_i (FLUSH2_i) ); `ifdef SDF_SIM specify (FLUSH1_i => RDATA_A1_o[0]) = 0; (FLUSH1_i => RDATA_A1_o[1]) = 0; (FLUSH1_i => RDATA_A1_o[2]) = 0; (FLUSH1_i => RDATA_A1_o[3]) = 0; (FLUSH1_i => RDATA_A1_o[4]) = 0; (FLUSH1_i => RDATA_A1_o[5]) = 0; (FLUSH1_i => RDATA_A1_o[6]) = 0; (FLUSH1_i => RDATA_A1_o[7]) = 0; (FLUSH2_i => RDATA_A2_o[0]) = 0; (FLUSH2_i => RDATA_A2_o[1]) = 0; (FLUSH2_i => RDATA_A2_o[2]) = 0; (FLUSH2_i => RDATA_A2_o[3]) = 0; (FLUSH2_i => RDATA_A2_o[4]) = 0; (FLUSH2_i => RDATA_A2_o[5]) = 0; (FLUSH2_i => RDATA_A2_o[6]) = 0; (FLUSH2_i => RDATA_A2_o[7]) = 0; (negedge RESET_ni => (RDATA_A1_o +: WDATA_A1_i)) = 0; (negedge RESET_ni => (RDATA_B1_o +: WDATA_B1_i)) = 0; (negedge RESET_ni => (RDATA_A2_o +: WDATA_A2_i)) = 0; (negedge RESET_ni => (RDATA_B2_o +: WDATA_B2_i)) = 0; (posedge CLK_A1_i => (RDATA_A1_o +: WDATA_A1_i)) = 0; (posedge CLK_B1_i => (RDATA_B1_o +: WDATA_B1_i)) = 0; (posedge CLK_A2_i => (RDATA_A2_o +: WDATA_A2_i)) = 0; (posedge CLK_B2_i => (RDATA_B2_o +: WDATA_B2_i)) = 0; $setuphold(posedge CLK_A1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A1_i, FLUSH1_i, 0, 0); $setuphold(posedge CLK_A1_i, WEN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, REN_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, BE_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, ADDR_A1_i, 0, 0); $setuphold(posedge CLK_A1_i, WDATA_A1_i, 0, 0); $setuphold(posedge CLK_B1_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B1_i, WEN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, REN_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, BE_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, ADDR_B1_i, 0, 0); $setuphold(posedge CLK_B1_i, WDATA_B1_i, 0, 0); $setuphold(posedge CLK_A2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_A2_i, FLUSH2_i, 0, 0); $setuphold(posedge CLK_A2_i, WEN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, REN_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, BE_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, ADDR_A2_i, 0, 0); $setuphold(posedge CLK_A2_i, WDATA_A2_i, 0, 0); $setuphold(posedge CLK_B2_i, RESET_ni, 0, 0); $setuphold(posedge CLK_B2_i, WEN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, REN_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, BE_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, ADDR_B2_i, 0, 0); $setuphold(posedge CLK_B2_i, WDATA_B2_i, 0, 0); endspecify `endif endmodule