Compare commits

..

No commits in common. "575f649c282997d55e53cb23a162300b3aaee347" and "9cb439dbb2ba7dfeb0fd8e5f2135cbd859fdb39f" have entirely different histories.

9 changed files with 70 additions and 255 deletions

View File

@ -315,7 +315,7 @@ class AssemblyTemplateManager:
if inner_sync: if inner_sync:
self.write_register(addr_base['SYST_BASE']+reg_define['sys_reg']['SYNCR'], 3<<16 | 1) 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['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) self.mk.rw_once('r', addr_base['DBGM_BASE'], [0]*2048, self.config_file)
def instruction_config(mk_instance, mk_instr, **kwargs): def instruction_config(mk_instance, mk_instr, **kwargs):
asm_templates = AssemblyTemplateManager(mk_instance, mk_instr, **kwargs) asm_templates = AssemblyTemplateManager(mk_instance, mk_instr, **kwargs)

View File

@ -251,8 +251,6 @@ class ZChipConfig(object):
self._ramp_config(**kwargs) self._ramp_config(**kwargs)
elif chip_mode == 'AWG': elif chip_mode == 'AWG':
self._awg_config(**kwargs) self._awg_config(**kwargs)
def _ramp_config(self, **kwargs): def _ramp_config(self, **kwargs):
self.write_register(addr_base['CTRL0_BASE'] + reg_define['ctrl_reg']['MODDOTR'], 8) # 切换到RAMP输出 self.write_register(addr_base['CTRL0_BASE'] + reg_define['ctrl_reg']['MODDOTR'], 8) # 切换到RAMP输出
ramp_ctrl = kwargs.pop('ramp_ctrl') ramp_ctrl = kwargs.pop('ramp_ctrl')

View File

@ -27,7 +27,7 @@
"rz_ff_pha": 0, "rz_ff_pha": 0,
"rz_fm_pha": 45, "rz_fm_pha": 45,
"ff_amp": [ "ff_amp": [
10000, 32767,
32767, 32767,
32767, 32767,
32767 32767
@ -122,21 +122,6 @@
"wave_time": 22 "wave_time": 22
} }
], ],
"custom_registers": [
{
"addr": 52,
"values": 5
},
{
"addr": 6291504,
"values": [
0,
0,
0,
0
]
}
],
"FolderName": "gen_cases\\General", "FolderName": "gen_cases\\General",
"CaseName": "TC_AWG_MOD_TAILCOR", "CaseName": "TC_AWG_MOD_TAILCOR",
"config_file": "gen_cases\\General\\TC_AWG_MOD_TAILCOR_HEX.txt" "config_file": "gen_cases\\General\\TC_AWG_MOD_TAILCOR_HEX.txt"

View File

@ -1,14 +1,3 @@
00000034
00100004
00000005
00600030
00100010
00000000
00000000
00000000
00000000
00301000 00301000
00100080 00100080
0347a17d 0347a17d
@ -100,7 +89,7 @@
6aaa0000 6aaa0000
7fff0000 7fff0000
00000000 00000000
27107fff 7fff7fff
7fff7fff 7fff7fff
7fff7fff 7fff7fff
7fff7fff 7fff7fff

View File

