CN101980179B - 一种用于片上系统在线串行数据读写的方法 - Google Patents
一种用于片上系统在线串行数据读写的方法 Download PDFInfo
- Publication number
- CN101980179B CN101980179B CN2010105219248A CN201010521924A CN101980179B CN 101980179 B CN101980179 B CN 101980179B CN 2010105219248 A CN2010105219248 A CN 2010105219248A CN 201010521924 A CN201010521924 A CN 201010521924A CN 101980179 B CN101980179 B CN 101980179B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- isp
- program storage
- control signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
一种用于片上系统在线串行数据读写的方法,属集成电路技术领域。用可综合的硬件描述语言编写出一个ISP模块,嵌入带有程序存储器的片上系统中,实现对程序存储器的在线串行数据读写。ISP模块包含控制器模块,状态寄存器模块,SPI模块,数据通路模块,计时器模块,地址生成器模块和控制信号生成器模块。控制器模块与SPI模块、状态寄存器模块、数据通路模块、计时器模块、地址生成器模块和控制信号生成器模块相连接,计时器模块与控制信号生成器模块相连接,控制信号生成器模块与地址生成器模块相连接。本方法模块划分清晰、实现简单、可靠性高,易于在不同的片上系统中移植,便于片上系统的开发和调试,缩短片上系统的开发周期。
Description
技术领域
一种用于片上系统在线串行数据读写的方法,属于集成电路设计领域。
背景技术
随着专用集成电路设计技术的不断成熟,该领域将会产生越来越多的专用芯片,其中各种各样的片上系统也将会不断的出现,而程序存储器是构成片上系统的主要模块之一,如何对程序存储器进行数据读写成为了片上系统设计所需要考虑的主要问题之一。目前,对程序存储器数据读写的方法主要有以下三种:专用编程器数据读写,板级数据读写和在线串行数据读写。
专用编程器数据读写是指把程序存储器的数据读写接口引到片上系统的IO引脚上,然后使用专用编程器产生程序存储器所需要的数据读写控制信号和地址/数据信号,通过片上系统上有关程序存储器的IO数据读写接口完成程序的烧写下载。这种方法完成一次程序的烧写需要对芯片进行插拔一次,这样对芯片的损伤是比较大的,容易降低芯片的使用寿命,而且程序调试起来也是比较麻烦;另一方面该方法也占用了片上系统的大量IO引脚数量,增加了芯片的裸片面积,流片费用也将相应的会比较高。
板级数据读写是通过在PCB板上制作一个数据读写过渡接口,编程器通过转接板对片上系统进行数据读写。这种方法虽然降低了芯片因插拔而损坏的可能性,但是芯片的IO引脚数量并没有降低;另一方面,板级数据读写增加了PCB板的复杂度,同时采用转接板的方式降低了对程序存储器数据读写的可靠性。
在线串行数据读写是编程器通过串口(如SPI口)与芯片进行通信,实现对程序存储器的读写。这种方法需要在芯片内部嵌入专门的解析逻辑,用于产生程序存储器对应的读写控制信号和地址/数据信号。这种方法克服了前面两种方法的缺点,但是不同公司,不同工艺的程序存储器的读写时序是不一样的,这样芯片内部的解析逻辑也会不一样,需要针对不同的程序存储器进行解析逻辑设计。
专利号为200610166949.4,名称为<主机板在线编程系统及方法>的专利支持板级数据读写方法和在线串行数据读写方法。该专利没有采用转接板的方式,而是把编程器直接做在PCB板上,这种方式虽然克服了存在数据不可靠性的问题,但仍然没有解决专用编程器数据读写方法和板级数据读写方法存在的其它问题。该专利中支持串行数据读写方法的芯片仍需要在芯片中嵌入专门的解析逻辑。
发明内容
针对现有技术所存在的缺陷和不足,本发明提出了一种用于片上系统在线串行数据读写的方法,
本方法通过解析逻辑的模块设计方法,使得模块划分清晰、实现简单、可靠性高,易于在不同的片上系统中移植,便于片上系统的开发和调试,可缩短片上系统的开发周期。
本方法是采用可综合的硬件描述语言编写出一个ISP模块,嵌入到片上系统中,用于实现片上系统内部程序存储器的读写。
一种ISP模块,包含控制器模块、状态寄存器模块、SPI模块、数据通路模块、计时器模块、地址生成器模块和控制信号生成器模块,其特征在于控制器模块分别与SPI模块、状态寄存器模块、数据通路模块、计时器模块、地址生成器模块和控制信号生成器模块相连接;计时器模块与控制信号生成器模块相连接,控制信号生成器模块与地址生成器模块相连接;把ISP模块嵌入到片上系统中,并与程序存储器相连,实现片上系统在线串行数据读写。
编程器通过SPI总线,采用“操作码”、“操作码+数据”、“操作码+首地址”、“操作码+首地址+数据”四种二进制序列格式与ISP模块进行通信,控制器模块解析操作码执行对应的操作。“操作码”的二进制序列格式可以读取状态寄存器数据,实现程序存储器数据读写状态的查询;“操作码+数据”的二进制序列格式可以对状态寄存器写入数据,实现程序存储器的数据读写使能控制;“操作码+首地址+数据“的二进制序列格式实现对程序存储器的数据烧写;“操作码+首地址”的二进制序列格式实现对程序存储器的数据读取。
一种将上述ISP模块用于片上系统在线串行数据读写的方法,步骤如下:
(1)用硬件描述语言编写出ISP模块,然后把ISP模块嵌入到片上系统中,并与程序存储器相连;
(2)通过SPI总线,把编程器与ISP模块连接在一起;
(3)编程器传输“操作码+数据”的二进制序列格式给ISP模块,实现状态寄存器的数据写入,使能ISP模块对程序存储器进行数据烧写;
(4)编程器传输“操作码+首地址+数据“的二进制序列格式给ISP模块,实现对程序存储器的数据烧写;
(5)编程器传输“操作码+数据”的二进制序列格式给ISP模块,实现状态寄存器的数据写入,使能ISP模块对程序存储器进行数据读取;
(6)编程器传输“操作码+首地址”的二进制序列格式给ISP模块,实现对程序存储器的数据读取,然后把读取出来的数据与步骤(5)中烧写进程序存储器的数据进行对比,完成数据的校验。
上述ISP是英文In-System Programming的缩写,汉语意为在系统可编程。
ISP模块与编程器的通信是通过SPI模块的SPI总线,实现的功能有:实现对程序存储器数据读写状态的查询和数据读写使能的控制;实现对程序存储器数据的烧写;实现对程序存储器数据的读取,进行数据烧写后的校验。下面介绍一下ISP模块中各个子模块的功能。
(1)SPI模块:实现二进制序列的串并转换。SPI模块通过SCK,MOSI,MISO,SPIRST四根信号线与外部的编程器进行交互。作为输入,SPI接口在SCK上升沿的触发下,把编程器传输过来的二进制序列从MOSI读入,转换成并行二进制序列,并交付给控制器解析。作为输出,SPI接口把控制器交付过来的并行二进制序列转换成串行二进制序列,并在SCK下降沿触发下从MISO输出给编程器。编程器每发送一条操作码之前,需要复位信号SPIRST信号一个从高到低的电平变化。
(2)控制器模块:ISP模块的核心,控制着ISP模块的工作时序。该模块采用状态机方式设计。控制器根据二进制序列中的操作码进入到不同的工作状态执行对应的操作。
(3)状态寄存器模块:该模块用于控制ISP模块是否可以对程序存储器进行数据烧写或数据读取,同时编程器可以通过该模块查寻ISP模块处于写数据或读数据的状态。
(4)计时器模块:根据控制器模块的使能信号,开启关闭计时器,辅助控制信号生成器产生控制信号的时间。
(5)数据通路模块:提供读写程序存储器数据的传输通路。
(6)地址生成器模块:根据控制器提供的地址,产生读/写程序存储器的首地址,并完成地址自动加一,指向程序存储器的下一个位置。
(7)控制信号生成器模块:在控制器模块的使能下,产生读/写程序存储器的控制信号。
本方法模块结构划分清晰、实现简单、可靠性高各个子模块的硬件描述语言编写简单,容易在不同的片上系统上移植。不同的程序存储器,需要不同的控制信号和控制信号时序,只需要修改计时器模块和控制信号生成器模块,产生对应程序存储器的读写控制信号和控制信号时序,就可以实现对不同程序存储器的读写。由于模块是采用硬件描述语言实现的,所以模块适合于不同的集成电路制造工艺。本方法只需要编程器通过SPI总线就可完成对片上系统编程,因此可以减少片上系统编程接口的IO管脚数量,同时不会对PCB板的设计带来多大的复杂度。另外,编程时,不需要从板上取下芯片,可以避免因此造成对芯片损坏的可能性,同时本方法方便对片上系统的程序调试,可以缩短片上系统的开发周期。
附图说明
图1为ISP模块的结构框图。
其中:1、控制器模块,2、SPI模块,3、状态寄存器模块,4、计时器模块,5、控制信号生成器模块,6、地址生成器模块,7、数据通路模块。
图2为用于片上系统在线串行数据读写的方法的程序框图。其中(1)-(6)为其各个步骤。
具体实施方式
下面结合附图和实施例对本发明进行进一步说明,但不限于此。
实施例1:
一种ISP模块,如图1所示,包含控制器模块1、状态寄存器模块3、SPI模块2、数据通路模块7、计时器模块4、地址生成器模块6和控制信号生成器模块5,其特征在于控制器模块1分别与SPI模块2、状态寄存器模块3、数据通路模块7、计时器模块4、地址生成器模块6和控制信号生成器模块5相连接;计时器模块4与控制信号生成器模块5相连接,控制信号生成器模块5与地址生成器6模块相连接;把ISP模块嵌入到片上系统中,并与程序存储器相连,实现片上系统在线串行数据读写。
实施例2:
一种将上述ISP模块用于片上系统在线串行数据读写的方法,如图2所示,步骤如下:
(1)用硬件描述语言编写出ISP模块,然后把ISP模块嵌入到片上系统中,并与程序存储器相连;
(2)通过SPI总线,把编程器与ISP模块连接在一起;
(3)编程器传输“操作码+数据”的二进制序列格式给ISP模块,实现状态寄存器的数据写入,使能ISP模块对程序存储器进行数据烧写;
(4)编程器传输“操作码+首地址+数据“的二进制序列格式给ISP模块,实现对程序存储器的数据烧写;
(5)编程器传输“操作码+数据”的二进制序列格式给ISP模块,实现状态寄存器的数据写入,使能ISP模块对程序存储器进行数据读取;
(6)编程器传输“操作码+首地址”的二进制序列格式给ISP模块,实现对程序存储器的数据读取,然后把读取出来的数据与步骤(5)中烧写进程序存储器的数据进行对比,完成数据的校验。
Claims (2)
1.一种ISP模块,包含控制器模块、状态寄存器模块、SPI模块、数据通路模块、计时器模块、地址生成器模块和控制信号生成器模块,其特征在于控制器模块分别与SPI模块、状态寄存器模块、数据通路模块、计时器模块、地址生成器模块和控制信号生成器模块相连接;计时器模块与控制信号生成器模块相连接,控制信号生成器模块与地址生成器模块相连接;把ISP模块嵌入到片上系统中,并与程序存储器相连,实现片上系统在线串行数据读写;
其中ISP模块与编程器的通信是通过SPI模块的SPI总线,实现的功能有:对程序存储器数据读写状态的查询和数据读写使能的控制;对程序存储器数据的烧写;对程序存储器数据的读取,进行数据烧写后的校验;
ISP模块中各个子模块的功能如下:
1)SPI模块:实现二进制序列的串并转换;SPI模块通过SCK,MOSI,MISO,SPIRST四根信号线与外部的编程器进行交互;作为输入,SPI接口在SCK上升沿的触发下,把编程器传输过来的二进制序列从MOSI读入,转换成并行二进制序列,并交付给控制器解析;作为输出,SPI接口把控制器交付过来的并行二进制序列转换成串行二进制序列,并在SCK下降沿触发下从MISO输出给编程器;编程器每发送一条操作码之前,需要复位信号SPIRST信号一个从高到低的电平变化;
2)控制器模块:ISP模块的核心,控制着ISP模块的工作时序;该模块采用状态机方式设计,控制器根据二进制序列中的操作码进入到不同的工作状态执行对应的操作;
3)状态寄存器模块:该模块用于控制ISP模块是否可以对程序存储器进行数据烧写或数据读取,同时编程器可以通过该模块查寻ISP模块处于写数据或读数据的状态;
4)计时器模块:根据控制器模块的使能信号,开启关闭计时器,辅助控制信号生成器产生控制信号的时间;
5)数据通路模块:提供读写程序存储器数据的传输通路;
6)地址生成器模块:根据控制器提供的地址,产生读/写程序存储器的首地址,并完成地址自动加一,指向程序存储器的下一个位置;
7)控制信号生成器模块:在控制器模块的使能下,产生读/写程序存储器的控制信号。
2.一种将权利要求1所述ISP模块用于片上系统在线串行数据读写的方法,步骤如下:
(1)用硬件描述语言编写出ISP模块,然后把ISP模块嵌入到片上系统中,并与程序存储器相连;
(2)通过SPI总线,把编程器与ISP模块连接在一起;
(3)编程器传输“操作码+数据”的二进制序列格式给ISP模块,实现状态寄存器的数据写入,使能ISP模块对程序存储器进行数据烧写;
(4)编程器传输“操作码+首地址+数据“的二进制序列格式给ISP模块,实现对程序存储器的数据烧写;
(5)编程器传输“操作码+数据”的二进制序列格式给ISP模块,实现状态寄存器的数据写入,使能ISP模块对程序存储器进行数据读取;
(6)编程器传输“操作码+首地址”的二进制序列格式给ISP模块,实现对程序存储器的数据读取,然后把读取出来的数据与步骤(5)中烧写进程序存储器的数据进行对比,完成数据的校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105219248A CN101980179B (zh) | 2010-10-27 | 2010-10-27 | 一种用于片上系统在线串行数据读写的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105219248A CN101980179B (zh) | 2010-10-27 | 2010-10-27 | 一种用于片上系统在线串行数据读写的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101980179A CN101980179A (zh) | 2011-02-23 |
CN101980179B true CN101980179B (zh) | 2012-08-08 |
Family
ID=43600681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105219248A Expired - Fee Related CN101980179B (zh) | 2010-10-27 | 2010-10-27 | 一种用于片上系统在线串行数据读写的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101980179B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744009B (zh) * | 2013-12-17 | 2016-12-07 | 记忆科技(深圳)有限公司 | 一种串行传输芯片测试方法、系统及集成芯片 |
CN104239247B (zh) * | 2014-09-04 | 2017-04-19 | 成都锐成芯微科技有限责任公司 | 一种基于spi接口的寄存器快捷读写方法 |
CN114265561B (zh) * | 2021-12-24 | 2024-08-20 | 上海集成电路装备材料产业创新中心有限公司 | 一种数据读取控制方法、芯片和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201742A (zh) * | 2006-12-13 | 2008-06-18 | 英业达股份有限公司 | 主机板在线编程系统及方法 |
CN101751364A (zh) * | 2010-01-25 | 2010-06-23 | 成都优博创技术有限公司 | 一种spi总线接口的固件isp烧录器和烧录方法 |
-
2010
- 2010-10-27 CN CN2010105219248A patent/CN101980179B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201742A (zh) * | 2006-12-13 | 2008-06-18 | 英业达股份有限公司 | 主机板在线编程系统及方法 |
CN101751364A (zh) * | 2010-01-25 | 2010-06-23 | 成都优博创技术有限公司 | 一种spi总线接口的固件isp烧录器和烧录方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101980179A (zh) | 2011-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104459518B (zh) | 基于SoPC芯片的功能自动化测试系统及其测试方法 | |
CN109542478A (zh) | 一种更新SPI Flash内FPGA程序的系统及方法 | |
CN102521444A (zh) | 软硬件协同仿真/验证方法及装置 | |
CN102541707A (zh) | 复用jtag接口的fpga片内逻辑分析仪系统和方法 | |
CN105335548B (zh) | 一种用于ice的mcu仿真方法 | |
CN106294144B (zh) | 串行通信协议的测试向量的生成方法、系统及服务器 | |
CN104572384B (zh) | 一种芯片多fpga验证方法 | |
CN103513994A (zh) | 一种通过pcie 进行fpga 在线升级的方法和系统 | |
CN105095040B (zh) | 一种芯片调试方法与装置 | |
CN101719170A (zh) | 集成电路的仿真测试方法 | |
CN101826025A (zh) | 现场可编程逻辑器件固件升级装置及其方法 | |
CN101102566B (zh) | 一种手机jtag调试接口信号设计方法及其调试方法 | |
CN101980179B (zh) | 一种用于片上系统在线串行数据读写的方法 | |
CN116776793B (zh) | 静态时序分析和前仿真相结合的多周期路径约束验证方法 | |
CN103376340A (zh) | 一种转接板、多平台串行测试系统及方法 | |
CN108920825A (zh) | 一种基于IP核的SoC可视化设计方法 | |
CN106024036A (zh) | 一种基于fpga的多路音频数据格式转换方法 | |
CN105446859A (zh) | 功耗分析的软件条件监测及波形文件自动生成方法 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
CN110569162B (zh) | 一种通信领域中fpga的自动测试方法及装置 | |
CN101196556A (zh) | 进行并行测试判定的soc及其实现方法 | |
CN105446843A (zh) | Soc芯片功能测试系统及方法 | |
CN104461796B (zh) | 用于嵌入式8051cpu的jtag调试模块及调试方法 | |
CN106571156B (zh) | 一种高速读写ram的接口电路及方法 | |
Che | FPGA-based memory test system design and test algorithm implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120808 Termination date: 20181027 |