数字电子设计指导.doc

上传人:精*** 文档编号:864792 上传时间:2023-10-02 格式:DOC 页数:39 大小:1.48MB
下载 相关 举报
数字电子设计指导.doc_第1页
第1页 / 共39页
数字电子设计指导.doc_第2页
第2页 / 共39页
数字电子设计指导.doc_第3页
第3页 / 共39页
数字电子设计指导.doc_第4页
第4页 / 共39页
数字电子设计指导.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、前 言EDA设计与应用课程综合实验是在该课程基础实验上的扩充实验,实验对象为高年级本科生。EDA设计与应用课程和该课程的实验安排在同一学期内,使用的是EDA综合实验室新增加的实验开发板和开发软件。但由于学时有限,不可能对该课程涉及到的所有内容都开出相应实验。为了充分利用现有设备并使学生更好地掌握EDA设计技术,提高学生应用系统的设计能力,所以在早期开出的较老的实验基础上,优化一些基础性的实验,同时结合学生所学专业课的知识点和新实验平台的资源,新增加一系列比较有特色的验证性和设计性实验。使学生在EDA实验时,结合本专业,充分掌握电子系统设计辅助工具的使用和EDA设计地关键技术。本实验指导书包含每

2、个实验的内容说明,实验原理及实验详细步骤,同时在每章中提供参考设计的完整代码或者PCB版图。1、 实验系统简介本综合实验的硬件系统由PC机和新购置的Altium NB1实验箱构成,软件包括Altium设计平台以及第三方设计工具(包括Altera的QuartusII或Xilinx的ISE,以及仿真软件Modelsim)。Altium集成开发环境Designer 6.0是比较有特色的一个电子系统开发工具,集成了包括电路系统顶层功能设计,原理图设计,PCB布线及信号分析;兼容多种语言和输入方式的FPGA/CPLD逻辑设计与仿真,嵌入式系统硬、软核设计及汇编或C代码开发;独立IP Core设计等一系列

3、模块。基本整合了完整电路系统设计所需要的工具。同时,能够与第三方开发工具良好的接口匹配,实现更深层次的联合开发与优化。Altium自身提供了很多经过了验证的逻辑功能模块,且完全免费,可以大大减轻开发者的工作量,提高工程设计效率。Altium针对实验教学提供的Nanoboard 开发板,含有大量的硬件资源,可以根据这些资源,设计很多有特及一定难度的实验,使学生充分掌握EDA设计技术。同时,开发者也可以利用该开发板进行一些设计的验证工作。2、 实验目的和内容实验目的:让学生了解和掌握EDA设计与应用课程教学中的知识点,提高学生的实际动手能力和工程设计能力。针对一定应用场合,培养学生进行需求分析,功

4、能划分及系统规划的能力。实验内容:1汽车尾灯控制设计;2可变频率加减计数器的逻辑设计与LCD显示验证;3霓虹灯控制器设计;4. 密码锁设计。3、 课程要求A. 提前预习1. 阅读实验内容。2. 查阅参考资料。B. 认真实验1. 仔细阅读实验步骤。2. 确定使用到的硬件电路及其连接完好。3. 依据流程完成实验。4. 记录实验结果。C. 写好报告报告内容:目的、原理、逻辑结构、仿真测试结果及实验分步操作结果。注意:1, Altium Designer 软件开发平台是由Protel DXP发展而来,操作上很大部分与Protel DXP相同,故课程设计过程中可以参考Protel DXP的相关资料。2,

5、 Altium Designer的安装目录下Help文件夹中提供全面的帮助文档,另外,Altium Designer 本身提供了强大的帮助系统(选择Help菜单或者F1键)。3, Altium Designer支持中文版菜单。在英文菜单的界面下选择:DXPPreferences在弹出的对话框中Localization下面勾选Use localized resources,然后重新启动Altium Designer。设计课题一:汽车尾灯控制器设计一 课程设计的目的:1、 能够全面巩固和应用“数字逻辑”课程中所学的基本理论和方法,并初步掌握小型数字系统设计的基本方法;2、 掌握VHDL语言编制小型

6、模块的方法,并采用层次化设计;3、 培养电路设计能力,懂得理论设计与实物实现的有效结合。二 设计课题的要求:汽车尾部左右侧各4个灯,实现以下四个状态:A:正常运行,指示灯全灭;B:左拐弯,左侧4个灯按左循环依次点亮;C:右拐弯,右侧4个灯按右循环依次点亮;D:刹车时,8个灯随1HZ脉冲同步闪烁。三 实验原理和原理图:根据课题汽车尾灯控制器的具体设计要求,可以得出四种状态下对应的输入输出关系,如下表所示:输入状态左尾灯右尾灯00正常灭灭01右拐灭D4-D5-D6-D710左拐D3-D2-D1-D0灭11刹车所有灯随脉冲闪烁2位输入控制信号经过解码后产生4种可能的输出,对应汽车尾灯的4种状态。其中

7、在“正常”状态下,左右尾灯均灭,即无输出;“右拐”状态时,启动对应的计数器对输入CLK计数,计数器输出经解码后控制右尾灯按D4-D5-D6-D7方向点亮;“左拐”状态类似于“右拐”状态;“刹车”状态时,通过一个与门允许CLK通过而控制所有灯闪烁。原理图如下:四 具体开发过程:一画电路图 1,创建工程。文件新项目FPGA项目(FileNewProjectFPGA Project)。在工程栏中将会显示新建的FPGA 工程名,然后可选在文件预览中选中改项目后单击鼠标右键后,在弹出菜单上选择:保存为。在对话框中为项目重新命名,其他文件如原理图和VHDL文件的重新命名操作类似。建议对新建的文件重新命名并

8、保存(系统自动生成文件除外),以便于对项目文件进行管理和操作。在工程栏中选择:文件预览(File View),在工程中将会列出所有属于当前工程的文件。2,添加原理图。选择:文件新原理图(FileNewSchematic),重命名并保存。左键点中原理图,键盘上PageUp,PageDown可调整视图大小。选择:设计文档选项标准样式(DesignDocument OptionsSheet Options)可调整图纸尺寸大小。3,放置元件。(1)首先,打开右侧的器件库(Library),选择FPGA Generic.IntLib,然后在器件列表中选择器件(可参照附录),例如反向器:找到inv,选中i

9、nv按place inv或双击inv,把鼠标移到原理图上,单击左键,放置反向器,再单击右键结束放置。照此操作程序放置其他元件。(2)调整元件放置方向可双击元件,打开元件属性(或者右键选中元件拖动时的候,按Tab键打开元件属性),在图形(Graphical)区域中进行调整。也可以使用快捷键,选中元件拖动时按X或者Y键选择镜像,按空格键(Space)旋转。注意课程设计用到的器件基本上可以在FPGA Generic.IntLib中找到,具体请参见指导书附录里的元件库。本例中用到的元件有: 译码器:D2_4ES,D4_16EB ,计数器:CB4CES,CB4CEB, 总线连接器:J16B_16S ,反

10、向器,与门,或门。4. 连接元件。(1)单引脚之间,导线之间可点击Wire按钮,进行连接。(2)总线端口之间可点击Bus按钮进行连接,注意总线两边端口数应相同。如果两边端口数不相同可以使用连接。(3)利用总线连接器连接总线(Bus Joiner)。(4)总线导线之间连接可点击Bus Entry按钮,将放置到总线上,再连接导线,最后对总线和支线命名。本例中总线命名为N3.0,支线要连到U14的Q2口上,Q2是与总线的N2对接的,因此,支线命名为N2。(5)添加输入输出端口,电源及地线。 用导线连接的电源,地线可点击VCC和GND。 用总线连接的电源,地线可点击VCCBus和GNDBus。 系统仿

11、真时需要为原理图添加输入输出端口。点击Port按钮,在原理图上添加输入输出端,并双击打开属性,修改名称和类型。注意: 1,在为文件,元件,端口和网络等自定义名称时注意不要占用系统已用名称。2,输入口不得悬空,输出口可以悬空,需加上标志忽略语法检查。3,本例中两个椭圆内的电路可采用同样的方式实现,现选用两种不同的方式仅为做示范讲解。二系统仿真1从原理图创建VHDL程序。电路图画好后保存,选择:设计项目的网表VHDL文件,然后在弹出的对话框中,钩选“生成多VHDL文件” 和“转换参数为属性”两项。产生的VHDL文件保存在系统自动建立的项目中子文件夹“Generated”中。2创建VHDL测试平台。

12、将上述创建的VHDL文件打开,使其处于当前窗口,选择:设计创建VHDL测试平台。系统自动创建一个VHDTST类型的测试平台文件。3填写有关的程序。上述系统自动创建的测试平台文件是一个不完整的文件,需要在STIMULUS0:process中添加输入信号,然后保存。 注意:测试平台程序属于VHDL文件,语法规则完全符合VHDL语言,测试平台的运行方式与VHDL文件一样,多个process之间是并行执行的,各个process内部的语句是顺序执行的。下图所示程序中STIMULUS0:process里面的语句执行到最后“wait;”时候进入无限期等待状态,所以STIMULUS0:process里面的语句

13、只执行了一次;在CLK:process里面的语句循环执行,产生连续的方波。修改完的测试平台程序如下:4进行仿真。在测试平台的当前窗口下选择:仿真模拟(SimulatorSimulate)编译文件并进入仿真面板和“编辑仿真信号”(Edit Simulation Signal)对话框中选择需要观察的管脚信号。然后单击步进运行(Run Simulation For A Time Step)按钮,设定单位步进时间,建议设置为STIMULUS0:process里“wait;”前面所有语句的执行时间,如本例中设为400ns。单击按钮继续往后执行。通常需要对多种输入组合进行仿真,如本例中有4种状态。可以一次

14、性在仿真测试平台中添加(用 wait for语句分段),一次性仿真。也可以每次只仿真一种状态,多次修改测试平台文件,多次仿真。注意:创建VHDL测试平台需要VHDL语言基础,不可出现语法错误。每次对原理图进行修改保存后,建议重新从原理图创建VHDL程序和创建VHDL测试平台。三下载实验。在仿真结果正确以后,可以准备下载到实验开发板NanoBoard上运行。下载之前需要了解NanoBoard,可以参考NanoBoard附带的说明书和相关资料。本例需要的NanoBoard的板上资源有:1),时钟硬件资源如下图:使用到的是20Mhz的固定参考时钟CLK_REF,或者使用CLK_BRD,可以通过配置C

15、LOCK0CLOCK2接头得到多种频率。2),拨动开关输入部分硬件资源:SW开关拨到ON位置为低电平。3),LED指示灯输出部分硬件资源:NanoBoard板提供8个LED指示灯用于显示输出状态,高电平点亮。1修改原理图。系统仿真结果正确后进行下载,需要将原理图上用于仿真的输入输出端口换成NanoBoard板上适合的硬件资源。NanoBoard板上提供的所有可用的硬件资源均可在元件库FPGA NanoBoard Port-Plugin.IntLib中找到。本例中,将拨动开关DIPSWITCH的前两位作为输入ctrl0和ctrl1;将8个LED指示灯作为输出D0D7;将CLK_BRD设置为10M

16、Hz经过分频后作为输入脉冲clk0,其中分频电路如下:其中注意U3 和U7区别,后缀“DC50”表示分频后输出是占空比为50%的方波而非U3和U2 输出的脉冲序列,用户可以根据实际情况进行选择(该分频电路选用“DC50”仅为做示范讲解)。CLK_BRD设置为10MHz,分频后产生10Hz的方波,作为输入脉冲clk0。 2添加约束文件。选择:项目配置管理(ProjectConfiguration Manager),弹出对话框。选择:“增加”配置后并命名;然后选择:“增加”约束文件后选择约束文件Fpga/NB1 Constraint Files/Xilinx FPGA/ NB1_6_XC3S100

17、0-FG456. Constraint。记得勾选右上角的小方框,并确定。系统将自动在项目中生成子文件夹“Settings”,并将选择的约束文件包含在其中。3下载文件。连好开发板,插入 Xilinx公司芯片XC3S1000的子板(注意不要错用Altera公司芯片的子板),打开电源开关,然后单击新原理图界面的打开器件阅览叶(Open the Device View Page)按钮,弹出如下界面:记得勾选左上角“活动(Live)”旁边方框,检查NanoBoard板是否连接正常。如果前面所述的配置管理设置正确的话,会出现中间扁平椭圆内的4个下载操作栏。若未出现,则需重新进行配置管理。然后依次点击圈中的

18、四个按钮,逐步进行下载操作,当指示灯都变为绿色表示该部操作顺利完成,黄色表示尚未执行,蓝色表示正在执行,绿色表示执行正常,橘红色表示文件有错误,须返回修改调整。当下载成功后,子板上的绿灯LOADED点亮,即可进行操作验证。 设计课题二:可变频率加减计数器设计及其LCD显示实验目的A. 掌握AltiumDesigner开发环境的使用与开发流程。B. 学习时钟分频器原理与实现方法。C. 掌握8421BCD加减计数器原理与实现。D. 了解仿真文件Testbench的编写与仿真操作。E. 掌握BCD向ASCII译码原理与实现。F. 了解LCD显示器及控制器工作原理。G. 了解本实验所用到的Nano实验

19、板上的硬件资源及相关电路。实验内容及要求设计一个3位宽度的十进制加减计数器(0999),计数跳变的频率和加减模式可实时变化,通过Nano实验板上的LCD显示器显示。计数频率、加减选择和初始化操作通过板上的拨动开关和Reset按钮实现。内容:1. 分析本实验的功能需求,进行整体逻辑结构划分。2. 编写各个模块的逻辑,进行分层仿真。3. 整合各个子模块,完成整个逻辑的综合与下载。4. 验证LCD显示的正确性,分析分频步长与计数跳变频率的关系。5. 完成试验报告。要求:1. 分频步长及加减控制使用开发板上的8位拨动开关作为输入。分频计数器精度为24bit(高7位可控)。系统工作时钟使用20Mhz R

20、ef_clock,分频频率步长及加减模式可实时控制。2. 计数器为3位宽度十进制数。3. 8421BCD向ASCII译码选择组合电路实现。4. LCD右下角相邻位置显示百、十、个位数码,同时打开LCD背景灯。预习要求实验前首先预习参考资料Altium . DesignerAn Introduction(实验室提供)、Altium . NanoBoardTechnical Reference Manual(实验室提供)。根据本章实验,查找相关章节,大致了解Altium软件开发平台的使用方法以及本章实验中需要使用到的NanoBoard实验板上的硬件资源及其工作原理(包括NanoBoard板上时钟源

21、电路、FPGA(Cyclone)子板及其IO口连接电路、8位拨动开关、LCD显示器及其相关电路、Reset按钮开关等)。根据本实验指导书实验内容和要求,了解时钟分频原理、计数器工作原理、09数字ASCII码的码值以及LCD工作原理。实验前预习,目的是在实验时对实验内容,使用的工具以及本次实验的原理有充分的了解,保证实验的顺利进行。学生的收益也最大。实验原理与参考设计本实验目的是设计一个3位十进制加减计数器,然后使用LCD显示,加减频率和加减模式可实时控制。所以,系统的框架大致可设计如下图:分为4个部分,时钟分频部分负责接受外部拨动开关的输入,实现将系统时钟以一定倍数分频后输出给BCD计数部分作

22、为计数触发,改变时钟分频的倍数值,即可实时改变BCD计数的快慢。计数后的3位4bitBCD码要使用NanoBoard的LCD显示模块显示,需要转译为ASCII码。并通过LCD显示控制器输出给LCD显示。根据上面的大致逻辑框图,查阅NanoBoardTechnical Reference Manual的电路图,结合本次实验的输入输出要求,可得出使用到的硬件资源和电路连接。时钟硬件资源如下图:使用到的是20Mhz的固定参考时钟。时钟电路图如下:拨动开关输入部分硬件资源:SW开关拨到ON位置为低电平。最高第8为分配给FPGA输入口作为加减控制,低17位作为分频倍数控制输入。SW电路如下:LCD显示器

23、硬件资源如下图:LCD显示器内部自带CPU和ASCII点阵字库,在FPGA内部需要一个LCD控制器来与LCD通讯,其设计比较复杂,所以,Altium开发平台提供了经过验证的LCD控制器通讯模块LCD16X2A,其工作原理和接口时序下文中会详细说明。LCD电路如下图:时钟分频,3位BCD计数器,BCDASCII译码,LCD显示控制都属于FPGA内部逻辑,FPGA(Cyclone)子板本实验中使用到的电路及管脚连接如下:FPGA_Cyclone的连接电路以端口分组方式给出。外部时钟端口连接使用的是REF_CLK(20Mhz),所以,对应管脚编号为P152。直接输入内部逻辑作为时钟分频主时钟以及LC

