完善单通道case生成器RAMP部分,增加RAMP Case

This commit is contained in:
yangshenbo 2026-08-28 11:04:37 +08:00
parent 575f649c28
commit 43b1b7554c
37 changed files with 1049 additions and 44 deletions

View File

@ -0,0 +1,62 @@
{
"chip_mode": "RAMP",
"ramp_ctrl": "MCU",
"inner_sync": true,
"instr_type": "ramp_fixed",
"fixed_value": [
32768,
33280,
34816,
37376,
40960,
45568,
51200,
57856,
65535,
57856,
51200,
45568,
40960,
37376,
34816,
33280
],
"wait_clk": [
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000
],
"config_param_num": 16,
"ensemble_num": 0,
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\RAMP",
"CaseName": "RAMP_MCU_FIXED",
"config_file": "gen_cases\\RAMP\\RAMP_MCU_FIXED_HEX.txt"
}

View File

@ -0,0 +1,95 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00300108
00100004
00000008
00300124
00100004
40000000
002000dc
0010008c
80000000
00000000
00000010
80008000
000003e8
82008000
000003e8
88008000
000003e8
92008000
000003e8
a0008000
000003e8
b2008000
000003e8
c8008000
000003e8
e2008000
000003e8
ffff8000
000003e8
e2008000
000003e8
c8008000
000003e8
b2008000
000003e8
a0008000
000003e8
92008000
000003e8
88008000
000003e8
82008000
000003e8
00100000
00100060
001000b7
00200137
0dc0af83
0df12223
00800193
0e00a203
fff20213
00008313
0e40a283
fff28293
0e832f83
0ec32f03
0bf12c23
00330333
00029463
00c0006f
fe8f000b
fe1ff06f
fdcf000b
fc0216e3
00f0000b
0a012c23
0c012223
0000002b
00500000
00100004
00000000
00000044
00100004
00030001
80000044
00100050

View File

@ -0,0 +1,38 @@
{
"chip_mode": "RAMP",
"ramp_ctrl": "MCU",
"inner_sync": true,
"instr_type": "ramp_step",
"ensemble_num": 0,
"param_num": 4,
"height": [
128,
256,
512,
1024
],
"step_time": [
50,
50,
50,
50
],
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\RAMP",
"CaseName": "RAMP_MCU_STEP",
"config_file": "gen_cases\\RAMP\\RAMP_MCU_STEP_HEX.txt"
}

View File

@ -0,0 +1,75 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00300108
00100004
00000008
00300124
00100004
40000000
002000dc
00100040
00000000
80000000
00000004
00000000
00800000
00000032
00006400
01000000
00000032
00003200
02000000
00000032
00001900
04000000
00000032
00000c80
00100000
0010005c
001000b7
00200137
0dc0af83
0bf12c23
0e00ae03
00c00313
0e80a383
fff38393
00008413
0e40a283
fff28293
0ec42f83
0f042f03
0f442e83
00640433
0de12023
0bf12e23
0dc12223
fe2e800b
fc029ee3
fc0396e3
0c012223
0000002b
00500000
00100004
00000000
00000044
00100004
00030001
80000044
00100050

View File

@ -0,0 +1,27 @@
{
"chip_mode": "RAMP",
"ramp_ctrl": "SPI",
"inner_sync": true,
"fixed_enable": true,
"fixed_value": 22767,
"height": 512,
"step_time": 32,
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\RAMP",
"CaseName": "RAMP_SPI_FIXED",
"config_file": "gen_cases\\RAMP\\RAMP_SPI_FIXED_HEX.txt"
}

View File

@ -0,0 +1,38 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00300108
00100004
00000008
00300118
00100004
58ef8000
00300124
00100004
80000000
00500000
00100004
00000000
00100000
00100004
0000002b
00000044
00100004
00030001
80000044
00100050

View File

@ -0,0 +1,27 @@
{
"chip_mode": "RAMP",
"ramp_ctrl": "SPI",
"inner_sync": true,
"fixed_enable": false,
"fixed_value": 22767,
"height": 512,
"step_time": 32,
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\RAMP",
"CaseName": "RAMP_SPI_STEP",
"config_file": "gen_cases\\RAMP\\RAMP_SPI_STEP_HEX.txt"
}

View File

@ -0,0 +1,40 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00300108
00100004
00000008
00300118
0010000c
00000000
02000000
00000020
00300124
00100004
80000000
00500000
00100004
00000000
00100000
00100004
0000002b
00000044
00100004
00030001
80000044
00100050

View File

@ -0,0 +1,91 @@
# 单通道Z芯片测试仿真波形
## 基本功能测试大纲
![image-20260827102345536](./单通道Z测试仿真波形.assets/image-20260827102345536.png)
以下仅展示仿真示例。
### AWG模块
#### NCO
##### TC_AWG_NCO_FREQ
![NCO](./单通道Z测试仿真波形.assets/NCO.png)
##### TC_AWG_NCO_PHA
45度时
![NCO_45deg](./单通道Z测试仿真波形.assets/NCO_45deg.png)
120度
![NCO_120deg](./单通道Z测试仿真波形.assets/NCO_120deg.png)
#### NCO_FM
##### TC_AWG_NCO_FM_FREQ
NCO_FM的频率,为输入频率的两倍。(默认具有倍频属性)
![NCO](./单通道Z测试仿真波形.assets/NCO.png)
##### TC_AWG_NCO_FM_PHA
NCO_FM的的60度时,应与NCO的120度Case波形一致。
![NCO_120deg](./单通道Z测试仿真波形.assets/NCO_120deg.png)
#### ENV
##### TC_AWG_ENV_OUT
一共七个波形,分别是rect_hold,flattop_hold,acz,accz,cosine,rec,flattop
![ENV_OUT](./单通道Z测试仿真波形.assets/ENV_OUT.png)
##### TC_AWG_ENV_TAILCOR
![ENV_TAILCOR](./单通道Z测试仿真波形.assets/ENV_TAILCOR.png)
#### MOD
##### TC_AWG_MOD_COMMON
![常见的调制波形](./单通道Z测试仿真波形.assets/常见的调制波形.png)
##### TC_AWG_MOD_DUAL_FREQ
![MOD_DUAL_FREQ](./单通道Z测试仿真波形.assets/MOD_DUAL_FREQ.png)
##### TC_AWG_MOD_TAILCOR
![image-20260827174805866](./单通道Z测试仿真波形.assets/image-20260827174805866.png)
这个波形可能有点小问题
### RAMP
#### FIXED
##### TC_RAMP_SPI_FIXED
![image-20260828102318574](./单通道Z测试仿真波形.assets/image-20260828102318574.png)
##### TC_RAMP_MCU_FIXED
![image-20260828104336848](./单通道Z测试仿真波形.assets/image-20260828104336848.png)
#### STEP
##### TC_RAMP_SPI_STEP
![image-20260828102421282](./单通道Z测试仿真波形.assets/image-20260828102421282.png)
##### TC_RAMP_MCU_STEP
![image-20260828110050371](./单通道Z测试仿真波形.assets/image-20260828110050371.png)

View File

@ -310,11 +310,7 @@ class AssemblyTemplateManager:
def _write_machine_codes_to_chip(self, machine_codes: str, **kwargs):
channel_id = kwargs.get('channel_id', 0)
self.mk_instr.write(machine_codes, self.config_file, chip_id = channel_id, show=kwargs.pop('instr_show', False))
if 'inner_sync' in kwargs:
inner_sync = kwargs.pop('inner_sync')
if inner_sync:
self.write_register(addr_base['SYST_BASE']+reg_define['sys_reg']['SYNCR'], 3<<16 | 1)
self.mk.rw_once('r', addr_base['SYST_BASE']+reg_define['pll_reg']['INTPLL_CLKRXPD'], [0]*20, self.config_file)
# self.mk.rw_once('r', addr_base['DBGM_BASE'], [0]*2048, self.config_file)
def instruction_config(mk_instance, mk_instr, **kwargs):

View File

