Z
zhangbert
Guest
I am running the Xilinx ISE Release Version: 10.1.03. I am making a validation for an ARM926EJS IP core. At the step of check syntax, a series of such errors as "HDLCompilers:108 - 'a926InstrCache.v' line 3051 Part-select of scalar wire 'sNSeqVAIndex' is illegal" occurs, but when I changed to running the project including the same source files in Altera Quartus, there aren't any syntax errors. It bothering me very well. Could anyone help me? The part of program is as follows
module ...
..
wire [ 4: 2] PWFBWord
wire [ 3: 0] PWFBByteSel
..
a926CacheFB uFB
.CClk (CClk)
.CnReset (CnReset)
.PWFBFull (PWFBFull)
// .PWFBWord (PWFBWord)
.PWFBWord (PWFBWord[4:2])
// .PWFBByteSel (PWFBByteSel)
.PWFBByteSel (PWFBByteSel[3:0])
.PWFBWriteback (PWFBWriteback)
.PWFBD (PWFBD)
// .PWFBD (PWFBD[31:0])
.BIURD (BIURD)
// .BIURD (BIURD[31:0])
.CACHEBIUReady (CACHEBIUReady)
.sMemReq (sMemReq)
// .sVA (sVA)
.sVA (sVA[4:2])
.sNSeqVA (sNSeqVA[24:5])
.RawMVA (RawMVA[31:25])
.LfVA (LfVA[24:5])
.LfMVA (LfMVA[31:25])
.LfWay (LfWayFB[3:0])
.FBHit (FBHit)
.FBWordHit (FBWordHit)
.FBFull (FBFull)
.FBFilling (FBFilling)
.FBFill (FBFill)
.FBDirtyLower (FBDirtyLower)
.FBDirtyUpper (FBDirtyUpper)
.FBDrain (FBDrain)
.DATAFBUpperSel (DATAFBUpperSel)
.LFStart (LFStart)
.CP15InvalAll (CP15InvalAll)
.CP15InvalFB (CP15InvalFB)
.CNoLinefill (CNoLinefill)
.FBWD0 (FBWD0[31:0])
.FBWD1 (FBWD1[31:0])
.FBWD2 (FBWD2[31:0])
.FBWD3 (FBWD3[31:0])
.FBRD (FBRD[31:0]
)
The errors are very strange. Once the part-select index among the brackets of each variable is deleted in the instantiation of a926CacheFB module, the corresponding error will disappear. I am not sure whether the method is useful to eliminate the errors while not to change its functions because of the complexity of the project. I am sorry if I made a unclear explanation of my question. Please excuse me for my poor English.
module ...
..
wire [ 4: 2] PWFBWord
wire [ 3: 0] PWFBByteSel
..
a926CacheFB uFB
.CClk (CClk)
.CnReset (CnReset)
.PWFBFull (PWFBFull)
// .PWFBWord (PWFBWord)
.PWFBWord (PWFBWord[4:2])
// .PWFBByteSel (PWFBByteSel)
.PWFBByteSel (PWFBByteSel[3:0])
.PWFBWriteback (PWFBWriteback)
.PWFBD (PWFBD)
// .PWFBD (PWFBD[31:0])
.BIURD (BIURD)
// .BIURD (BIURD[31:0])
.CACHEBIUReady (CACHEBIUReady)
.sMemReq (sMemReq)
// .sVA (sVA)
.sVA (sVA[4:2])
.sNSeqVA (sNSeqVA[24:5])
.RawMVA (RawMVA[31:25])
.LfVA (LfVA[24:5])
.LfMVA (LfMVA[31:25])
.LfWay (LfWayFB[3:0])
.FBHit (FBHit)
.FBWordHit (FBWordHit)
.FBFull (FBFull)
.FBFilling (FBFilling)
.FBFill (FBFill)
.FBDirtyLower (FBDirtyLower)
.FBDirtyUpper (FBDirtyUpper)
.FBDrain (FBDrain)
.DATAFBUpperSel (DATAFBUpperSel)
.LFStart (LFStart)
.CP15InvalAll (CP15InvalAll)
.CP15InvalFB (CP15InvalFB)
.CNoLinefill (CNoLinefill)
.FBWD0 (FBWD0[31:0])
.FBWD1 (FBWD1[31:0])
.FBWD2 (FBWD2[31:0])
.FBWD3 (FBWD3[31:0])
.FBRD (FBRD[31:0]
)
The errors are very strange. Once the part-select index among the brackets of each variable is deleted in the instantiation of a926CacheFB module, the corresponding error will disappear. I am not sure whether the method is useful to eliminate the errors while not to change its functions because of the complexity of the project. I am sorry if I made a unclear explanation of my question. Please excuse me for my poor English.