NG Toolset開發筆記--5GNR Resource Grid(57)

10/26 update:

send DSR for msg5 scheduling is ok:

*validatePucch for all PUCCH formats to avoid time/freq-domain overlapping

*sendPucch(with sr=True) for both symbol-level period and slot-level period

*fillPucch for generic PUCCH resource mapping

*bugfix for Msg4 HARQ

 

1, Different PUCCH formats

*all PUCCH formats support intra-slot frequency hopping

*multiple-slots PUCCH format 1/3/4 can be configured to use either inter-slot frequency hopping or intra-slot frequency hopping, but not both;

  (1) if inter-slot FreqHop is enabled, even slots use startRb and odd slots use secondHopPrb, and slot numbering is started from 0 for the first PUCCH slots;

  (2) if intra-slot FreqHop is enabled, hopping pattern(startRb for 1st hop and secondHopPrb for 2nd hop) keeps the same for each slot;

*for PUCCH format 1, PUCCH symbols and its DMRS symbols are as below:

*no DMRS for PUCCH format 0

*FDM DMRS is defined for PUCCH format 2

*SR/HARQ/CSI multiplexing assumptions in current implementation:

  (1)DSR may overlap with periodic CSI: use CSI resource to send DSR/CSI. This scenario may not exist.

  (2)HARQ may overlap with periodic CSI: use HARQ resource to send HARQ/CSI, where HARQ pucch resource must be format 2/3/4.

  (3)DSR may not overlap with HARQ

 

2, Generic PUCCH resource mapping procedure

if pucchFmt == 0:
    if intraSlotFreqHop:
        #use both startRb and secondHopPrb for resource mapping
    else:
        #use startRb for resource mapping
elif pucchFmt == 1:
    if interSlotFreqHop:
        for slot in range(sl, sl+self.nrPucchFmt134NumSlots):
            if (slot - sl) % 2 == 0: #even slot
                #use startRb for resource mapping
            else:
                #use secondHopPrb for resource mapping
    else:
        if intraSlotFreqHop:
            for slot in range(sl, sl+self.nrPucchFmt134NumSlots):
                #use startRb for 1st hop and secondHopPrb for 2nd hop for each slot for resource mapping
        else:
            for slot in range(sl, sl+self.nrPucchFmt134NumSlots):
                #use startRb for resource mapping
else:
    pass
            

 

3, Examples

#part of the configurations:
contents of ["pucchFmtCfg"]: {'numSlots': 'n2', 'interSlotFreqHop': 'disabled', 'addDmrs': 'true', 'simulAckCsi': 'true'}
contents of ["pucchRes0"]: {'resId': '0', 'format': 'format 0', 'resSetId': '0', 'startRb': '0', 'intraSlotFreqHop': 'enabled', 'secondHopPrb': '272', 'numRbs': '1', 'startSymb': '0', 'numSymbs': '1'}
contents of ["pucchRes1"]: {'resId': '1', 'format': 'format 1', 'resSetId': '0', 'startRb': '0', 'intraSlotFreqHop': 'enabled', 'secondHopPrb': '272', 'numRbs': '1', 'startSymb': '0', 'numSymbs': '4'}
contents of ["dsrRes0"]: {'resId': '0', 'pucchRes': '0', 'period': 'sl10', 'offset': '8'}
contents of ["dsrRes1"]: {'resId': '1', 'pucchRes': '1', 'period': 'sym6or7', 'offset': '0'}

PUCCH format 0 with intra-slot FreqHop enabled:

[5GNR SIM]UE send DSR @ [HSFN=0, SFN=4, Slot=7]
---->inside sendPucch(hsfn=0,sfn=4,slot=7,harq=False,sr=True,csi=False,pucchResSet="dedicated")
scaleTd = 2, scaleFd = 2
selecting DSR resource: 0
valid pucch region(hsfn=0,sfn=4,slot=8) with DSR period=sl10 and offset=8

 

multiple-slots PUCCH format 1 with intra-slot FreqHop enabled:

[5GNR SIM]UE send DSR @ [HSFN=0, SFN=4, Slot=7]
---->inside sendPucch(hsfn=0,sfn=4,slot=7,harq=False,sr=True,csi=False,pucchResSet="dedicated")
scaleTd = 2, scaleFd = 2
selecting DSR resource: 1
invalid pucch region(hsfn=0,sfn=4,slot=7,l=0) with DSR period=sym6or7 and offset=0
invalid pucch region(hsfn=0,sfn=4,slot=7,l=7) with DSR period=sym6or7 and offset=0
valid pucch region(hsfn=0,sfn=4,slot=8,l=0) with DSR period=sym6or7 and offset=0
contents of pucchSymbs(w.r.t to firstSymb(=0) of PUCCH): [[1], [3]]
contents of dmrsSymbs(w.r.t to firstSymb(=0) of PUCCH): [[0], [2]]

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章