📄 dcu3_config.cfg
字号:
## dcu3_config_var is cfg variable of the following format
##
## varname :: name of cfg variable
## index :: number of array elements
## {
## name :: register field name
## bit :: field bit start
## width :: field bit width
## }[<index>] :: array
##
##
##{{{ bit twiddling
proc dcu3_config_width_to_msk
_ST_local_width=$1 {
$$ = ~(-1 << _ST_local_width)
}
proc dcu3_config_msk_shl
_ST_local_val=$1
_ST_local_width=$2
_ST_local_shift=$3
_ST_local_msk=0x0 {
_ST_local_msk = dcu3_config_width_to_msk (_ST_local_width)
$$ = ((_ST_local_val & _ST_local_msk) << _ST_local_shift)
## write -- DBG -- dcu3_config_msk_shl res= -x ($$) _ST_local_val= (_ST_local_val) _ST_local_msk= -x (_ST_local_msk) _ST_local_shift= (_ST_local_shift) val&msk= -x (_ST_local_val & _ST_local_msk) _ST_local_width= (_ST_local_width)
}
proc dcu3_config_shr_msk
_ST_local_val=$1
_ST_local_width=$2
_ST_local_shift=$3
_ST_local_msk=0x0 {
_ST_local_msk = dcu3_config_width_to_msk (_ST_local_width)
$$ = ((_ST_local_val >> _ST_local_shift) & _ST_local_msk)
## write -- DBG -- dcu3_config_shr_msk res= ($$) _ST_local_val= -x (_ST_local_val) _ST_local_msk= -x (_ST_local_msk) _ST_local_shift= (_ST_local_shift) val>>shift= -x (_ST_local_val >> _ST_local_shift) _ST_local_width= (_ST_local_width)
}
##}}}
proc dcu3_config_decode
_ST_local_tag=$1
_ST_local_reg_val=$2
_ST_local_dcu3_config_var=$3 {
$$ = dcu3_config_shr_msk (_ST_local_reg_val) (_ST_local_dcu3_config_var[(_ST_local_tag)].width) (_ST_local_dcu3_config_var[(_ST_local_tag)].bit)
}
proc dcu3_config_decode_all
_ST_local_reg_val=$1
_ST_local_dcu3_config_var=$2
_ST_local_i=0 _ST_local_val=0 {
write decode (_ST_local_dcu3_config_var.varname) value -x (_ST_local_reg_val)
for (_ST_local_i=0; _ST_local_i < _ST_local_dcu3_config_var.index; _ST_local_i++) {
_ST_local_val = dcu3_config_decode (_ST_local_i) (_ST_local_reg_val) (_ST_local_dcu3_config_var)
write (_ST_local_dcu3_config_var[_ST_local_i].name) = (_ST_local_val)
}
}
proc dcu3_config_encode
_ST_local_tag=$1
_ST_local_val=$2
_ST_local_dcu3_config_var=$3 {
$$ = dcu3_config_msk_shl (_ST_local_val) (_ST_local_dcu3_config_var[(_ST_local_tag)].width) (_ST_local_dcu3_config_var[(_ST_local_tag)].bit)
}
proc dcu3_config_fields
_ST_local_dcu3_config_var=$1
_ST_local_i=0 {
write dump (_ST_local_dcu3_config_var.varname) array index= (_ST_local_dcu3_config_var.index)
for (_ST_local_i=0; _ST_local_i < _ST_local_dcu3_config_var.index; _ST_local_i++) {
write dcu3_config_var[ (_ST_local_i) ] name= (_ST_local_dcu3_config_var[i].name) bit= (dcu3_config_var[i].bit) width= (_ST_local_dcu3_config_var[i].width)
}
}
DCU3_config.index = 0
DCU3_config_TriggerIn_tag = DCU3_config.index++
DCU3_config[DCU3_config_TriggerIn_tag].name = "TriggerIn"
DCU3_config[DCU3_config_TriggerIn_tag].bit = 0
DCU3_config[DCU3_config_TriggerIn_tag].width = 5
DCU3_config_JumpTrace_tag = DCU3_config.index++
DCU3_config[DCU3_config_JumpTrace_tag].name = "JumpTrace"
DCU3_config[DCU3_config_JumpTrace_tag].bit = 5
DCU3_config[DCU3_config_JumpTrace_tag].width = 1
DCU3_config_Compare_tag=DCU3_config.index++
DCU3_config[DCU3_config_Compare_tag].name = "Compare"
DCU3_config[DCU3_config_Compare_tag].bit = 6
DCU3_config[DCU3_config_Compare_tag].width = 5
DCU3_config_Capture_tag=DCU3_config.index++
DCU3_config[DCU3_config_Capture_tag].name = "Capture"
DCU3_config[DCU3_config_Capture_tag].bit = 11
DCU3_config[DCU3_config_Capture_tag].width = 5
include dcu3_sequence.cfg
include dcu3_capability.cfg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -