/* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ @ file : Ver ik Ċ @ file : Suppress (" ClassName ") Ċ Ċ package Ġd ut Ċ Ċ import Ġio . ver ik . core .* Ċ Ċ class Ġthree _ cycle ( ĊĠĠĠ Ġ@ In Ġvar ĠA : ĠU bit < ` 8 ` >, ĊĠĠĠ Ġ@ In Ġvar ĠB : ĠU bit < ` 8 ` >, ĊĠĠĠ Ġ@ In Ġvar Ġclk : ĠBoolean , ĊĠĠĠ Ġ@ In Ġvar Ġreset _ n : ĠBoolean , ĊĠĠĠ Ġ@ In Ġvar Ġstart : ĠBoolean , ĊĠĠĠ Ġ@ Out Ġvar Ġdone _ mult : ĠBoolean , ĊĠĠĠ Ġ@ Out Ġvar Ġresult _ mult : ĠU bit < ` 1 6 ` > Ċ ) Ġ: ĠModule () Ġ{ ĊĊĠĠĠ Ġvar Ġa _ int : ĠU bit < ` 8 ` > Ġ= Ġnc () ĊĠĠĠ Ġvar Ġb _ int : ĠU bit < ` 8 ` > Ġ= Ġnc () ĊĠĠĠ Ġvar Ġmult 1 : ĠU bit < ` 1 6 ` > Ġ= Ġnc () ĊĠĠĠ Ġvar Ġmult 2 : ĠU bit < ` 1 6 ` > Ġ= Ġnc () ĊĠĠĠ Ġvar Ġdone 3 : ĠBoolean Ġ= Ġnc () ĊĠĠĠ Ġvar Ġdone 2 : ĠBoolean Ġ= Ġnc () ĊĠĠĠ Ġvar Ġdone 1 : ĠBoolean Ġ= Ġnc () ĊĠĠĠ Ġvar Ġdone _ mult _ int : ĠBoolean Ġ= Ġnc () ĊĊĠĠĠ Ġ@ Seq ĊĠĠĠ Ġfun Ġmult () Ġ{ ĊĠĠĠĠĠĠĠ Ġon ( posed ge ( clk ), Ġne ged ge ( reset _ n )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! reset _ n ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone _ mult _ int Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone 3 Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone 2 Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone 1 Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa _ int Ġ= Ġu 0 () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb _ int Ġ= Ġu 0 () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmult 1 Ġ= Ġu 0 () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmult 2 Ġ= Ġu 0 () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult _ mult Ġ= Ġu 0 () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa _ int Ġ= ĠA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb _ int Ġ= ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmult 1 Ġ= Ġa _ int Ġmul Ġb _ int ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmult 2 Ġ= Ġmult 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult _ mult Ġ= Ġmult 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone 3 Ġ= Ġstart Ġ&& Ġ! done _ mult _ int ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone 2 Ġ= Ġdone 3 Ġ&& Ġ! done _ mult _ int ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone 1 Ġ= Ġdone 2 Ġ&& Ġ! done _ mult _ int ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone _ mult _ int Ġ= Ġdone 1 Ġ&& Ġ! done _ mult _ int ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Com ĊĠĠĠ Ġfun Ġset _ done _ mult () Ġ{ ĊĠĠĠĠĠĠĠ Ġdone _ mult Ġ= Ġdone _ mult _ int ĊĠĠĠ Ġ} Ċ } Ċ