縮減運算符是單目運算符,也有與或非運算。其與或非運算規則類似于位運算符的與或非運算規則,但其運算過程不同。位運算是對操作數的相應位進行與或非運算,操作數是幾位數則運算結果也是幾位數。而縮減運算則不同,縮減運算是對單個操作數進行與或非遞推運算,最后的運算結果是一位的二進制數。縮減運算的具體運算過程是這樣的:第一步先將操作數的第一位與第二位進行與或非運算,第二步將運算結果與第三位進行與或非運算,依次類推,直到最后一位。例如: reg[3:0]B; reg C; C=&B; 相當于 C=((B[0]&B[1])&B[2])&B[3]; 下面我們編寫一個實例,通過仿真波形來驗證運算結果是否如我們所說。可綜合模塊如下: 編寫測試代碼如下: 仿真波形如下: 通過該波形可以看出,當變量B的四個位全部為高時,由于是“邏輯與”的運算,所以最終輸出的變量C為高電平。 那么如果我們在變量B中加入一個零,結果會如何呢?我們仿真如下: 可以看到,如果變量B中存在零,那么輸出結果由于“邏輯與”會得到低電平。 -------------------------------------------------------------------------------------------------------------------- E-mail:zxopen09@126.com QQ:984456098 |