24、D工作时钟。其它时钟端口未使用。分频参数输入以及加减模式选择使用的SW拨动开关与Cyclone的连接端口为上图BANK4(Cyclone的4个边之一)中的P84P95(SW7SW0)。LCD的DB总线与Cyclone连接端口为P98P107(RAM0_DATA0RAM0_DATA7)。LCD背光控制使用P114(LCD_BCKL)。另外几个控制信号的连接在后面实验操作指导的端口约束文件中详细给出。下面给出参考设计的逻辑结构,各个模块的代码以及工作原理说明。参考设计内包括时钟分频、3位BCD计数、3个相同的BCDASCII译码例化模块以及数码扫描LCD接口模块。LCD控制器IP使用Altium提

25、供的逻辑核。时钟分频模块:外部输入的时钟为固定20Mhz,分频后触发计数器计数,但是计数频率如果太快会使LCD显示模糊不清,所以分频器内部使用24bit的累加器,DIN 7bit作为高位。计数器低位全部设为1时,分频出来的加减触发信号频率为:(20Mhz / X”FFFFFF”)/ 2 (20Mhz / X”01FFFF”)/ 2 = 0.596 Hz 76.294 Hz公式中需要除以2是因为累加器溢出时,输出信号电平翻转依次,而要构成一个完整时钟周期需要电平翻转两次。由此累加器得出的触发时钟频率在0.5Hz到76Hz之间,很好地满足计数与LCD显示的要求。逻辑代码如下:library iee

26、e;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clk_gen is port(clk_in: in std_logic;-20Mhz时钟输入rstn: in std_logic;-复位信号 din : in std_logic_vector(6 downto 0);-分频控制输入 clk_out: out std_logic-分频后输出 );end clk_gen;architecture art of clk_gen issignal clk: std_logic;signal counter_reg

27、: std_logic_vector(23 downto 0);signal counter : std_logic_vector(23 downto 0);begin clk_out = clk; process(clk_in) begin if (clk_inevent and clk_in=1) then counter_reg(23 downto 17)= din; counter_reg(16 downto 0) = 11111111111111111;-仿真时设为2 end if; end process; process(clk_in) begin if (clk_inevent

28、 and clk_in=1) thenif (rstn = 0) then counter = X000000; clk = 0; else if (counter = counter_reg) then counter = X000000; clk = not clk; else counter = counter + 1; end if; end if; end if; end process;end art;3位BCD计数器模块:由ADD_SUB输入实时控制加减模式,同时需要保持原来的数值不变。RSTN作为初始化控制,数字归0。BCD计数实现方式有很多种,比如以低位进位信号作为行波时钟来

29、驱动高位累加。或者使用全局同步时钟采样低位进位信号来实现累加。两种实现方式的逻辑结构如下图:本参考设计使用后者,可以避免行波时钟导致的性能变差及运行不稳定的问题。代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter is port( add_sub: in std_logic;-加减控制 clk_in : in std_logic;-计数时钟 rstn : in std_logic;-归零信号 bcd_l_out: out std_logic_vector(3 d

30、ownto 0);-个位BCD输出 bcd_m_out: out std_logic_vector(3 downto 0);-十位BCD输出 bcd_h_out: out std_logic_vector(3 downto 0)-百位BCD输出 );end counter;architecture art of counter issignal bcd_l_out_reg: std_logic_vector(3 downto 0);signal bcd_m_out_reg: std_logic_vector(3 downto 0);signal bcd_h_out_reg: std_logic

31、_vector(3 downto 0);signal rstn_reg: std_logic;signal add_sub_reg: std_logic;begin bcd_l_out = bcd_l_out_reg; bcd_m_out = bcd_m_out_reg; bcd_h_out = bcd_h_out_reg; process(clk_in) begin if (clk_inevent and clk_in=0) then add_sub_reg = add_sub; rstn_reg = rstn; end if; end process; process(clk_in) be