@ -255,6 +255,7 @@ class ZChipConfig(object):
def _ramp_config(self, **kwargs):
self.write_register(addr_base['CTRL0_BASE'] + reg_define['ctrl_reg']['MODDOTR'], 8) # 切换到RAMP输出
ramp_ctrl = kwargs.pop('ramp_ctrl')
if ramp_ctrl == 'MCU': # RAMP连到 mcu_regfile
self.write_register(addr_base['CTRL0_BASE'] + reg_define['ctrl_reg']['SPI_RAMPENR'], 1 << 30)
@ -281,6 +282,7 @@ class ZChipConfig(object):
def _awg_config(self, **kwargs):
#数据选择寄存器300108配置开始
# 模式与寄存器数值的映射字典 (Bit 2 和 Bit[1:0])

View File

@ -440,6 +440,3 @@ f6000ce3
80000044
00100050
81900000
00102000

View File

@ -0,0 +1,62 @@
{
"chip_mode": "RAMP",
"ramp_ctrl": "MCU",
"inner_sync": true,
"instr_type": "ramp_fixed",
"fixed_value": [
32768,
33280,
34816,
37376,
40960,
45568,
51200,
57856,
65535,
57856,
51200,
45568,
40960,
37376,
34816,
33280
],
"wait_clk": [
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000,
1000
],
"config_param_num": 16,
"ensemble_num": 0,
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\RAMP",
"CaseName": "RAMP_MCU_FIXED",
"config_file": "gen_cases\\RAMP\\RAMP_MCU_FIXED_HEX.txt"
}

View File

@ -0,0 +1,95 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00300108
00100004
00000008
00300124
00100004
40000000
002000dc
0010008c
80000000
00000000
00000010
80008000
000003e8
82008000
000003e8
88008000
000003e8
92008000
000003e8
a0008000
000003e8
b2008000
000003e8
c8008000
000003e8
e2008000
000003e8
ffff8000
000003e8
e2008000
000003e8
c8008000
000003e8
b2008000
000003e8
a0008000
000003e8
92008000
000003e8
88008000
000003e8
82008000
000003e8
00100000
00100060
001000b7
00200137
0dc0af83
0df12223
00800193
0e00a203
fff20213
00008313
0e40a283
fff28293
0e832f83
0ec32f03
0bf12c23
00330333
00029463
00c0006f
fe8f000b
fe1ff06f
fdcf000b
fc0216e3
00f0000b
0a012c23
0c012223
0000002b
00500000
00100004
00000000
00000044
00100004
00030001
80000044
00100050

View File

@ -0,0 +1,38 @@
{
"chip_mode": "RAMP",
"ramp_ctrl": "MCU",
"inner_sync": true,
"instr_type": "ramp_step",
"ensemble_num": 0,
"param_num": 4,
"height": [
128,
256,
512,
1024
],
"step_time": [
50,
50,
50,
50
],
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\RAMP",
"CaseName": "RAMP_MCU_STEP",
"config_file": "gen_cases\\RAMP\\RAMP_MCU_STEP_HEX.txt"
}

View File

@ -0,0 +1,75 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00300108
00100004
00000008
00300124
00100004
40000000
002000dc
00100040
00000000
80000000
00000004
00000000
00800000
00000032
00006400
01000000
00000032
00003200
02000000
00000032
00001900
04000000
00000032
00000c80
00100000
0010005c
001000b7
00200137
0dc0af83
0bf12c23
0e00ae03
00c00313
0e80a383
fff38393
00008413
0e40a283
fff28293
0ec42f83
0f042f03
0f442e83
00640433
0de12023
0bf12e23
0dc12223
fe2e800b
fc029ee3
fc0396e3
0c012223
0000002b
00500000
00100004
00000000
00000044
00100004
00030001
80000044
00100050

View File

@ -0,0 +1,27 @@
{
"chip_mode": "RAMP",
"ramp_ctrl": "SPI",
"inner_sync": true,
"fixed_enable": true,
"fixed_value": 22767,
"height": 512,
"step_time": 32,
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\RAMP",
"CaseName": "RAMP_SPI_FIXED",
"config_file": "gen_cases\\RAMP\\RAMP_SPI_FIXED_HEX.txt"
}

View File

@ -0,0 +1,38 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00300108
00100004
00000008
00300118
00100004
58ef8000
00300124
00100004
80000000
00500000
00100004
00000000
00100000
00100004
0000002b
00000044
00100004
00030001
80000044
00100050

View File

@ -0,0 +1,27 @@
{
"chip_mode": "RAMP",
"ramp_ctrl": "SPI",
"inner_sync": true,
"fixed_enable": false,
"fixed_value": 22767,
"height": 512,
"step_time": 32,
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\RAMP",
"CaseName": "RAMP_SPI_STEP",
"config_file": "gen_cases\\RAMP\\RAMP_SPI_STEP_HEX.txt"
}

View File

@ -0,0 +1,40 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00300108
00100004
00000008
00300118
0010000c
00000000
02000000
00000020
00300124
00100004
80000000
00500000
00100004
00000000
00100000
00100004
0000002b
00000044
00100004
00030001
80000044
00100050

View File

@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 26,
"id": "initial_id",
"metadata": {
"ExecuteTime": {
@ -11,7 +11,16 @@
},
"collapsed": true
},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"# _配置\n",
"# TODO: 完整的定向case测试集\n",
@ -121,13 +130,19 @@
" print(\"执行了 instruction_config\")\n",
"\n",
" \n",
" # 7. 基础硬件寄存器下发\n",
" #6.如果有缺失值,则补充默认值,防止仿真报错\n",
" if 'envelope_configs' not in params:\n",
" mk.rw_once('w', addr_base['ENVM0_BASE'], 0, params['config_file'])\n",
" \n",
" if 'instr_type' not in params:\n",
" mk.rw_once('w', addr_base['ITCM0_BASE'], '0x2B', params['config_file']) \n",
"\n",
" #7.最后判断内部触发\n",
" if 'inner_sync' in params:\n",
" inner_sync = params.get('inner_sync')\n",
" if inner_sync:\n",
" mk.rw_once('w', addr_base['SYST_BASE']+reg_define['sys_reg']['SYNCR'], 3<<16 | 1, params['config_file'])\n",
" mk.rw_once('r', addr_base['SYST_BASE']+reg_define['pll_reg']['INTPLL_CLKRXPD'], [0]*20, params['config_file'])\n",
"\n",
" print(f\"生成文件路径:{config_file_path.resolve()}\")\n",
" file_path = config_file_path.resolve()\n",
" display(HTML(f'<a href=\"{file_path}\" target=\"_blank\">{file_path}</a>'))\n",
@ -136,7 +151,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 3,
"id": "dd0c2d05a0afc9b6",
"metadata": {
"ExecuteTime": {
@ -146,14 +161,15 @@
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'Path' is not defined",
"ename": "FileNotFoundError",
"evalue": "[Errno 2] No such file or directory: 'D:\\\\MyDocument\\\\工作\\\\Z芯片的case生成器\\\\Chip_Case_Generator\\\\Z_case_Generator_V2.0\\\\gen_cases\\\\TC_FFNCO_FREQ_SCAN\\\\tc_ffnco_freq_scan100Mhz.json'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"Input \u001b[1;32mIn [2]\u001b[0m, in \u001b[0;36m<cell line: 0>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# load params\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;66;03m# 1. 指定要加载的 JSON 文件完整路径\u001b[39;00m\n\u001b[0;32m 3\u001b[0m json_file_path \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mr\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mD:\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mMyDocument\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124m工作\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mZ芯片的case生成器\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mChip_Case_Generator\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mZ_case_Generator_V2.0\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mgen_cases\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mTC_FFNCO_FREQ_SCAN\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mtc_ffnco_freq_scan100Mhz.json\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m----> 5\u001b[0m json_path \u001b[38;5;241m=\u001b[39m \u001b[43mPath\u001b[49m(json_file_path)\n\u001b[0;32m 6\u001b[0m load_dir \u001b[38;5;241m=\u001b[39m json_path\u001b[38;5;241m.\u001b[39mparent \u001b[38;5;66;03m# 获取目录\u001b[39;00m\n\u001b[0;32m 7\u001b[0m case_name \u001b[38;5;241m=\u001b[39m json_path\u001b[38;5;241m.\u001b[39mstem \u001b[38;5;66;03m# 文件名跟随.json前面的\u001b[39;00m\n",
"\u001b[1;31mNameError\u001b[0m: name 'Path' is not defined"
"\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
"Input \u001b[1;32mIn [3]\u001b[0m, in \u001b[0;36m<cell line: 0>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[38;5;66;03m# 2. 加载配置\u001b[39;00m\n\u001b[0;32m 10\u001b[0m pm_load \u001b[38;5;241m=\u001b[39m ParamsManager(load_dir)\n\u001b[1;32m---> 11\u001b[0m params \u001b[38;5;241m=\u001b[39m \u001b[43mpm_load\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcase_name\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 13\u001b[0m \u001b[38;5;66;03m# 3. 自定义你的新输出路径 \u001b[39;00m\n\u001b[0;32m 14\u001b[0m custom_output_dir \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mr\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mD:\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mMyDocument\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124m工作\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mZ芯片的case生成器\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mChip_Case_Generator\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mZ_case_Generator_V2.0\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mgen_cases\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mTC_FFNCO_FREQ_SCAN\u001b[39m\u001b[38;5;124m'\u001b[39m\n",
"File \u001b[1;32md:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\ParamsManager.py:30\u001b[0m, in \u001b[0;36mParamsManager.load\u001b[1;34m(self, filename)\u001b[0m\n\u001b[0;32m 26\u001b[0m filename \u001b[38;5;241m=\u001b[39m filename \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.json\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m 28\u001b[0m filepath \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparams_dir, filename)\n\u001b[1;32m---> 30\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mfilepath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mr\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mutf-8\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m f:\n\u001b[0;32m 31\u001b[0m params \u001b[38;5;241m=\u001b[39m json\u001b[38;5;241m.\u001b[39mload(f)\n\u001b[0;32m 32\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m params\n",
"\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'D:\\\\MyDocument\\\\工作\\\\Z芯片的case生成器\\\\Chip_Case_Generator\\\\Z_case_Generator_V2.0\\\\gen_cases\\\\TC_FFNCO_FREQ_SCAN\\\\tc_ffnco_freq_scan100Mhz.json'"
]
}
],
@ -179,7 +195,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 23,
"id": "47c22172d77fc331",
"metadata": {
"ExecuteTime": {
@ -273,7 +289,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 39,
"id": "4f0fa3c90ad0d570",
"metadata": {
"ExecuteTime": {
@ -287,40 +303,132 @@
"output_type": "stream",
"text": [
"执行 config_chip_reg\n",
" 生成:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\RAMP\\RAMP_SPI_HEX.txt\n",
"执行config_chip_reg\n",
"执行了instruction_config\n",
" 生成:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\RAMP\\RAMP_MCU_STEP_HEX.txt\n",
"执行config_chip_reg\n",
"执行了instruction_config\n",
" 生成:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\RAMP\\RAMP_MCU_FIXED_HEX.txt\n"
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_SPI_FIXED_HEX.txt\n"
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_SPI_FIXED_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_SPI_FIXED_HEX.txt</a>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"执行 config_chip_reg\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_SPI_STEP_HEX.txt\n"
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_SPI_STEP_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_SPI_STEP_HEX.txt</a>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"执行 config_chip_reg\n",
"执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_MCU_STEP_HEX.txt\n"
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_MCU_STEP_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_MCU_STEP_HEX.txt</a>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"执行 config_chip_reg\n",
"执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_MCU_FIXED_HEX.txt\n"
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_MCU_FIXED_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\RAMP\\RAMP_MCU_FIXED_HEX.txt</a>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# RAMP 通用模板\n",
"#RAMP SPI控制\n",
"#RAMP SPI控制,固定值模式\n",
"run_case({\n",
" 'chip_mode': 'RAMP',\n",
" 'ramp_ctrl':'SPI',\n",
" 'inner_sync': True,\n",
" 'fixed_enable': True, #是固定值还是斜坡模式\n",
" 'fixed_value': 22767, #固定值模式生效\n",
" 'height': 512, 'step_time': 34 , #斜坡模式生效 ,step_time就是台阶宽度\n",
" \n",
" 'height': 512, 'step_time': 32 , #斜坡模式生效 ,step_time就是台阶宽度\n",
" 'custom_registers': [\n",
" {\"addr\": 0x34, \"values\": 0x5}, # Debug存储器使能\n",
" {\"addr\": 0x600030, \"values\": [0x0, 0x0, 0x0, 0x0]}, # DAC 配置\n",
" ],\n",
" 'FolderName': 'RAMP',\n",
" 'CaseName': f\"RAMP_SPI\"\n",
" 'CaseName': f\"RAMP_SPI_FIXED\"\n",
"})\n",
"\n",
"#RAMP SPI控制,斜坡模式\n",
"run_case({\n",
" 'chip_mode': 'RAMP',\n",
" 'ramp_ctrl':'SPI',\n",
" 'inner_sync': True,\n",
" 'fixed_enable': False, #是固定值还是斜坡模式\n",
" 'fixed_value': 22767, #固定值模式生效\n",
" 'height': 512, 'step_time': 32 , #斜坡模式生效 ,step_time就是台阶宽度\n",
" 'custom_registers': [\n",
" {\"addr\": 0x34, \"values\": 0x5}, # Debug存储器使能\n",
" {\"addr\": 0x600030, \"values\": [0x0, 0x0, 0x0, 0x0]}, # DAC 配置\n",
" ],\n",
" 'FolderName': 'RAMP',\n",
" 'CaseName': f\"RAMP_SPI_STEP\"\n",
"})\n",
"#RAMP MCU控制时,斜坡模式\n",
"run_case({\n",
" 'chip_mode': 'RAMP',\n",
" 'ramp_ctrl':'MCU',\n",
" 'inner_sync': True,\n",
" #是固定值还是斜坡模式,如过是斜坡模式,则要指令选ramp_step\n",
" 'instr_type': 'ramp_step', #可选ramp_step或ramp_fixed. mcu执行不同指令操作模板,实现台阶或斜坡这两种模式\n",
" 'ensemble_num' : 2, #大循环次数\n",
" 'param_num' :2, # 循环中参数个数,和列表个数一致\n",
" 'height': [128,256], \n",
" 'step_time': [50,50], \n",
" \n",
" 'ensemble_num' : 0, #大循环次数\n",
" 'param_num' : 4, # 循环中参数个数,和列表个数一致\n",
" 'height': [128,256,512,1024], \n",
" 'step_time': [50,50,50,50], \n",
" 'custom_registers': [\n",
" {\"addr\": 0x34, \"values\": 0x5}, # Debug存储器使能\n",
" {\"addr\": 0x600030, \"values\": [0x0, 0x0, 0x0, 0x0]}, # DAC 配置\n",
" ], \n",
" 'FolderName': 'RAMP',\n",
" 'CaseName': f\"RAMP_MCU_STEP\"\n",
"})\n",
@ -329,13 +437,20 @@
"run_case({\n",
" 'chip_mode': 'RAMP',\n",
" 'ramp_ctrl':'MCU',\n",
" 'inner_sync': True,\n",
" #是固定值还是斜坡模式,如果是固定值模式,则指令选ramp_fixed\n",
" 'instr_type': 'ramp_fixed', #可选ramp_step或ramp_fixed. mcu执行不同指令操作模板,实现台阶或斜坡这两种模式\n",
" 'fixed_value': [1<<15] + [1<<15 | 1<<i for i in range(0,15)] + [0], \n",
" 'wait_clk': [1000]*17,\n",
" 'config_param_num': 17, \n",
" 'fixed_value': [\n",
" 32768, 33280, 34816, 37376, 40960, 45568, 51200, 57856, 65535, # 上升(越来越快)\n",
" 57856, 51200, 45568, 40960, 37376, 34816, 33280 # 下降(对称)\n",
" ], \n",
" 'wait_clk': [1000]*16,\n",
" 'config_param_num': 16, \n",
" 'ensemble_num': 0, \n",
" \n",
" 'custom_registers': [\n",
" {\"addr\": 0x34, \"values\": 0x5}, # Debug存储器使能\n",
" {\"addr\": 0x600030, \"values\": [0x0, 0x0, 0x0, 0x0]}, # DAC 配置\n",
" ], \n",
" 'FolderName': 'RAMP',\n",
" 'CaseName': f\"RAMP_MCU_FIXED\"\n",
"})"