@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 3, "execution_count": 7,
"id": "initial_id", "id": "initial_id",
"metadata": { "metadata": {
"ExecuteTime": { "ExecuteTime": {
@ -11,7 +11,16 @@
}, },
"collapsed": true "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": [ "source": [
"# _配置\n", "# _配置\n",
"# TODO: 完整的定向case测试集\n", "# TODO: 完整的定向case测试集\n",
@ -136,7 +145,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 3,
"id": "dd0c2d05a0afc9b6", "id": "dd0c2d05a0afc9b6",
"metadata": { "metadata": {
"ExecuteTime": { "ExecuteTime": {
@ -146,14 +155,15 @@
}, },
"outputs": [ "outputs": [
{ {
"ename": "NameError", "ename": "FileNotFoundError",
"evalue": "name 'Path' is not defined", "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", "output_type": "error",
"traceback": [ "traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;31mFileNotFoundError\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", "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",
"\u001b[1;31mNameError\u001b[0m: name 'Path' is not defined" "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 +189,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 14, "execution_count": null,
"id": "47c22172d77fc331", "id": "47c22172d77fc331",
"metadata": { "metadata": {
"ExecuteTime": { "ExecuteTime": {
@ -195,13 +205,13 @@
"执行 config_chip_reg\n", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\General\\TC_AWG_MOD_TAILCOR_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\General\\tc_general_awg_HEX.txt\n"
] ]
}, },
{ {
"data": { "data": {
"text/html": [ "text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\General\\TC_AWG_MOD_TAILCOR_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\General\\TC_AWG_MOD_TAILCOR_HEX.txt</a>" "<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\General\\tc_general_awg_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\General\\tc_general_awg_HEX.txt</a>"
], ],
"text/plain": [ "text/plain": [
"<IPython.core.display.HTML object>" "<IPython.core.display.HTML object>"
@ -217,19 +227,19 @@
"run_case({\n", "run_case({\n",
" 'chip_mode':'AWG', #分为AWG和RAMP模式\n", " 'chip_mode':'AWG', #分为AWG和RAMP模式\n",
" 'mode':'mod', #可选nco nco_fm env mod四种模式\n", " 'mode':'mod', #可选nco nco_fm env mod四种模式\n",
" 'tail_en': True, #拖尾矫正开关\n", " 'tail_en': False, #拖尾矫正开关\n",
" 'tc_coef_set': 'coef1', #拖尾矫正打开生效\n", " 'tc_coef_set': 'coef1', #拖尾矫正打开生效\n",
" 'inner_sync': True, #内部触发,应该是软触发,写一个寄存器,就能触发\n", " 'inner_sync': True, #内部触发,应该是软触发,写一个寄存器,就能触发\n",
" 'amp_mod_enable': True, #调幅的开关,mod调制模式下起作用。\n", " 'amp_mod_enable': True, #调幅的开关,mod调制模式下起作用。\n",
" 'freq_mod_enable': True, #nco的开关\n", " 'freq_mod_enable': True, #nco的开关\n",
" 'bias_enable': True, #必开的开关,AWG模式下,偏置必须打开,否则AWG输出保持为0.\n", " 'bias_enable': True, #必开的开关,AWG模式下,偏置必须打开,否则AWG输出保持为0.\n",
" \n", " \n",
" 'fcw': [200, 200, 300, 400], # MHz\n", " 'fcw': [100, 200, 300, 400], # MHz\n",
" 'mcu_reg_clr': False,\n", " 'mcu_reg_clr': True,\n",
" 'pcw': [0, 30, 45, 90, 120, 135, 150, 180], # Deg \n", " 'pcw': [0, 30, 45, 90, 120, 135, 150, 180], # Deg \n",
" 'rz_ff_pha': 0,\n", " 'rz_ff_pha': 0,\n",
" 'rz_fm_pha': 45,\n", " 'rz_fm_pha': 45,\n",
" 'ff_amp': [10000, 32767, 32767, 32767],\n", " 'ff_amp': [32767, 32767, 32767, 32767],\n",
" 'fm_amp': [32767, 32767, 32767, 32767],\n", " 'fm_amp': [32767, 32767, 32767, 32767],\n",
" 'bias': [1, 2, 3, 4],\n", " 'bias': [1, 2, 3, 4],\n",
" 'fm_en' :False, #nco_fm的开关,在nco_fm模式时,必须打开,不然nco_fm不工作,就是一条直线. mod的模式下开启fm_en,同时打开nco,就能看到两个正弦波叠加啊 \n", " 'fm_en' :False, #nco_fm的开关,在nco_fm模式时,必须打开,不然nco_fm不工作,就是一条直线. mod的模式下开启fm_en,同时打开nco,就能看到两个正弦波叠加啊 \n",
@ -237,13 +247,13 @@
" 'send_interval': [100, 150, 200, 250, 300, 350, 400,450,500],\n", " 'send_interval': [100, 150, 200, 250, 300, 350, 400,450,500],\n",
" 'cycle_num': 0, #0代表无限循环,如果要想扫参,那么这个波形序列就不能无限循环播放\n", " 'cycle_num': 0, #0代表无限循环,如果要想扫参,那么这个波形序列就不能无限循环播放\n",
" 'codeword_configs': [\n", " 'codeword_configs': [\n",
" # {'wave_hold': 1, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 0},\n", " {'wave_hold': 1, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 0},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 0, 'env_index': 1},\n", " {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 0, 'env_index': 1},\n",
" {'wave_hold': 1, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 2},\n", " # {'wave_hold': 1, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 2},\n",
" {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 0, 'env_index': 3},\n", " # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 0, 'env_index': 3},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 4},\n", " # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 4},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 5},\n", " # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 5},\n",
" #{'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 6},\n", " # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 6},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 7},\n", " # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 7},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 8},\n", " # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 8},\n",
" ],\n", " ],\n",
@ -261,13 +271,8 @@
" {'envelope_type': 'rect', 'amp': 32767, 'wave_time': 12},\n", " {'envelope_type': 'rect', 'amp': 32767, 'wave_time': 12},\n",
" {'envelope_type': 'flattop', 'amp': 32767, 'edge_time': 2, 'wave_time': 22},\n", " {'envelope_type': 'flattop', 'amp': 32767, 'edge_time': 2, 'wave_time': 22},\n",
" ],\n", " ],\n",
"\n",
" 'custom_registers': [\n",
" {\"addr\": 0x34, \"values\": 0x5}, # Debug存储器使能\n",
" {\"addr\": 0x600030, \"values\": [0x0, 0x0, 0x0, 0x0]}, # DAC 配置\n",
" ],\n",
" 'FolderName': 'General',\n", " 'FolderName': 'General',\n",
" 'CaseName': 'TC_AWG_MOD_TAILCOR',\n", " 'CaseName': 'tc_general_awg',\n",
"})" "})"
] ]
}, },
@ -343,7 +348,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 7, "execution_count": 17,
"id": "3895007623de81e8", "id": "3895007623de81e8",
"metadata": { "metadata": {
"ExecuteTime": { "ExecuteTime": {
@ -359,225 +364,63 @@
"执行 config_chip_reg\n", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_1MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_0deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_1MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_1MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_101MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_15deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_101MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_101MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_201MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_30deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_201MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_201MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_301MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_45deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_301MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_301MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_401MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_60deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_401MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_401MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_501MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_75deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_501MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_501MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_601MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_90deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_601MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_601MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_701MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_105deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_701MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_701MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_801MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_120deg_HEX.txt\n",
]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_801MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_801MHz_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", "执行 config_chip_reg\n",
"执行了 env_config\n", "执行了 env_config\n",
"执行了 instruction_config\n", "执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_901MHz_HEX.txt\n" "生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_135deg_HEX.txt\n",
"执行 config_chip_reg\n",
"执行了 env_config\n",
"执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_150deg_HEX.txt\n",
"执行 config_chip_reg\n",
"执行了 env_config\n",
"执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_165deg_HEX.txt\n",
"执行 config_chip_reg\n",
"执行了 env_config\n",
"执行了 instruction_config\n",
"生成文件路径:D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_FFNCO_PHA_SCAN\\tc_ffnco_pha_scan_180deg_HEX.txt\n"
] ]
},
{
"data": {
"text/html": [
"<a href=\"D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_901MHz_HEX.txt\" target=\"_blank\">D:\\MyDocument\\工作\\Z芯片的case生成器\\Chip_Case_Generator\\Z_case_Generator_V2.0\\gen_cases\\TC_AWG_NCO_FM_FREQ\\tc_awg_nco_fm_freq_901MHz_HEX.txt</a>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
} }
], ],
"source": [ "source": [
"# ========== 扫频参数配置(你只需要改这里) ==========\n", "# ========== 扫频参数配置(你只需要改这里) ==========\n",
"var_start = 1 # 起始频率 (MHz)\n", "var_start = 0 # 起始频率 (MHz)\n",
"var_stop = 901 # 终止频率 (MHz)\n", "var_stop = 180 # 终止频率 (MHz)\n",
"var_step = 100 # 步进 (MHz)\n", "var_step = 15 # 步进 (MHz)\n",
"# ===================================================\n", "# ===================================================\n",
"\n", "\n",
"# 生成频率列表\n", "# 生成频率列表\n",
@ -588,7 +431,7 @@
"for var in var_list:\n", "for var in var_list:\n",
" run_case({\n", " run_case({\n",
" 'chip_mode': 'AWG',\n", " 'chip_mode': 'AWG',\n",
" 'mode': 'nco_fm',\n", " 'mode': 'nco',\n",
" 'tail_en': False,\n", " 'tail_en': False,\n",
" 'tc_coef_set': 'coef1',\n", " 'tc_coef_set': 'coef1',\n",
" 'inner_sync': True,\n", " 'inner_sync': True,\n",
@ -596,24 +439,24 @@
" 'freq_mod_enable': True,\n", " 'freq_mod_enable': True,\n",
" 'bias_enable': True,\n", " 'bias_enable': True,\n",
" \n", " \n",
" 'fcw': [var, 200, 300, 400], # 只有第一个元素在变\n", " 'fcw': [100, 200, 300, 400], # 只有第一个元素在变\n",
" 'mcu_reg_clr': True,\n", " 'mcu_reg_clr': True,\n",
" 'pcw': [15, 30, 45, 90, 120, 135, 150, 180],\n", " 'pcw': [var, 30, 45, 90, 120, 135, 150, 180],\n",
" 'rz_ff_pha': 0,\n", " 'rz_ff_pha': 0,\n",
" 'rz_fm_pha': 45,\n", " 'rz_fm_pha': 45,\n",
" 'ff_amp': [32767, 32767, 32767, 32767],\n", " 'ff_amp': [32767, 32767, 32767, 32767],\n",
" 'fm_amp': [32767, 32767, 32767, 32767],\n", " 'fm_amp': [32767, 32767, 32767, 32767],\n",
" 'bias': [1, 2, 3, 4],\n", " 'bias': [1, 2, 3, 4],\n",
" 'fm_en': True,\n", " 'fm_en': False,\n",
" 'instr_type': 'general_send_wait',\n", " 'instr_type': 'general_send_wait',\n",
" 'send_interval': [100, 150, 200, 250, 300, 350, 400, 450, 500],\n", " 'send_interval': [100, 150, 200, 250, 300, 350, 400, 450, 500],\n",
" 'cycle_num': 1,\n", " 'cycle_num': 1,\n",
" 'codeword_configs': [\n", " 'codeword_configs': [\n",
" {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 4},\n", " {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 4},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 5},\n", " {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 5},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 6},\n", " {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 6},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 7},\n", " {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 7},\n",
" # {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 8},\n", " {'wave_hold': 0, 'fcw_index': 0, 'pcw_index': 0, 'code_clr': 1, 'env_index': 8},\n",
" ],\n", " ],\n",
" 'sweep_config': {\n", " 'sweep_config': {\n",
" 'sweep_num': 0,\n", " 'sweep_num': 0,\n",
@ -629,8 +472,8 @@
" {'envelope_type': 'rect', 'amp': 32767, 'wave_time': 12},\n", " {'envelope_type': 'rect', 'amp': 32767, 'wave_time': 12},\n",
" {'envelope_type': 'flattop', 'amp': 32767, 'edge_time': 2, 'wave_time': 22},\n", " {'envelope_type': 'flattop', 'amp': 32767, 'edge_time': 2, 'wave_time': 22},\n",
" ],\n", " ],\n",
" 'FolderName': 'TC_AWG_NCO_FM_FREQ',\n", " 'FolderName': 'TC_FFNCO_PHA_SCAN',\n",
" 'CaseName': f'tc_awg_nco_fm_freq_{var}MHz', # 自动生成文件名\n", " 'CaseName': f'tc_ffnco_pha_scan_{var}deg', # 自动生成文件名\n",
" })" " })"
] ]
} }