32、gin if (clk_inevent and clk_in=0) then if (rstn_reg = 0) then bcd_l_out_reg = 0000; else if (add_sub_reg = 1) then if (bcd_l_out_reg = 1001) then bcd_l_out_reg = 0000; else bcd_l_out_reg = bcd_l_out_reg + 1; end if; else if (bcd_l_out_reg = 0000) then bcd_l_out_reg = 1001; else bcd_l_out_reg = bcd_l

33、_out_reg - 1; end if; end if; end if; end if; end process;process(clk_in) begin if (clk_inevent and clk_in=0) then if (rstn_reg = 0) then bcd_m_out_reg = 0000; else if (add_sub_reg = 1) then if (bcd_l_out_reg = 1001) then if (bcd_m_out_reg = 1001) then bcd_m_out_reg = 0000; else bcd_m_out_reg = bcd_

34、m_out_reg + 1; end if; end if; else if (bcd_l_out_reg = 0000) then if (bcd_m_out_reg = 0000) then bcd_m_out_reg = 1001; else bcd_m_out_reg = bcd_m_out_reg -1; end if; end if; end if; end if; end if; end process;process(clk_in) begin if (clk_inevent and clk_in=0) then if (rstn_reg = 0) then bcd_h_out

35、_reg = 0000; else if (add_sub_reg = 1) then if (bcd_l_out_reg = 1001 and bcd_m_out_reg = 1001) then if (bcd_h_out_reg = 1001) then bcd_h_out_reg = 0000; else bcd_h_out_reg = bcd_h_out_reg + 1; end if; end if; else if (bcd_l_out_reg = 0000 and bcd_m_out_reg = 0000) then if (bcd_h_out_reg = 0000) then

36、 bcd_h_out_reg = 1001; else bcd_h_out_reg ASCII译码模块:使用组合电路实现,在每位数码超过09的值时,显示错误符号E。代码如下:library ieee;use ieee.std_logic_1164.all;entity bcd_to_ascii is port(bcd_in: in std_logic_vector(3 downto 0);-BCD8421码输入 ascii_out: out std_logic_vector(7 downto 0)-8位ASCII码输出 );end bcd_to_ascii;architecture art o

37、f bcd_to_ascii issignal ascii_out_reg: std_logic_vector(7 downto 0);begin ascii_out ascii_out_reg ascii_out_reg ascii_out_reg ascii_out_reg ascii_out_reg ascii_out_reg ascii_out_reg ascii_out_reg ascii_out_reg ascii_out_reg ascii_out_reg = X45; -ASCII E end case; end process;end art;数码扫描及LCD接口BCD向AS

38、CII译码后,需要通过数码扫描依次送到LCD显示,由于使用到了Altium提供的LCD控制器逻辑模块,所以,还需要编写LCD控制器接口逻辑。这里首先介绍Altium的LCD控制器IP核LCD16X2A。逻辑符号如下图:U_lcd_ctrl模块即为该控制器核在AltiumDesinger原理图中的符号表示。其作用是接受前面用户自己的逻辑单元送来的ASCII码数据和控制信号,然后与外部的LCD显示器通讯,显示相应字符。数据总线使用输入输出分离模式,IP核后面需要增加双向BUF控制单元(U8)。LCD控制器端口说明如下:用户控制逻辑接口:CLK:控制器工作时钟,上升沿有效RST:复位信号,高电平有效

39、DATA7.0:ASCII码数据总线ADDR3.0:字符在LCD屏幕上的地址(共两行,每行16个字符)LINE:LCD屏幕上的行选择信号BUSY:控制器忙信号STROBE:数据输入有效使能LCD显示器接口:LCD_E:LCD显示器使能LCD_RW:LCD读写方向控制LCD_RS:LCD命令,数据选择LCD_DATA_TRI:LCD数据高阻态控制LCD_DATAO:LCD数据输出总线LCD_DATAI:LCD数据输入总线实际上用户只需关心用户控制逻辑接口的控制操作,至于LCD显示器接口,是由该IP核自动控制的,用户不许干涉。控制器工作原理如下:A 控制器复位当RST信号有效时(高电平),控制器进入LCD复位与初

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922