分享
分销 收藏 举报 申诉 / 18
播放页_导航下方通栏广告

类型基于FPGA的数字信号处理方法简介.docx

  • 上传人:可****
  • 文档编号:3015646
  • 上传时间:2024-06-13
  • 格式:DOCX
  • 页数:18
  • 大小:1.08MB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于 FPGA 数字信号 处理 方法 简介
    资源描述:
    基于FPGA的数字信号处理方法简介 1 引言 数字信号处理就是用数值计算的方式对信号进行加工的理论和技术,主要研究有关数字滤波技术、离散变换快速算法以及谱分析方法。现场可编程门阵列(Field Programmable Gate Arrays, FPGA)以其丰富的逻辑资源和I/O引脚、低功耗、高可靠性以及可重构等特点,与通用DSP解决方案相比,FPGA器件在不牺牲灵活性的条件下,提供了更高的性能,逐步成为较为理想的实现平台。 FPGA的设计描述通常分为四个抽象级,由低到高依次为:物理级、寄存器传输级(Register TransferLevel, RTL)、行为级和系统级。传统的FPGA设计基于自顶向下设计方法采用硬件描述语言(Hardware Description Language, HDL)与Verilog HDL进行。随着FPGA在性能和密度上的发展十分迅猛,传统开发方法出现不足,高层次综合(High Level Synthesis, HLS)应运而生最近几年其相关技术日趋成熟且被广泛使用。这种高层次综合可以使算法和软件工程师们在无需拥有HDL和硬件知识的基础上,使用FPGA进行算法验证、移植和计算加速。 本文主要介绍基于FPGA的数字信号处理的传统设计方法、高层次综合设计VIVADO HLS、OpenCL、System Generator、DSP Builder以及NI专用LabVIEW FPGA的设计工具。 2 高层次设计方法 高层次综合的概念最早在20世纪70年代被提出,是在一定的约束下,将系统层和算法层转化成RTL级描述的方法和过程。系统层和算法层可以用相比于HDL更高级的编程语言,如Java、C、C++、Matlab等进行更加简洁、直观描述。为了便于设计者进行高层次、系统级的设计,所以需要将底层的综合过程交给开发工具进行。90年代中期的时候,Synopsys、Cadence和Mentor Graphics等EDA公司推出了商业化的、基于HDL语言的HLS开发工具,但是不成熟技术导致了市场化的失败。近年来,基于高级编程语言的HLS开发工具在解决了前一代开发工具的不足的基础上,迅速发展,已在FPGA设计的市场中占有了一席之地,基于高层次综合的FPGA设计也已经逐步进入市场化和商业化。 2.1 基于C/C++的工具简介 Xilinx VIVADO HLS 编译器为我们提供了与面向标准处理器或专用处理器的应用开发的编译器相类似的集成编译支持环境,Xilinx VIVADO HLS与其他各种处理器编译器在对C语言程序或C++语言程序的编译、分析和优化拥有相同的关键技术,而区别在于应用所面向的执行目标。 通过把FPGA作为执行目标,Xilinx VIVADO HLS使得软件开发工程师能够借助它来实现代码的优化,并且不受单一存储空间或者有限的开发资源这些开发瓶颈的限制,从而使得计算量密集型软件算法得以被实际应用。 Xilinx VIVADO HLS所使用的应用代码同其他处理器编译器一样面向的范畴一样,通过操作语句、条件语句、循环语句、以及函数等4个范畴来分析程序。 在HLS中,循环和函数之间的主要区别是相关的术语。系统的循环和函数并行执行。而循环中,因为在循环迭代和运算符间有一个清晰的结构差异,这种转换通常称为流水线。对函数而言,外循环和内循环相处于同一层次,这导致如果长期使用它可能会出现流水线混乱。在使用HLS时,我们可以避免这种混乱,因为函数调用执行的并行化可以使得数据流优化。 数据流优化指令使得HLS在给定的程序层次结构中对所有的函数创建独立的硬件模块。这些独立的硬件模块可以并行执行并且具有独立的同步数据传输过程。 除了Xilinx Vivado HLS外Altera公司针对自己的器件也有OpenCL工具进行对C等高级语言设计自动编译。 2.2 基于MATLAB的工具简介 Altera DSP Builder将The MathWorks MATLAB和Simulink系统级设计工具的算法开发、仿真和验证功能与VHDL综合、仿真和Altera开发工具整合在一起,实现了这些工具的集成。 DSP Builder在算法友好的开发环境中帮助设计人员生成DSP设计硬件表征,从而缩短了DSP设计周期。已有的MATLAB函数和Simulink模块可以和Altera DSP Builder模块以及Altera知识产权(IP) MegaCore功能相结合,将系统级设计实现和DSP算法开发相链接。DSP Builder支持系统、算法和硬件设计共享一个公共开发平台。 设计人员可以使用DSP Builder模块迅速生成Simulink系统建模硬件。DSP Builder包括比特和周期精度的Simulink模块,涵盖了算法和存储功能等基本操作。可以使用DSP Builder模型中的MegaCore功能实现复杂功能的集成。 DSP Builder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。DSP Builder依赖于Math Works公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compiler可以把Matlab/Simulink的设计文件(*.mdl)转成相应的硬件描述语言设计文件(*.v),以及用于控制综合与编译的TCL脚本。而对后者的处理可以由FPGA/CPLD开发工具Quartus II来完成。 当选择Xilinx的FGPA进行设计时,可以选择Xilinx System Generator工具结合MATLAB进行设计。 2.2.1 DSP Builder系统级设计流程 DSP Builder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。DSP Builder依赖于Math Works公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compiler可以把Matlab/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL/Verilog设计文件(.vhd/.v),以及用于控制综合与编译的TCL脚本。而对后者的处理可以由FPGA/CPLD开发工具Quartus II来完成。DSP Builder系统级设计流程如图3-1所示: 图3-1 DSP Builder系统级设计流程图 DSP Builder设计流程的第一步是在Matlab/Simulink中设计输入,即在Matlab的Simulink环境中建立一个mdl模型文件,用图形方式调用Altera DSP Builder和其它Simulink库中的图形模块,构建系统级或算法级设计框图(或称Simulink设计模型)。在设计FIR滤波器时可以使用FDATool进行辅助设计,使得滤波器的设计更加简单方便。 第二步是利用Simulink强大的图形化仿真、分析功能,分析此设计模型的正确性,完成模型仿真。在这里与一般的Matlab Simulink建模过程几乎没有什么区别,所不同的是设计模型库采用Altera DSP Builder的Simulink库。 第三步是DSP Builder设计实现的关键一步,通过SignalCompiler把Simulink的模型文件(后缀为.mdl)转化成通用的硬件描述语言VHDL文件(后缀为.vhd)或Verilog文件。由于EDA工具软件(诸如Quartus II、ModelSim)不能直接处理Matlab的.mdl文件,这就需要一个转换过程。转换获得的HDL文件是基于RTL级(寄存器传输级)的VHDL描述。 再接下来的几个步骤是对以上设计产生的VHDL的RTL代码和仿真文件进行综合、编译适配以及仿真。为了针对不同用户的设计目的和设计要求,DSP Builder提供了两种不同的设计流程,主要可以分为自动流程和手动流程。 如果采用DSP Builder的自动流程,几乎可以忽略硬件的具体实现过程,可以选择让DSP Builder自动调用Quartus II等EDA设计软件,完成综合(Synthesis)、网表(ATOM Netlist)生成和Quartus II适配,甚至在Matlab中完成FPGA的配置下载过程。 如果希望使用其它第三方的VHDL综合器和仿真器(除Synplify、LeonardoSpectrum和Quartus II综合器及ModelSim外),或是希望完成特定的适配设置,如逻辑锁定、时序驱动编译、ESB特定功能应用等,可以选用手动流程设计。 在手动流程中,设计者可以灵活地指定综合、适配条件。不过,需要手动地调用VHDL综合器进行综合,调用Quartus II进行适配,调用ModelSim或者Quartus II进行仿真,最后用Quartus II产生相应的编程文件用于FPGA的配置。 采用手动流程时,除了行为级仿真验证和设计输入外,其它过程与标准的基于VHDL的EDA设计流程是完全一致的。由上一步DSP Builder设计流程得到的VHDL文件(由Simulink模型文件*.mdl通过SignalCompiler转换而成的),送入综合器进行综合。综合器可以是Synplify PRO,也可以是LeonardoSpectrum,或者是Altera自己的Quartus II。在综合时,可以需要对综合器进行配置或者提供综合的约束条件。由于这个过程操作可能比较繁琐,所以DSP Builder的SignalCompiler相应提供了一个接口,针对设计,自动产生一个TCL脚本与综合器Synplify或LeonardoSpectrum相接。 综合器在综合操作后会产生一个网表文件,以供下一个流程使用。这里产生的网表文件成为ATOM网表文件,主要是EDIF网表文件(.edf电子设计交换格式文件)或VQM(.vqm Verilog Quartus Mapping File),它们是一种参数可设置的,并含有具体器件系列的硬件特征(如逻辑宏单元LCs、I/O单元、乘积项、嵌入式系统块ESB等)的网表文件。Quartus II可以利用这些ATOM网表文件针对特定的具体器件进行适配,包括布线、布局、结构优化等操作,最后产生时序仿真文件和FPGA目标器件的编程和配置文件。在这一步,设计者可以在Quartus II中完成对Pin(引脚)的锁定,更改一些约束条件。 如果用DSP Builder产生的DSP模块只是庞大设计中的一个子模块,则可以在设计中调用DSP Builder产生的VHDL文件,以构成完整的设计。同时,一样可以使用Quartus II强大的逻辑锁定功能和SignalTap测试技术。 在DSP Builder设计流程的最后一步,可以在DSP Builder中直接下载到FPGA用户开发板上,或者通过Quartus II完成硬件的下载、测试。 在图3-1的流程中,其中有个流程在DSP设计中是不可或缺的,那就是HDL仿真。与DSP Builder可以配合使用的HDL仿真器是ModelSim。DSP Builder在生成VHDL代码或Verilog代码时,可以同时生成用于测试DSP模块的TestBench(测试平台)文件,DSP Builder生成的TestBench文件采用相同硬件描述语言,测试向量与该DSP模块在Simulink中的仿真激励相一致。通过ModelSim仿真生成的TestBench可以验证生成的VHDL代码或Verilog代码与Simulink中DSP模型的一致性。另外,DSP Builder在产生TestBench的同时,还产生了针对ModelSim仿真的Tcl脚本文件来简化用户的操作,掩盖了ModelSim仿真时的复杂性。 在大部分情况下,Quartus II对DSP模块适配后,需要再次验证适配后网表与Simulink中建立的DSP模型的一致性。这就需要再次使用ModelSim进行仿真,这是仿真采用Quartus II适配后带延时信息的网表文件(EDIF格式或VHDL、Verilog格式)。 2.2.2 Matlab的FDATool简介 在这里使用Matlab的FDATool工具箱进行滤波器辅助设计,及滤波器性能的验证。FDATool(Filter Design and Analysis Tool)是MATLAB 信号处理工具箱提供的一种综合、简便的图形用户工具。通过该工具提供的先进可视化滤波器集成设计环境,用户可以方便地设计几乎所有的常规滤波器,包括FIR 和IIR 的各种设计方法。如图3-2所示,这是FDATool的启动界面。 图3-2 FDATool的启动界面 FDATool 的界面分上、下两个部分:上面部分显示有关滤波器的信息,下面部分用来指定设计指标参数。 在 Response type 下可以选择滤波器类型,包括低通、高通、带通、带阻、微分器、Hilbert 变换器、多带、任意频率响应、升余弦等(如果安装了滤波器设计工具箱,则会有更多选项)。 在 Design Method 下可以选择设计IIR 或FIR 滤波器,每种滤波器又可以选择不同的设计方法(例如,IIR 滤波器的设计方法包括巴特沃斯、切比雪夫、椭圆滤波器、最大扁平、最小P阶范数等;FIR 滤波器的设计方法包括等波纹、最小均方、窗函数、最大扁平、最小P阶范数等)。 在 Filter Order 下可以选择滤波器阶数,可以使用满足要求的最小滤波器阶数或直接指定滤波器的阶数。 根据前面两步中选择的设计方法,Options 下会显示与该方法对应的可调节参数。例如选择FIR 等波纹设计法时,Options 面板的Window 中可设置密度系数的大小。 选择滤波器的类型、设计方法和滤波器阶数时,相应的设计指标及其含义会在Filter Specifications 中用图形直观地显示出来以供设计参考。这些设计指标的具体参数需要在Frequency Specifications 和Magnitude Specifications 下明确指定。指定所有的设计指标后,单击FDATool 最下面的Design Filter 按钮即可完成滤波器设计。(设计完成后Design Filter 按钮变为不可用,除非再次修改了设计指标)。 FIR 滤波器设计时的参数设置主要包括响应类型、滤波器阶次、频率参数、幅度参数及密度因子等其他选项。 1) 响应类型 在滤波器设计与分析工具 FDATool 中FIR 滤波器响应类型可以设置为低通、高通、带阻、微分器、Hilbert 变换器、多带滤波器、任意幅度响应、升余弦、任意群延迟、半带低通、半带高通、奈奎斯特、逆sinc 低通或逆sinc 高通滤波器。 2) 设计方法 FIR 滤波器的设计方法可以选择为等波纹、最小均方、窗函数、最大扁平、最小P 阶范数或约束等波纹。 3) 滤波器阶次 FIR 滤波器的阶次可以由用户指定,也可以选择最小滤波器阶次。 4) 频率参数 频率参数设置包括频率单位、采样频率、带通频率、带阻频率等。其中采样频率,带通频率,带阻频率可以由用户根据实际制定,而频率单位可以通过面板上的频率单位下拉框进行选择,主要包括归一化频率(0-1)、Hz、kHz、MHz 和GHz 五种选项。 5) 幅度参数 设计低通、高通滤波器时,需要指定通带、阻带频率;设计带通滤波器时,需要指定阻带1、通带、阻带2 的频率;设计带阻滤波器时,需要指定通带1、阻带、通带2 的频率。 2.3 DSP Builder设计FIR滤波器 本节使用DSP Builder设计一个FIR滤波器,设计过程如下 1、选择窗函数、设计滤波器系数。 在这里使用FDATool工具辅助设计FIR滤波器,滤波器参数如下:低通滤波器;采用汉明窗的设计方法;;阶数:N=32;数据位宽为16bit,输出数据位宽为16bit;采样速率fs=1MHz;通带截止频率200kHz,衰减-6dB。 基本步骤如下: 1) 在 MATLAB 命令窗口下输入“fdatool”命令,“回车”调出滤波器设计界面; 2) 在 Respone Type 中选择低通滤波器(Lowpass); 3) 在 Design Method 中选择FIR,同时在滤波器设计方法下拉框中选择窗函数(Window)设计方法; 4) 在 Filter Order 中选择特定滤波器阶次(Specify Order),设置为32; 5) Options 中Window 选择汉明窗(Hamming); 6) 在 Frequency Specification 中指定采样频率Fs=1MHz,带通截至频率Fc=200kHz,滤波器基本参数设置如图3-3所示; 图3-3 滤波器基本参数设置 7) 在设置量化系数(Set quantization parameters)中指定滤波器算法为固定点(Fiixed-points),并设置相应的系数和输入输出数据长度,量化系数设置如图3-4所示; 图3-4 量化滤波器系数 8) 单击“Design Filter”即可完成滤波器设计。 9) 最后,使用菜单【File/Export】可导出或保存滤波器系数h(n)。 2、完成模型设计、仿真验证 FDATool 不仅提供了滤波器设计工具,而且还提供了滤波器时域与频域的特性分析工具。接下来将对设计的滤波器的幅度响应、相位响应、群延迟响应、相位延迟、脉冲响应、阶跃响应、零极点图、滤波器系数,以及滤波器信息等进行分析。 1) 幅度响应 单击 FDATool 窗口界面快捷工具栏的【Magnitude Response】按钮,或者选择菜单栏【Analysis/Magnitude Response】选项,就可以得到图3-5所示该型滤波器的幅度响应曲线。 图3-5 滤波器的幅度响应曲线 2)相位响应 单击 FDATool 窗口界面快捷工具栏的【Phase Response】按钮,或者选择菜单栏【Analysis/Phase Response】选项,就可以得到图3-6 所示该型滤波器的相位响应曲线。 图3-6 滤波器的相位响应曲线 3)幅度与相位响应 单击 FDATool 窗口界面快捷工具栏的【Magnitude and Phase Responses】按钮,或者选择菜单栏【Analysis/Magnitude and Phase Response】选项,就可以得到图3-7所示该型滤波器的幅度与相位响应曲线。 图3-7 滤波器的幅度与相位响应曲线 4)群延迟 单击 FDATool 窗口界面快捷工具栏的【Group Delay Response】按钮,或者选择菜单栏【Analysis/ Group Delay Response】选项,就可以得到图3-8所示该型滤波器的群延迟曲线。 图3-8 滤波器的群延迟曲线 5)相位延迟 单击 FDATool 窗口界面快捷工具栏的【Phase Delay】按钮,或者选择菜单栏【Analysis/Phase Delay】选项,就可以得到图3-9 所示该型滤波器的相位延迟曲线。 图3-9 滤波器的相位延迟曲线 6)冲击响应 单击 FDATool 窗口界面快捷工具栏的【Impulse Response】按钮,或者选择菜单栏【Analysis/Impulse Response】选项,就可以得到图3-10 所示该型滤波器的冲击响应曲线。 图3-10 滤波器的冲击响应曲线 7)阶跃响应 单击 FDATool 窗口界面快捷工具栏的【Step Response】按钮,或者选择菜单栏【Analysis/Step Response】选项,就可以得到图3-11 所示该型滤波器的阶跃响应曲线。 图3-11滤波器的阶跃响应曲线 8)零极点图 单击 FDATool 窗口界面快捷工具栏的【Pole/Zero Plot】按钮,或者选择菜单栏【Analysis/Pole/Zero Plot】选项,就可以得到图3-12 所示该型滤波器的零极点图。 图3-12滤波器的零极点图 9)滤波器系数 单击 FDATool 窗口界面快捷工具栏的【Filter Coefficient】按钮,或者选择菜单栏【Analysis/ Filter Coefficient】选项,就可以得到图3-13 所示该型滤波器的系数。 图3-13滤波器的系数 10)滤波器信息 单击 FDATool 窗口界面快捷工具栏的【Filter Information】按钮,或者选择菜单栏【Analysis/ Filter Information】选项,就可以得到图3-14 所示该型滤波器的信息。 图3-14滤波器的信息 11)滤波器对信号进行处理 假设有一信号 x=sin(25000*2*pi*t)+sin(300000*2*pi*t)+ sin(200000*2*pi*t),用我们设计好的FIR低通滤波器滤掉其高频部分,输出结果如图3-15 所示。 图3-15 滤波器输入和输出对比 从图3-15中的输出结果可以看出,在信号通过FIR 低通滤波器后,通带内的25kHz信号没有衰减;位于阻带内的300kHz信号,正如我们预先设计的,幅度几乎等于0;位于通带截至频率上的200kHz 信号衰减了大约6dB。 3. 使用SingalCompiler直接生成Verilog HDL文件 如图3-16所示,直接在FDATool中生成Verilog HDL文件。 图3-16 生成Verilog HDL文件 如图3-17所示,直接在FDATool中生成TestBench文件,并生成ModelSim与Simulink的联合仿真模型,如图3-18所示。 图3-17 生成TestBench文件 3-18 ModelSim与Simulink的联合仿真模型 使用Matlab中生成x=sin(25000*2*pi*t)+sin(400000*2*pi*t)信号,在ModelSim和Simulink中进行联合仿真,图3-19是Matlab输入和输出信号的频域表示,图3-20是ModelSim仿真结果,可以看出在ModelSim中的仿真结果与Matlab中的结果相符,高频信号被滤除。 图3-19 Matlab输入和输出信号的频域表示 图3-20 ModelSim仿真结果 4、使用Quartus II进行综合、烧写 5、使用SignalTap II对设计结果进行查看 在这里将在FDATool中生成的Verilog文件进行引脚和其它的设置,然后进行编译、综合,在下载到目标板子上之后,给予输入数据信号,使用SignalTap II对设计结果进行查看,过程与前面VIVADO HLS一样,这里不再叙述。 分析结果,使用DSP Builder进行相关设计时,可以使用Matlab和Simulink提供的各种方便的图形化工具或者函数,使得模块或算法实现变得异常简单,并能在短时间内产生相关VHDL代码,且能达到相当的优化水平,大大缩短了开发时间和硬件描述语言的开发难度。 3参考学习 [1]《数字信号处理的FPGA实现》,Uwe Meyer-Baese著,清华大学出版社 [2] Xilinx官方网站 [3] Altera官方网站 [4] NI官方网站
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:基于FPGA的数字信号处理方法简介.docx
    链接地址:https://www.zixin.com.cn/doc/3015646.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork