# vl2mv ibuf.v # version: 0.2 # date: () .model iqc # I/O ports .outputs load2<0> load2<1> .outputs issue0<0> issue0<1> issue0<2> .outputs load1<0> load1<1> .inputs iqLoads<0> iqLoads<1> .outputs issue1<0> issue1<1> issue1<2> .outputs load0<0> load0<1> .inputs exeReady<0> exeReady<1> .outputs valid<0> valid<1> valid<2> .inputs flush<0> flush<1> flush<2> .inputs opsReady<0> opsReady<1> opsReady<2> # qAge = 'b000 .names _n1<0> 0 .names _n1<1> 0 .names _n1<2> 0 .names _n1<0> qAge$raw_n0<0> - =_n1<0> .names _n1<1> qAge$raw_n0<1> - =_n1<1> .names _n1<2> qAge$raw_n0<2> - =_n1<2> # valid = 'b000 .names _n3<0> 0 .names _n3<1> 0 .names _n3<2> 0 .names _n3<0> valid$raw_n2<0> - =_n3<0> .names _n3<1> valid$raw_n2<1> - =_n3<1> .names _n3<2> valid$raw_n2<2> - =_n3<2> # non-blocking assignments for initial # assign load0 [0] = ~valid [0] & iqLoads [0] .names valid<0> _n5<0> 0 1 1 0 # ~valid [0] & iqLoads [0] .names _n5<0> iqLoads<0> _n6<0> .def 0 1 1 1 .names _n6<0> load0$raw_n4<0> - =_n6<0> # assign load0 [1] = ~valid [0] & ~iqLoads [0] & iqLoads [1] .names valid<0> _n8<0> 0 1 1 0 .names iqLoads<0> _n9<0> 0 1 1 0 # ~valid [0] & ~iqLoads [0] .names _n8<0> _n9<0> _na<0> .def 0 1 1 1 # ~valid [0] & ~iqLoads [0] & iqLoads [1] .names _na<0> iqLoads<1> _nb<0> .def 0 1 1 1 .names _nb<0> load0$raw_n7<1> - =_nb<0> # assign load1 [0] = ~valid [1] & valid [0] & iqLoads [0] .names valid<1> _nd<1> 0 1 1 0 # ~valid [1] & valid [0] .names _nd<1> valid<0> _ne<0> .def 0 1 1 1 # ~valid [1] & valid [0] & iqLoads [0] .names _ne<0> iqLoads<0> _nf<0> .def 0 1 1 1 .names _nf<0> load1$raw_nc<0> - =_nf<0> # assign load1 [1] = ~valid [1] & iqLoads [1] & ~(load0 [1] | load1 [0]) .names valid<1> _n11<1> 0 1 1 0 # ~valid [1] & iqLoads [1] .names _n11<1> iqLoads<1> _n12<0> .def 0 1 1 1 # load0 [1] | load1 [0] .names load0<1> load1<0> _n13<0> .def 1 0 0 0 .names _n13<0> _n14<0> 0 1 1 0 # ~valid [1] & iqLoads [1] & ~(load0 [1] | load1 [0]) .names _n12<0> _n14<0> _n15<0> .def 0 1 1 1 .names _n15<0> load1$raw_n10<1> - =_n15<0> # assign load2 [0] = ~valid [2] & valid [1] & valid [0] & iqLoads [0] .names valid<2> _n17<2> 0 1 1 0 # ~valid [2] & valid [1] .names _n17<2> valid<1> _n18<0> .def 0 1 1 1 # ~valid [2] & valid [1] & valid [0] .names _n18<0> valid<0> _n19<0> .def 0 1 1 1 # ~valid [2] & valid [1] & valid [0] & iqLoads [0] .names _n19<0> iqLoads<0> _n1a<0> .def 0 1 1 1 .names _n1a<0> load2$raw_n16<0> - =_n1a<0> # assign load2 [1] = ~valid [2] & iqLoads [1] & ~(load2 [0] | load0 [1] | load1 [1]) .names valid<2> _n1c<2> 0 1 1 0 # ~valid [2] & iqLoads [1] .names _n1c<2> iqLoads<1> _n1d<0> .def 0 1 1 1 # load2 [0] | load0 [1] .names load2<0> load0<1> _n1e<0> .def 1 0 0 0 # load2 [0] | load0 [1] | load1 [1] .names _n1e<0> load1<1> _n1f<0> .def 1 0 0 0 .names _n1f<0> _n20<0> 0 1 1 0 # ~valid [2] & iqLoads [1] & ~(load2 [0] | load0 [1] | load1 [1]) .names _n1d<0> _n20<0> _n21<0> .def 0 1 1 1 .names _n21<0> load2$raw_n1b<1> - =_n21<0> # assign issue0 [0] = exeReady [0] & opsReady [0] & valid [0] & (qAge [0] | ~opsReady [1]) & (qAge [1] | ~opsReady [2]) # exeReady [0] & opsReady [0] .names exeReady<0> opsReady<0> _n23<0> .def 0 1 1 1 # exeReady [0] & opsReady [0] & valid [0] .names _n23<0> valid<0> _n24<0> .def 0 1 1 1 .names opsReady<1> _n25<1> 0 1 1 0 # qAge [0] | ~opsReady [1] .names qAge<0> _n25<1> _n26<0> .def 1 0 0 0 # exeReady [0] & opsReady [0] & valid [0] & (qAge [0] | ~opsReady [1]) .names _n24<0> _n26<0> _n27<0> .def 0 1 1 1 .names opsReady<2> _n28<2> 0 1 1 0 # qAge [1] | ~opsReady [2] .names qAge<1> _n28<2> _n29<0> .def 1 0 0 0 # exeReady [0] & opsReady [0] & valid [0] & (qAge [0] | ~opsReady [1]) & (qAge [1] | ~opsReady [2]) .names _n27<0> _n29<0> _n2a<0> .def 0 1 1 1 .names _n2a<0> issue0$raw_n22<0> - =_n2a<0> # assign issue0 [1] = exeReady [0] & opsReady [1] & valid [1] & (~qAge [0] | ~opsReady [0]) & (qAge [2] | ~opsReady [2]) # exeReady [0] & opsReady [1] .names exeReady<0> opsReady<1> _n2c<0> .def 0 1 1 1 # exeReady [0] & opsReady [1] & valid [1] .names _n2c<0> valid<1> _n2d<0> .def 0 1 1 1 .names qAge<0> _n2e<0> 0 1 1 0 .names opsReady<0> _n2f<0> 0 1 1 0 # ~qAge [0] | ~opsReady [0] .names _n2e<0> _n2f<0> _n30<0> .def 1 0 0 0 # exeReady [0] & opsReady [1] & valid [1] & (~qAge [0] | ~opsReady [0]) .names _n2d<0> _n30<0> _n31<0> .def 0 1 1 1 .names opsReady<2> _n32<2> 0 1 1 0 # qAge [2] | ~opsReady [2] .names qAge<2> _n32<2> _n33<0> .def 1 0 0 0 # exeReady [0] & opsReady [1] & valid [1] & (~qAge [0] | ~opsReady [0]) & (qAge [2] | ~opsReady [2]) .names _n31<0> _n33<0> _n34<0> .def 0 1 1 1 .names _n34<0> issue0$raw_n2b<1> - =_n34<0> # assign issue0 [2] = exeReady [0] & opsReady [2] & valid [2] & (~qAge [1] | ~opsReady [0]) & (qAge [2] | ~opsReady [1]) # exeReady [0] & opsReady [2] .names exeReady<0> opsReady<2> _n36<0> .def 0 1 1 1 # exeReady [0] & opsReady [2] & valid [2] .names _n36<0> valid<2> _n37<0> .def 0 1 1 1 .names qAge<1> _n38<1> 0 1 1 0 .names opsReady<0> _n39<0> 0 1 1 0 # ~qAge [1] | ~opsReady [0] .names _n38<1> _n39<0> _n3a<0> .def 1 0 0 0 # exeReady [0] & opsReady [2] & valid [2] & (~qAge [1] | ~opsReady [0]) .names _n37<0> _n3a<0> _n3b<0> .def 0 1 1 1 .names opsReady<1> _n3c<1> 0 1 1 0 # qAge [2] | ~opsReady [1] .names qAge<2> _n3c<1> _n3d<0> .def 1 0 0 0 # exeReady [0] & opsReady [2] & valid [2] & (~qAge [1] | ~opsReady [0]) & (qAge [2] | ~opsReady [1]) .names _n3b<0> _n3d<0> _n3e<0> .def 0 1 1 1 .names _n3e<0> issue0$raw_n35<2> - =_n3e<0> # assign issue1 [0] = exeReady [1] & opsReady [0] & valid [0] & (qAge [0] | ~opsReady [1] | issue0 [1]) & (qAge [1] | ~opsReady [2] | issue0 [2]) & ~issue0 [0] # exeReady [1] & opsReady [0] .names exeReady<1> opsReady<0> _n40<0> .def 0 1 1 1 # exeReady [1] & opsReady [0] & valid [0] .names _n40<0> valid<0> _n41<0> .def 0 1 1 1 .names opsReady<1> _n42<1> 0 1 1 0 # qAge [0] | ~opsReady [1] .names qAge<0> _n42<1> _n43<0> .def 1 0 0 0 # qAge [0] | ~opsReady [1] | issue0 [1] .names _n43<0> issue0<1> _n44<0> .def 1 0 0 0 # exeReady [1] & opsReady [0] & valid [0] & (qAge [0] | ~opsReady [1] | issue0 [1]) .names _n41<0> _n44<0> _n45<0> .def 0 1 1 1 .names opsReady<2> _n46<2> 0 1 1 0 # qAge [1] | ~opsReady [2] .names qAge<1> _n46<2> _n47<0> .def 1 0 0 0 # qAge [1] | ~opsReady [2] | issue0 [2] .names _n47<0> issue0<2> _n48<0> .def 1 0 0 0 # exeReady [1] & opsReady [0] & valid [0] & (qAge [0] | ~opsReady [1] | issue0 [1]) & (qAge [1] | ~opsReady [2] | issue0 [2]) .names _n45<0> _n48<0> _n49<0> .def 0 1 1 1 .names issue0<0> _n4a<0> 0 1 1 0 # exeReady [1] & opsReady [0] & valid [0] & (qAge [0] | ~opsReady [1] | issue0 [1]) & (qAge [1] | ~opsReady [2] | issue0 [2]) & ~issue0 [0] .names _n49<0> _n4a<0> _n4b<0> .def 0 1 1 1 .names _n4b<0> issue1$raw_n3f<0> - =_n4b<0> # assign issue1 [1] = exeReady [1] & opsReady [1] & valid [1] & (~qAge [0] | ~opsReady [0] | issue0 [0]) & (qAge [2] | ~opsReady [2] | issue0 [2]) & ~issue0 [1] # exeReady [1] & opsReady [1] .names exeReady<1> opsReady<1> _n4d<0> .def 0 1 1 1 # exeReady [1] & opsReady [1] & valid [1] .names _n4d<0> valid<1> _n4e<0> .def 0 1 1 1 .names qAge<0> _n4f<0> 0 1 1 0 .names opsReady<0> _n50<0> 0 1 1 0 # ~qAge [0] | ~opsReady [0] .names _n4f<0> _n50<0> _n51<0> .def 1 0 0 0 # ~qAge [0] | ~opsReady [0] | issue0 [0] .names _n51<0> issue0<0> _n52<0> .def 1 0 0 0 # exeReady [1] & opsReady [1] & valid [1] & (~qAge [0] | ~opsReady [0] | issue0 [0]) .names _n4e<0> _n52<0> _n53<0> .def 0 1 1 1 .names opsReady<2> _n54<2> 0 1 1 0 # qAge [2] | ~opsReady [2] .names qAge<2> _n54<2> _n55<0> .def 1 0 0 0 # qAge [2] | ~opsReady [2] | issue0 [2] .names _n55<0> issue0<2> _n56<0> .def 1 0 0 0 # exeReady [1] & opsReady [1] & valid [1] & (~qAge [0] | ~opsReady [0] | issue0 [0]) & (qAge [2] | ~opsReady [2] | issue0 [2]) .names _n53<0> _n56<0> _n57<0> .def 0 1 1 1 .names issue0<1> _n58<1> 0 1 1 0 # exeReady [1] & opsReady [1] & valid [1] & (~qAge [0] | ~opsReady [0] | issue0 [0]) & (qAge [2] | ~opsReady [2] | issue0 [2]) & ~issue0 [1] .names _n57<0> _n58<1> _n59<0> .def 0 1 1 1 .names _n59<0> issue1$raw_n4c<1> - =_n59<0> # assign issue1 [2] = exeReady [1] & opsReady [2] & valid [2] & (~qAge [1] | ~opsReady [0] | issue0 [0]) & (qAge [2] | ~opsReady [1] | issue0 [1]) & ~issue0 [2] # exeReady [1] & opsReady [2] .names exeReady<1> opsReady<2> _n5b<0> .def 0 1 1 1 # exeReady [1] & opsReady [2] & valid [2] .names _n5b<0> valid<2> _n5c<0> .def 0 1 1 1 .names qAge<1> _n5d<1> 0 1 1 0 .names opsReady<0> _n5e<0> 0 1 1 0 # ~qAge [1] | ~opsReady [0] .names _n5d<1> _n5e<0> _n5f<0> .def 1 0 0 0 # ~qAge [1] | ~opsReady [0] | issue0 [0] .names _n5f<0> issue0<0> _n60<0> .def 1 0 0 0 # exeReady [1] & opsReady [2] & valid [2] & (~qAge [1] | ~opsReady [0] | issue0 [0]) .names _n5c<0> _n60<0> _n61<0> .def 0 1 1 1 .names opsReady<1> _n62<1> 0 1 1 0 # qAge [2] | ~opsReady [1] .names qAge<2> _n62<1> _n63<0> .def 1 0 0 0 # qAge [2] | ~opsReady [1] | issue0 [1] .names _n63<0> issue0<1> _n64<0> .def 1 0 0 0 # exeReady [1] & opsReady [2] & valid [2] & (~qAge [1] | ~opsReady [0] | issue0 [0]) & (qAge [2] | ~opsReady [1] | issue0 [1]) .names _n61<0> _n64<0> _n65<0> .def 0 1 1 1 .names issue0<2> _n66<2> 0 1 1 0 # exeReady [1] & opsReady [2] & valid [2] & (~qAge [1] | ~opsReady [0] | issue0 [0]) & (qAge [2] | ~opsReady [1] | issue0 [1]) & ~issue0 [2] .names _n65<0> _n66<2> _n67<0> .def 0 1 1 1 .names _n67<0> issue1$raw_n5a<2> - =_n67<0> # assign nv0 = ~flush [0] & (valid [0] & ~(issue0 [0] | issue1 [0]) | load0 ) .names flush<0> _n69<0> 0 1 1 0 # issue0 [0] | issue1 [0] .names issue0<0> issue1<0> _n6a<0> .def 1 0 0 0 .names _n6a<0> _n6b<0> 0 1 1 0 # valid [0] & ~(issue0 [0] | issue1 [0]) .names valid<0> _n6b<0> _n6c<0> .def 0 1 1 1 # valid [0] & ~(issue0 [0] | issue1 [0]) | load0 .names _n6c<0> load0<0> _n6d<0> .def 1 0 0 0 .names load0<1> _n6d<1> 0 0 1 1 # ~flush [0] & (valid [0] & ~(issue0 [0] | issue1 [0]) | load0 ) .names _n69<0> _n6d<0> _n6e<0> .def 0 1 1 1 .names _n6d<1> _n6e<1> 0 0 1 1 .names _n6e<0> nv0$raw_n68 - =_n6e<0> # assign nv1 = ~flush [1] & (valid [1] & ~(issue0 [1] | issue1 [1]) | load1 ) .names flush<1> _n70<1> 0 1 1 0 # issue0 [1] | issue1 [1] .names issue0<1> issue1<1> _n71<0> .def 1 0 0 0 .names _n71<0> _n72<0> 0 1 1 0 # valid [1] & ~(issue0 [1] | issue1 [1]) .names valid<1> _n72<0> _n73<0> .def 0 1 1 1 # valid [1] & ~(issue0 [1] | issue1 [1]) | load1 .names _n73<0> load1<0> _n74<0> .def 1 0 0 0 .names load1<1> _n74<1> 0 0 1 1 # ~flush [1] & (valid [1] & ~(issue0 [1] | issue1 [1]) | load1 ) .names _n70<1> _n74<0> _n75<0> .def 0 1 1 1 .names _n74<1> _n75<1> 0 0 1 1 .names _n75<0> nv1$raw_n6f - =_n75<0> # assign nv2 = ~flush [2] & (valid [2] & ~(issue0 [2] | issue1 [2]) | load2 ) .names flush<2> _n77<2> 0 1 1 0 # issue0 [2] | issue1 [2] .names issue0<2> issue1<2> _n78<0> .def 1 0 0 0 .names _n78<0> _n79<0> 0 1 1 0 # valid [2] & ~(issue0 [2] | issue1 [2]) .names valid<2> _n79<0> _n7a<0> .def 0 1 1 1 # valid [2] & ~(issue0 [2] | issue1 [2]) | load2 .names _n7a<0> load2<0> _n7b<0> .def 1 0 0 0 .names load2<1> _n7b<1> 0 0 1 1 # ~flush [2] & (valid [2] & ~(issue0 [2] | issue1 [2]) | load2 ) .names _n77<2> _n7b<0> _n7c<0> .def 0 1 1 1 .names _n7b<1> _n7c<1> 0 0 1 1 .names _n7c<0> nv2$raw_n76 - =_n7c<0> # valid [0] = nv0 .names nv0 valid$raw_n7d<0> - =nv0 .names _n7e 0 .names valid<1> valid$raw_n7d<1> - =valid<1> .names valid<2> valid$raw_n7d<2> - =valid<2> # valid [1] = nv1 .names nv1 valid$raw_n7f<1> - =nv1 .names _n80 0 .names valid$raw_n7d<0> valid$raw_n7f<0> - =valid$raw_n7d<0> .names valid$raw_n7d<2> valid$raw_n7f<2> - =valid$raw_n7d<2> # valid [2] = nv2 .names nv2 valid$raw_n81<2> - =nv2 .names _n82 0 .names valid$raw_n7f<0> valid$raw_n81<0> - =valid$raw_n7f<0> .names valid$raw_n7f<1> valid$raw_n81<1> - =valid$raw_n7f<1> # qAge [0] = nv0 & (~nv1 | qAge [0] | ~valid [1]) .names nv1 _n84 0 1 1 0 # ~nv1 | qAge [0] .names _n84 qAge<0> _n85<0> .def 1 0 0 0 .names valid$raw_n81<1> _n86<1> 0 1 1 0 # ~nv1 | qAge [0] | ~valid [1] .names _n85<0> _n86<1> _n87<0> .def 1 0 0 0 # nv0 & (~nv1 | qAge [0] | ~valid [1]) .names nv0 _n87<0> _n88<0> .def 0 1 1 1 .names _n88<0> qAge$raw_n83<0> - =_n88<0> .names qAge<1> qAge$raw_n83<1> - =qAge<1> .names qAge<2> qAge$raw_n83<2> - =qAge<2> # qAge [1] = nv0 & (~nv2 | qAge [1] | ~valid [2]) .names nv2 _n8a 0 1 1 0 # ~nv2 | qAge [1] .names _n8a qAge$raw_n83<1> _n8b<1> .def 1 0 0 0 .names valid$raw_n81<2> _n8c<2> 0 1 1 0 # ~nv2 | qAge [1] | ~valid [2] .names _n8b<1> _n8c<2> _n8d<0> .def 1 0 0 0 # nv0 & (~nv2 | qAge [1] | ~valid [2]) .names nv0 _n8d<0> _n8e<0> .def 0 1 1 1 .names _n8e<0> qAge$raw_n89<1> - =_n8e<0> .names qAge$raw_n83<0> qAge$raw_n89<0> - =qAge$raw_n83<0> .names qAge$raw_n83<2> qAge$raw_n89<2> - =qAge$raw_n83<2> # qAge [2] = nv1 & (~nv2 | qAge [2] | ~valid [2]) .names nv2 _n90 0 1 1 0 # ~nv2 | qAge [2] .names _n90 qAge$raw_n89<2> _n91<2> .def 1 0 0 0 .names valid$raw_n81<2> _n92<2> 0 1 1 0 # ~nv2 | qAge [2] | ~valid [2] .names _n91<2> _n92<2> _n93<0> .def 1 0 0 0 # nv1 & (~nv2 | qAge [2] | ~valid [2]) .names nv1 _n93<0> _n94<0> .def 0 1 1 1 .names _n94<0> qAge$raw_n8f<2> - =_n94<0> .names qAge$raw_n89<0> qAge$raw_n8f<0> - =qAge$raw_n89<0> .names qAge$raw_n89<1> qAge$raw_n8f<1> - =qAge$raw_n89<1> # conflict arbitrators .names load2$raw_n16<0> load2<0> - =load2$raw_n16<0> .names load2$raw_n1b<1> load2<1> - =load2$raw_n1b<1> .names issue0$raw_n22<0> issue0<0> - =issue0$raw_n22<0> .names issue0$raw_n2b<1> issue0<1> - =issue0$raw_n2b<1> .names issue0$raw_n35<2> issue0<2> - =issue0$raw_n35<2> .names load1$raw_nc<0> load1<0> - =load1$raw_nc<0> .names load1$raw_n10<1> load1<1> - =load1$raw_n10<1> .names issue1$raw_n3f<0> issue1<0> - =issue1$raw_n3f<0> .names issue1$raw_n4c<1> issue1<1> - =issue1$raw_n4c<1> .names issue1$raw_n5a<2> issue1<2> - =issue1$raw_n5a<2> .names load0$raw_n4<0> load0<0> - =load0$raw_n4<0> .names load0$raw_n7<1> load0<1> - =load0$raw_n7<1> .names _n95 .def 0 1 1 1 .names _n95 qAge$raw_n8f<0> qAge$raw_n8f<1> qAge$raw_n8f<2> -> _n96<0> _n96<1> _n96<2> .def 0 0 0 1 - - - =qAge$raw_n8f<0> =qAge$raw_n8f<1> =qAge$raw_n8f<2> .names nv0$raw_n68 nv0 0 0 1 1 .names nv1$raw_n6f nv1 0 0 1 1 .names _n97 .def 0 1 1 1 .names _n97 valid$raw_n81<0> valid$raw_n81<1> valid$raw_n81<2> -> _n98<0> _n98<1> _n98<2> .def 0 0 0 1 - - - =valid$raw_n81<0> =valid$raw_n81<1> =valid$raw_n81<2> .names nv2$raw_n76 nv2 0 0 1 1 # non-blocking assignments # latches .r qAge$raw_n0<0> qAge<0> .def 0 1 1 .r qAge$raw_n0<1> qAge<1> .def 0 1 1 .r qAge$raw_n0<2> qAge<2> .def 0 1 1 .latch _n96<0> qAge<0> .latch _n96<1> qAge<1> .latch _n96<2> qAge<2> .r valid$raw_n2<0> valid<0> .def 0 1 1 .r valid$raw_n2<1> valid<1> .def 0 1 1 .r valid$raw_n2<2> valid<2> .def 0 1 1 .latch _n98<0> valid<0> .latch _n98<1> valid<1> .latch _n98<2> valid<2> # quasi-continuous assignment .end