/******************************************************************************* * Module: condition_mux * Date:2016-01-25 * Author: auto-generated file, see ahci_fsm_sequence.py * Description: Select condition *******************************************************************************/ `timescale 1ns/1ps module condition_mux ( input clk, input [ 7:0] sel, output condition, input ST_NB_ND, input PXCI0_NOT_CMDTOISSUE, input PCTI_CTBAR_XCZ, input PCTI_XCZ, input NST_D2HR, input NPD_NCA, input CHW_DMAA, input SCTL_DET_CHANGED_TO_4, input SCTL_DET_CHANGED_TO_1, input PXSSTS_DET_NE_3, input PXSSTS_DET_EQ_1, input NPCMD_FRE, input FIS_OK, input FIS_ERR, input FIS_FERR, input FIS_EXTRA, input FIS_FIRST_INVALID, input FR_D2HR, input FIS_DATA, input FIS_ANY, input NB_ND_D2HR_PIO, input D2HR, input SDB, input DMA_ACT, input DMA_SETUP, input BIST_ACT_FE, input BIST_ACT, input PIO_SETUP, input NB_ND, input TFD_STS_ERR, input FIS_I, input PIO_I, input NPD, input PIOX, input XFER0, input PIOX_XFER0, input CTBAA_CTBAP, input CTBAP, input CTBA_B, input CTBA_C, input TX_ERR, input SYNCESC_ERR, input DMA_PRD_IRQ_PEND, input X_RDY_COLLISION); wire [44:0] masked; reg [ 5:0] cond_r; assign condition = |cond_r; assign masked[ 0] = ST_NB_ND && sel[ 2] && sel[ 1] && sel[ 0]; assign masked[ 1] = PXCI0_NOT_CMDTOISSUE && sel[ 3] && sel[ 1] && sel[ 0]; assign masked[ 2] = PCTI_CTBAR_XCZ && sel[ 4] && sel[ 1] && sel[ 0]; assign masked[ 3] = PCTI_XCZ && sel[ 5] && sel[ 1] && sel[ 0]; assign masked[ 4] = NST_D2HR && sel[ 6] && sel[ 1] && sel[ 0]; assign masked[ 5] = NPD_NCA && sel[ 7] && sel[ 1] && sel[ 0]; assign masked[ 6] = CHW_DMAA && sel[ 3] && sel[ 2] && sel[ 0]; assign masked[ 7] = SCTL_DET_CHANGED_TO_4 && sel[ 4] && sel[ 2] && sel[ 0]; assign masked[ 8] = SCTL_DET_CHANGED_TO_1 && sel[ 5] && sel[ 2] && sel[ 0]; assign masked[ 9] = PXSSTS_DET_NE_3 && sel[ 6] && sel[ 2] && sel[ 0]; assign masked[10] = PXSSTS_DET_EQ_1 && sel[ 7] && sel[ 2] && sel[ 0]; assign masked[11] = NPCMD_FRE && sel[ 4] && sel[ 3] && sel[ 0]; assign masked[12] = FIS_OK && sel[ 5] && sel[ 3] && sel[ 0]; assign masked[13] = FIS_ERR && sel[ 6] && sel[ 3] && sel[ 0]; assign masked[14] = FIS_FERR && sel[ 7] && sel[ 3] && sel[ 0]; assign masked[15] = FIS_EXTRA && sel[ 5] && sel[ 4] && sel[ 0]; assign masked[16] = FIS_FIRST_INVALID && sel[ 6] && sel[ 4] && sel[ 0]; assign masked[17] = FR_D2HR && sel[ 7] && sel[ 4] && sel[ 0]; assign masked[18] = FIS_DATA && sel[ 6] && sel[ 5] && sel[ 0]; assign masked[19] = FIS_ANY && sel[ 7] && sel[ 5] && sel[ 0]; assign masked[20] = NB_ND_D2HR_PIO && sel[ 7] && sel[ 6] && sel[ 0]; assign masked[21] = D2HR && sel[ 3] && sel[ 2] && sel[ 1]; assign masked[22] = SDB && sel[ 4] && sel[ 2] && sel[ 1]; assign masked[23] = DMA_ACT && sel[ 5] && sel[ 2] && sel[ 1]; assign masked[24] = DMA_SETUP && sel[ 6] && sel[ 2] && sel[ 1]; assign masked[25] = BIST_ACT_FE && sel[ 7] && sel[ 2] && sel[ 1]; assign masked[26] = BIST_ACT && sel[ 4] && sel[ 3] && sel[ 1]; assign masked[27] = PIO_SETUP && sel[ 5] && sel[ 3] && sel[ 1]; assign masked[28] = NB_ND && sel[ 6] && sel[ 3] && sel[ 1]; assign masked[29] = TFD_STS_ERR && sel[ 7] && sel[ 3] && sel[ 1]; assign masked[30] = FIS_I && sel[ 5] && sel[ 4] && sel[ 1]; assign masked[31] = PIO_I && sel[ 6] && sel[ 4] && sel[ 1]; assign masked[32] = NPD && sel[ 7] && sel[ 4] && sel[ 1]; assign masked[33] = PIOX && sel[ 6] && sel[ 5] && sel[ 1]; assign masked[34] = XFER0 && sel[ 7] && sel[ 5] && sel[ 1]; assign masked[35] = PIOX_XFER0 && sel[ 7] && sel[ 6] && sel[ 1]; assign masked[36] = CTBAA_CTBAP && sel[ 4] && sel[ 3] && sel[ 2]; assign masked[37] = CTBAP && sel[ 5] && sel[ 3] && sel[ 2]; assign masked[38] = CTBA_B && sel[ 6] && sel[ 3] && sel[ 2]; assign masked[39] = CTBA_C && sel[ 7] && sel[ 3] && sel[ 2]; assign masked[40] = TX_ERR && sel[ 5] && sel[ 4] && sel[ 2]; assign masked[41] = SYNCESC_ERR && sel[ 6] && sel[ 4] && sel[ 2]; assign masked[42] = DMA_PRD_IRQ_PEND && sel[ 7] && sel[ 4] && sel[ 2]; assign masked[43] = X_RDY_COLLISION && sel[ 6] && sel[ 5] && sel[ 2]; assign masked[44] = !(|sel); // always TRUE condition (sel ==0) always @(posedge clk) begin cond_r[ 0] <= |masked[ 7: 0]; cond_r[ 1] <= |masked[15: 8]; cond_r[ 2] <= |masked[23:16]; cond_r[ 3] <= |masked[31:24]; cond_r[ 4] <= |masked[39:32]; cond_r[ 5] <= |masked[44:40]; end endmodule