多接口协议寄存器存取电路的设计与实现
单片机与外部存储器的接口设计与数据存取应用案例分享与研究与实践
![单片机与外部存储器的接口设计与数据存取应用案例分享与研究与实践](https://img.taocdn.com/s3/m/6d63899a3086bceb19e8b8f67c1cfad6195fe9a3.png)
单片机与外部存储器的接口设计与数据存取应用案例分享与研究与实践单片机是一种基于微处理器或微控制器的嵌入式系统,广泛应用于各种电子产品中。
在一些应用场景中,单片机需要与外部存储器进行数据交互,以实现数据存储和读写功能。
因此,设计合理的接口方案并研究有效的数据存取方法对于单片机应用至关重要。
本文将分享一个实际案例,并展开对单片机与外部存储器接口设计的研究与应用实践。
1. 硬件接口设计首先,对于单片机与外部存储器的接口设计,需要考虑的因素有很多,比如接口类型、通信协议、数据线数量、地址线数量等。
在这里,我们以SPI(Serial Peripheral Interface)接口为例进行介绍。
SPI接口是一种通信协议,通过四根线实现数据传输,包括时钟线、数据输入线、数据输出线和片选线。
在单片机与外部存储器的接口设计中,可以通过SPI接口来实现数据的快速传输。
另外,需要考虑外部存储器的型号和规格,选择合适的存储设备以满足数据存储需求。
2. 数据存取方法研究在实际的应用中,单片机与外部存储器的数据存取方法有多种选择,比如直接寻址、缓冲存储、页面映射等。
针对不同的应用场景,需要选择合适的数据存取方法以提高数据读写效率。
在我们的案例中,我们采用了基于页缓冲的数据存取方法。
通过将外部存储器的数据分成若干个页面,并采用缓冲存储的方式,可以有效减少数据读写的延迟,提高数据传输效率。
同时,可以通过页映射表的方式来管理数据的读写,确保数据的有效存取。
3. 应用案例分享最后,我们分享一个应用案例,以展示单片机与外部存储器接口设计与数据存取的实践应用。
在这个案例中,我们使用了STM32系列单片机与SPI Flash存储器进行数据存储与读取。
通过设计合理的硬件接口和采用有效的数据存取方法,实现了数据的高效读写,并成功应用于某智能家居产品中。
通过以上案例的分享,我们深入探讨了单片机与外部存储器的接口设计与数据存取的研究与实践。
在日后的单片机应用中,我们可以根据具体需求选择合适的接口方案和数据存取方法,以提高系统的性能和稳定性,为产品的开发和应用提供更好的支持。
多接口协议寄存器存取电路的设计与实现
![多接口协议寄存器存取电路的设计与实现](https://img.taocdn.com/s3/m/6a1139741fb91a37f111f18583d049649b660e3a.png)
多接口协议寄存器存取电路的设计与实现王瑞雪;陶家元;覃海洋【摘要】本文提出并实现了一种能够同时控制APB和IIC等多个接口协议对寄存器进行高效读写的数字逻辑电路.在两种协议同时请求配置寄存器时,首先对两种协议进行跨时钟域同步,并采用优先级反转算法对两种协议进行仲裁,其次完成对数据的拼接拆分转换,最后使用寄存器访问协议实现对其数据的读写.【期刊名称】《电声技术》【年(卷),期】2019(043)002【总页数】2页(P60-61)【关键词】APB;IIC;寄存器访问;接口协议;SOC【作者】王瑞雪;陶家元;覃海洋【作者单位】重庆大学城市科技学院,重庆402167;重庆大学城市科技学院,重庆402167;重庆大学城市科技学院,重庆402167【正文语种】中文【中图分类】TM131.51 引言随着半导体和片上系统(SOC)技术的迅猛发展,芯片所集成的IP核越来越复杂,需要支持的接口协议也越来越多,同步精准地控制多个协议完成对芯片内部寄存器进行读写亦变得愈加重要[1]。
目前市场上一些接口控制器大多数采用了选择使能的方法来控制多种协议完成对寄存器的访问,即每次需要人为选择相应的协议并将其使能,再通过此协议完成访问,访问协议的切换均需要用户参与,极大的降低了访问效率。
本文基于这一实际问题,提出并实现了一种能够同时使用APB和IIC 等协议对寄存器进行高效读写的数字逻辑电路。
2 系统整体框图图1是系统的整体框图。
本次设计中,I2C和APB主机都需要实现对寄存器组的配置。
I2C总线是一种简单、双向二线制同步串行总线,它只需要两根线来完成连接于总线上器件之间的信息传送[2]。
而APB主要用于低带宽的周边外设之间的连接,其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号[3]。
图1 系统整体框图当两个协议同时发起读写操作时,需要使用伪随机仲裁器进行仲裁,以决定寄存器访问的优先级。
此时,优先级高的配置请求会得到响应,而将优先级低的请求暂时挂起,待当前访问完成后,再响应优先级低的请求。
双端口存储器实验报告
![双端口存储器实验报告](https://img.taocdn.com/s3/m/49bc7016a4e9856a561252d380eb6294dd8822e5.png)
双端口存储器实验报告实验目的:1.了解双端口存储器的结构和工作原理。
2.掌握Verilog HDL语言的基本应用。
3.掌握ModelSim软件的使用方法。
实验内容:双端口存储器是指具有两个读写口的存储器,它可以通过一个端口写入数据,同时通过另一个端口读出数据,常用于数字信号处理、图像处理等领域。
本实验将通过Verilog HDL语言编写程序,使用ModelSim软件进行仿真验证,实现一个简单的双端口存储器。
具体实验内容如下:2.编写Verilog HDL程序实现简单的双端口存储器。
在程序中,定义数据存储器、读写使能信号、读写数据等变量,并利用always语句实现对数据的读写操作。
3.使用ModelSim软件进行仿真验证。
在ModelSim中创建项目,导入设计文件和仿真波形文件,进行波形仿真,验证程序的正确性。
实验步骤:双端口存储器是指具有两个读写口的存储器,其中一个读写口用于读写存储器内部的数据,另一个用于与外部系统交换数据。
在双端口存储器的结构中,存储器数据的读写可以同时进行,而无需互斥。
在读数据端口和写数据端口的操作中,存在两个读写控制信号,一个是读写使能信号,用于控制读写操作是否有效;另一个是写使能信号,用于控制数据写入操作的触发。
2.编写Verilog HDL程序实现简单的双端口存储器。
module dual_port_memory (input clk,input [3:0] addr1,input [3:0] addr2,input [7:0] data_in,input rd_en1,input rd_en2,input wr_en,output [7:0] data_out1,output [7:0] data_out2);reg [7:0] mem[0:15]; // 定义存储器数组// 读写操作always @(posedge clk) beginif (wr_en) // 写操作mem[addr1] <= data_in;else if (rd_en1) // 读操作1data_out1 <= mem[addr1];else if (rd_en2) // 读操作2data_out2 <= mem[addr2];endendmodule在程序中定义了一个16位的存储器数组mem。
双端口寄存器的设计与实验
![双端口寄存器的设计与实验](https://img.taocdn.com/s3/m/3af6fcb44793daef5ef7ba0d4a7302768e996ff2.png)
双端口寄存器的设计与实验设计与实验:双端口寄存器双端口寄存器是一种特殊的寄存器设计,可以同时提供两个独立的数据输入和输出端口,从而实现高效的数据交换和传输。
在本文中,我们将探讨双端口寄存器的设计原理及其在实验中的应用。
一、双端口寄存器的设计原理双端口寄存器的设计原理主要基于以下两点:1. 双端口访问:双端口寄存器可以同时进行读取和写入操作。
其中,一个端口用于读取数据,另一个端口用于写入数据。
这样,不同的模块或设备可以同时从寄存器中读取和写入数据,提高了数据的传输效率。
2. 端口独立:双端口寄存器的两个端口是完全独立的,它们之间互不干扰。
即使一个端口在读取数据的同时,另一个端口也可以同时向寄存器写入数据。
这种独立性能够确保数据的准确性和稳定性。
基于以上原理,双端口寄存器的设计可以采用以下步骤:1. 确定输入和输出端口数量:根据具体需求,确定所需的输入和输出端口的数量。
常见的情况是一个读取端口和一个写入端口,但也可以根据实际需要增加更多的端口。
2. 确定数据位宽度和时钟频率:确定每个端口的数据位宽度以及时钟频率,这将决定寄存器的数据处理能力和传输速度。
3. 设计时序逻辑:根据设计需求,设计时序逻辑以确保数据的正确读取和写入。
时序逻辑可以采用状态机、计数器等方式实现,以保证数据的同步和稳定性。
4. 进行验证和测试:在设计完成后,进行验证和测试,确保双端口寄存器在实际应用中的正确性和可靠性。
二、双端口寄存器的实验应用双端口寄存器在实验中有各种各样的应用。
下面将介绍其中两个常见的应用场景。
1. 数据缓冲器双端口寄存器可以作为数据缓冲器使用,用于缓存和传输数据。
在实际应用中,如果一个模块或设备需要读取数据,而另一个模块或设备正在写入数据,可以使用双端口寄存器作为缓冲区,将正在写入的数据存储在一个端口,并从另一个端口读取数据。
这样可以确保数据的连续传输,避免了数据传输中的阻塞和延迟。
2. 状态同步器双端口寄存器还可以作为状态同步器使用,用于实现不同模块或设备之间的状态同步。
双端口存储器原理实验报告
![双端口存储器原理实验报告](https://img.taocdn.com/s3/m/a645bf4e5fbfc77da369b130.png)
双端口存储器原理实验报告一、实验内容、方法和步骤1.接线IAR_BUS 接 GND,ALU_BUS 接 GND,RS_BUS 接GND,禁止中断地址寄存器、运算器、多端口寄存器堆 RF 向数据总线 DBUS 送数据。
AR1_INC 接GND,M3 接 VCC,使地址寄存器 AR1 和 AR2 从数据总线 DBUS 取得地址数据。
信号IAR_BUSALU_BUSRS_BUSAR1_INC M3开关GND GND GND GND VC C信号LDIRSW_BUSLDAR2LDAR1 CER LRW CEL开关K6 K5 K4 K3 K2 K1 K0 2.置 DP = 1,DB = 0,DZ = 0,使实验台处于单拍状态。
工作模式开关=“脱机”合上电源。
按复位按钮 CLR#,使实验系统处于初始状态。
置 DP = 1,DB = 0,DZ = 0,使实验台处于单拍状态。
工作模式开关=“脱机”合上电源。
按复位按钮 CLR#,使实验系统处于初始状态。
(1)写地址寄存器 AR1=00信号SW7~0 LDIRSW_BUSLDAR2LDAR1 CER LRW CEL开关K6 K5 K4 K3 K2 K1 K0状 态 / 00H 0 1 0 1 0 0 0 值 按一次 QD ,将 00H 写入 AR1。
(2)向存储器 00H 地址写数 00H 信 SW7~0 LDIR SW_B US LDAR 2 LDAR 1 CER LRW CEL 号 开关 K6 K5 K4 K3 K2 K1 K0 状 态 / 00H 0 1 0 0 0 0 1 值 按一次 QD ,将 00H 写入存储器 00H 地址。
(3)写地址寄存器 AR1=10 信号 SW7~0 LDIR SW_B US LDAR 2 LDAR 1 CER LRW CEL 开关 K6 K5 K4 K3 K2 K1 K0 状 态 / 10H 0 1 0 1 0 0 0 值按一次 QD ,将 10H 写入 AR1。
多端口共享存贮器电路设计
![多端口共享存贮器电路设计](https://img.taocdn.com/s3/m/206bf983680203d8ce2f2493.png)
3 1 1 电路实现 .. 主控制器与通讯控制器采 用相 同的电路 原理 实现 与存 储器的连接 , 主要芯片介绍 ,4 E4 , 7 HCI 5 八双 向总线 驱动器 , 控制端有/ OE输 出使 能端、 I D R方 向控 制端 ,4 I 4 , 7 HC E 4 八
贮器采用差分 总线 的方式 相连 , 芯片选用具备三态输 出的差 分驱动芯片 9 F 7 、6 1 5将数据 线 、 6 14 9F 7 地址 线 、 控制信 号等
存诸 芯片 , 电路设计简单 , 数据传送 不 占处理器时间, 非常适
应 于数 据量适 中的实时系统 , 电话交换机。共享存储 器电 如
路分双端 口和多端 口, 双端 口共享存储器基本采用并行总线 方式 , 用于双机系统 。多端 口共享存储器应用 于多处理器 应
系统 , 常采用 串行 总线方 式 , 串行 方式将 占用接 收方 的处理 器时 间, 针对 实时性较强 的系统来说 , 行总线 方式 的共 享 并 存储器是最佳 的选择 , 这种芯片有 , 但难 以购买 , 针对应用 于
中图分类号 :1 3 . 1 ) 12 3
文献标识码 : A
O 引 言
在多处理机应用系统 中, 信息的传递方式可以通过 锁存
器、 串行 接 口、 并行接 口、 共享存储 器电路来实 现。用锁存 器
控制器来 的数 据线 、 址线 和控 制线 通过 线与 线 的方 式 与 地 6C 4 2 6 相连 , 的数 据线 、 三方 地址 线和 控制线 在不 操 作共享 存贮器时应保证为高 阻状态 。各处 理器通 过状 态查询 方式
存储器 选 择 静态 存 储 器 HM6 6 A P1 , 量 8 字 24 L -5 容 K
节, 数据宽度 8 , 位 占用处理器数据线 8 、 线 1 根 、 根 地址 3 控
多端口SDRAM控制器的设计与实现
![多端口SDRAM控制器的设计与实现](https://img.taocdn.com/s3/m/96af342bed630b1c59eeb54f.png)
多端口SDRAM控制器的设计与实现目前,在很多视频数据采集以及实时显示的应用开发中,常需要用到存储容量大、读写速度快的存储器。
在各种存储器件中,同步动态随机存储器SDRAM 以其速度快、容量大、价格低的特点而备受关注。
SDRAM 的工作频率可以达到100MHz 甚至更高,但是在其工作周期内,因为要有刷新、预充电以及寻址等必要的操作,不可能总处于数据传输状态,使得它的带宽不能达到百分之百的利用,实时显示效果因此受到影响。
为此,本文在研究有关文献的基础上,根据具体情况提出了一种独特的方法,利用FPGA 的片上资源开辟了多个FIFO 作为读写缓存,实现了多端口SDRAM 控制器的设计,并用Verilog 硬件描述语言[1] 给予实现,仿真结果表明该控制器能够轮流地从多个缓存向SDRAM 进行存取,实现了高速多数据缓存,充分利用了SDRAM 的有效带宽,提高了存取速度,从而达到实时显示的要求,并且只要将该设计稍加修改,便可应用到其他需要多数据缓存的场合。
1 SDRAM 基本操作原理[2] [3]SDRAM 的主要控制信号有:CS_N:片选使能;CAS_N:列地址选通信号;RAS_N:行地址选通信号;WE_N:写使能信号;DQM:字节掩码信号;ADDR:地址线。
以上这些信号的逻辑组合就组成了SDRAM 的主要操作命令,如表1 所示:1.1 初始化操作SDRAM 上电一段时间后, 经过初始化操作才可以进入正常工作过程。
初始化主要完成预充电、自动刷新和模式寄存器的配置。
1.2 SDRAM 的基本读写操作读写操作主要完成与SDRAM 的数据交换。
可以分为非突发连续操作模式和突发连续操作模式, 非突发指的是传送数据和地址必须是相对应一个一个的传输, 突发模式则是地址控制信号只需要给出首地址信息, 而数据实现连续传输过程, 突发数据的长度可以为1, 2,4, 8 和全页。
1.3 刷新操作动态存储器都存在刷新问题。
SDRAM 的刷新方式有自动刷新和自主刷新, 这里主要采用自动刷新方式, 每隔一段时间向SDRAM 发一条刷新命令。
一种6读2写多端口寄存器堆的全定制实现
![一种6读2写多端口寄存器堆的全定制实现](https://img.taocdn.com/s3/m/216184cfa417866fb94a8e02.png)
一种6读2写多端口寄存器堆的全定制实现张轩;李兆麟【摘要】采用全定制设计方法实现了一种6读2写的32′32位的多端口寄存器堆,包括结构设计、电路设计、版图设计、仿真验证以及建模建库.该多端口寄存器堆的读写端口互相独立,在一个时钟周期内,能够同时读出6个32位数据,并写入2个32位数据.在电路实现上,采用高速SCL结构的地址译码和分组字线的方法来减少读写延迟.采用了0.18μm 6层金属P阱CMOS工艺来实现版图设计,通过了版图验证和后端仿真.【期刊名称】《计算机工程》【年(卷),期】2007(033)020【总页数】3页(P248-250)【关键词】多端口寄存器堆;高速SCL结构;全定制设计;自顶向下的设计流程【作者】张轩;李兆麟【作者单位】清华大学信息科学技术学院,CPU & SoC实验室,北京,100084;清华大学信息科学技术学院,CPU & SoC实验室,北京,100084【正文语种】中文【中图分类】工业技术第 33 卷Vol.33 第 20期No.20 计算机工程Computer Engineering 2007 年 10 月October 2007·工程应用技术与实现·文章编号: 1000-3428(2007)20-0248-03文献标识码: A中图分类号: TN47一种 6 读 2 写多端口寄存器堆的全定制实现张轩,李兆●(清华大学信息科学技术学院, CPU&SoC 实验室,北京 100084)摘要:采用全定制设计方法实现了一种 6 读 2 写的 32x32 位的多端口寄存器堆,包括结构设计、电路设计、版图设计、仿真验证以及建模建库。
该多端口寄存器堆的读写端口互相独立,在一个时钟周期内,能够同时读出 6个 32 位数据,并写入 2 个 32 位数据。
在电路实现上,采用高速 SCL 结构的地址译码和分组字线的方法来减少读写延迟。
采用了 0.18Um6层金属 P 阱 CMOS 工艺来实现版图设计,通过了版图验证和后端仿真。
多端口寄存器堆的低功耗设计方法
![多端口寄存器堆的低功耗设计方法](https://img.taocdn.com/s3/m/78e1c42415791711cc7931b765ce050877327574.png)
多端口寄存器堆的低功耗设计方法0 引言寄存器堆是构成微处理器的重要部件,缓存和传输操作数是它的基本作用,其性能优劣将直接影响处理器的处理能力。
随着处理器并行处理能力的加强,寄存器堆的端口越来越多,端口的增加不但增加了功耗,也加大了读写延时,限制了处理器时钟频率的提高,成为高性能微处理器的片上存储瓶颈。
高速和低功耗是多端口寄存器堆的设计目标,但是两者之间相互约束。
在Motorola的M.CORE处理器中,寄存器堆的功耗占整个芯片的16%,在数据通路中的比例更是高达42%。
有研究表明,寄存器堆的功耗达到整个处理器芯片功耗的25%。
因此,高速低功耗的多端口寄存器堆的设计成为未来存储器设计中极具挑战性的工作。
1 寄存器堆的功耗组成1.1 寄存器堆的总体结构目前寄存器堆所采用的基本组成单元是6T SRAM。
寄存器堆在电路结构上,可分为四个部分。
第一是由存储单元构成的存储阵列;第二是由地址缓冲器、译码器、字线及其驱动器构成的地址路径;第三是由数据缓冲器、读写放大器、位线及其预充电路构成的数据路径;第四是读写控制逻辑。
如图1所示。
1.2 多端口寄存器堆结构多端口的存储单元一般每个端口都有自己的字线和位线,从而保证各个端口能够同时独立工作,以满足指令级并行的微处理器工作要求。
但是这同时也导致了寄存器堆功耗的迅速提高。
多端口读写位线一般有差分式和单端式两种,差分式读写以更高的数据准确性和读写速度应用于多数的多端口设计。
其结构如图2所示。
1.3 多端口寄存器堆的功耗组成1.3.1 基本单元SRAM基本单元SRAM的功耗主要由三个部分组成。
一是动态功耗,即电容充放电所消耗的功耗。
二是短路功耗,即电源和地导通时所消耗的功耗。
三是MOS管泄漏电流所引起的静态功耗。
在三种功耗中动态功耗所占比重最大,而SRAM中位线连接许多存储体单元,其电容负载很大,位线充放电所引起的动态功耗就很大,占到总体动态功耗的80%,所以优化位线动态功耗对整个SRAM功耗降低影响很大。
实验二 双端口寄存器
![实验二 双端口寄存器](https://img.taocdn.com/s3/m/e5446c1452d380eb62946d31.png)
计算机组成原理实验报告实验二双端口存储器原理实验学院:计算机学院班级:2010211306学号:10211309号姓名:朱璇一实验目的1.了解双端口静态存储器IDT7132的工作特性及其使用方法2.了解半导体存储器怎样存储和读取数据3.了解双端口存储器怎样并行读写,并分析冲突产生的情况二实验电路三实验任务1.按电路图要求,将有关控制信号和二进制开关对应接好,反复检查后,接通电源.2.将二进制数码开关SW7-SW0(SW0为最低位)设置为00H,将其他作为存储器地址置入AR;然后将二进制开关的00H作为数据写入RAM中.用这个方法,向存储器的10H,20H,30H,40H单元依次写入10H,20H,30H,40H.3.使用存储器的左端口,依次将第2步存入的5个数据读出,观察各单元中存入的数据是否正确.记录数据.注意:禁止两个或两个以上的数据源同时向数据总线上发送数据!在本实验中,当存储器进行读出操作时,务必将SW_BUS#的三态门关闭.而当向AR送入数据时,双端口存储器也不能被选中.4.通过存储器的右端口,将第2步存入的5个数据读出,观察结果是否与第3步结果相同.记录数据.5.双端口存储器的并行读写和访问冲突.四实验步骤(一)连接电路并且将数据写入到双端口存储器的左端1.连接电路置DP=1,DB=0,编程开关拨到正常位置.数据通路LDAR# LDPC# CEL# LR/W# RAM_BUS# CER# SW_BUS# 电平开关K0 K1 K2 K3 K4 K5 K6AR+1 和 PC+1 两个信号接地.2.令K0(LDAR#)=0, K2(CEL#)=1, K4(RAM_BUS#)=1, K5(CER#)=1, K6(SW_BUS#)=0.置SW7-SW0=00H,按QD按钮,将00H打入地址寄存器AR.3.令K0(LDAR#)=1, K2(CEL#)=0, K3(LR/W#)=0, K4(RAM_BUS#)=1, K5(CER#)=0,K6(SW_BUS#)=0.置SW7-SW0=00H,按QD按钮,将00H写入存储器00H单元.4重复上面的的2,3步,然后将数据10H,20H,30H打入到地址10H,20H,30H中去。
一种可编程多协议接口芯片设计与实现
![一种可编程多协议接口芯片设计与实现](https://img.taocdn.com/s3/m/44437ed22dc58bd63186bceb19e8b8f67c1cef13.png)
一种可编程多协议接口芯片设计与实现徐雄斌【摘要】基于0.18 μm BCD工艺,设计了一款可编程多协议串行接口芯片.该芯片采用数字和模拟混合信号芯片设计技术,实现了可编程协议选择、4通道收发器、三态控制、单电源、高速传输、ESD、电荷泵等功能.测试结果表明:可支持RS-232、RS-422、RS-485等多种协议,ESD满足抗±15 kV人体静电能力,RS-232传输速率不低于120 kbyte/s,RS-422传输速率不低于10 Mbyte/s.已经通过设计、仿真、流片、封装、测试、验证,成功应用于多型产品中.【期刊名称】《电子器件》【年(卷),期】2019(042)003【总页数】4页(P581-584)【关键词】集成芯片设计;串行通信接口芯片;混合信号电路设计;0.18μmBCD工艺;可编程多协议;电荷泵;ESD【作者】徐雄斌【作者单位】武汉数字工程研究所,武汉430205【正文语种】中文【中图分类】TN433为了满足用户多通道、多协议通信以及通用化、小尺寸PCB的应用需求,需设计一款接口芯片,该芯片必须具有可编程多协议选择、多通道收发器、单电源等功能,通过软件编程完成协议选择实现多协议通信及通用化,通过多通道收发器、单电源等减少PCB上芯片和器件应用数量,达到用户应用需求。
1 设计要求该芯片设计要求:(1)4路发送和4路接收;(2)协议可编程选择;(3)支持协议:RS-232、RS-422、RS-485等;(4)抗ESD能力:±15 kV人体静电,±15 kV空气放电,±8 kV IEC1000-4-2接触式放电;(5)单电压输入;(6)RS-232传输速率不低于120kbyte/s,RS-422传输速率不低于10 Mbyte/s。
2 工作框图和原理该芯片主要由五部分组成[1-4]:(1)驱动器;(2)接收器;(3)升压泵;(4)ESD;(5)可编程寄存器。
一种双存取SRAM接口电路设计
![一种双存取SRAM接口电路设计](https://img.taocdn.com/s3/m/ef6db1d7360cba1aa811da1a.png)
传统的双端口 SRAM 采用 8 管存储单元 , 如图
பைடு நூலகம்
c3 。其中 , sram _a1_pre2 低电平有效, 是 SRAM 读写 最关键的控制信号 , 其它信号都和它有关。关键信 号及功能如表 1 所示。
表 1 关键信号及功能 信号 sram _a1_ c1 sram _a1_ c2 sram _a1_ c3 写控制信号 sram _a1_c2 用来选择要读取的数据 sram _a1_c3 是 SRAM 读时灵敏放大器的打开信号 功能
4所示。比传统单端口 SRAM 采用的 6 管存储单元 多两个门管和一套位线 , 由于版图连线的不规则性, 8管单元的版图面积比 6 管存储单元大很多
[ 4]
。
图 4 双端口 SRAM 存储单元 [ 5]
与单端口 SRAM 相比, 双存取 SRAM 可大大减 少流 水 线 冲 突, 提 升 DSP 工 作 性 能。 与 双 端 口 SRAM 相比, 双存取 SRAM 可大大节省面积。
2 驱动电路设计
根据 SRAM 工作原理, 为了实现单周期双存取 功能 , 驱动电路要对包括灵敏放大器打开信号和预 充管打开信号在内的控制 SRAM 访问的关键 信号
图 2 双存取 SRAM 结构
进行调整。驱动电路整体结构如图 5所示。
1 . 2 三种 SRAM 比较
图 3 单端口 SRAM 存储单元
表 2 双存取 SRAM 的访问 访问类型 通过 PAB /PB 对程序存储器执行读取操作 通过 DAB /D B 进行的第一个操作数读取 通过 DM A 读 通过 CAB /CB 进行的第二个操作数读取 通过 EAB /EB 对数据存储器执行读取操作 通过 PA B /EB 对程序存储器执行写入操作 通过 DM A 写 执行的时间 前半个周期 前半个周期 前半个周期 后半个周期 后半个周期 后半个周期 后半个周期
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
60㊀
文献引用格式:王瑞雪ꎬ陶家元ꎬ覃海洋.多接口协议寄存器存取电路的设计与实现[J].电声技术ꎬ2019ꎬ43(2):60-61.
WANGRXꎬTAOJYꎬQINHY.Designandimplementationofmultiinterfaceprotocolregisteraccesscircuit[J].Au ̄dioengineeringꎬ2019ꎬ43(2):60-61.
中图分类号:TM131.5㊀㊀㊀㊀文献标志码:A㊀㊀㊀㊀DOI:10.16311/j.audioe.2019.02.018
基金项目:2018年重庆市本科高校 三特行动计划 特色专业建设项目(渝教高 2018 12号)
多接口协议寄存器存取电路的设计与实现
王瑞雪ꎬ陶家元ꎬ覃海洋
(重庆大学㊀城市科技学院ꎬ重庆㊀402167)
摘要:本文提出并实现了一种能够同时控制APB和IIC等多个接口协议对寄存器进行高效读写的数字逻辑电路ꎮ在两种协议同时请求配置寄存器时ꎬ首先对两种协议进行跨时钟域同步ꎬ并采用优先级反转算法对两种协议进行仲裁ꎬ其次完成对数据的拼接拆分转换ꎬ最后使用寄存器访问协议实现对其数据的读写ꎮ关键词:APBꎻIICꎻ寄存器访问ꎻ接口协议ꎻSOC
Designandimplementationofmultiinterfaceprotocolregisteraccesscircuit
WANGRuixueꎬTAOJiayuanꎬQINHaiyang
(CityCollegeofScienceandTechnologyꎬChongqingUniversityꎬChongqing402167ꎬChina)
Abstract:Thispaperproposesandimplementsadigitallogiccircuitthatcanrealizetheregister'sefficientreadingandwrit ̄
ingthroughtheAPBꎬIICandotherinterfaceprotocolsatthesametime.Whentwoprotocolsrequesttheregisterconfigura ̄tionatthesametimeꎬthetwoprotocolsarearbitratedbythepriorityinversionalgorithmꎬandthencompletethesplicingandsplittingofthedata.Finallyꎬreadandwritethedataforregisteraccess.
Keywords:APBꎻIICꎻregisteraccessꎻinterfaceprotocolꎻSOC
1㊀引言
随着半导体和片上系统(SOC)技术的迅猛发展ꎬ芯片所集成的IP核越来越复杂ꎬ需要支持的接口协议也越来越多ꎬ同步精准地控制多个协议完成对芯片内部寄存器进行读写亦变得愈加重要[1]ꎮ目前市场上一些接口控制器大多数采用了选择使能的方法来控制多种协议完成对寄存器的访问ꎬ即每次需要人为选择相应的协议并将其使能ꎬ再通过此协议完成访问ꎬ访问协议的切换均需要用户参与ꎬ极大的降低了访问效率ꎮ本文基于这一实际问题ꎬ提出并实现了一种能够同时使用APB和IIC等协议对寄存器进行高效读写的数字逻辑电路ꎮ
2㊀系统整体框图
图1是系统的整体框图ꎮ本次设计中ꎬI2C和APB主机都需要实现对寄存器组的配置ꎮI2C总线是一种简单㊁双向二线制同步串行总线ꎬ它只需要两根线来完成连接于总线上器件之间的信息传送[2]ꎮ而APB主要用于低带宽的周边外设之间的
连接ꎬ其特性包括:两个时钟周期传输ꎻ无需等待周期和回应信号ꎻ控制逻辑简单ꎬ只有四个控制信号[3]
ꎮ
图1㊀系统整体框图
当两个协议同时发起读写操作时ꎬ需要使用伪随机仲裁器进行仲裁ꎬ以决定寄存器访问的优先级ꎮ此时ꎬ优先级高的配置请求会得到响应ꎬ而将优先级低的请求暂时挂起ꎬ待当前访问完成后ꎬ再
61㊀
响应优先级低的请求ꎮ被选定的I2C或APB协议ꎬ在通过数据的合并和拆分后ꎬ被转换成自定义的配置协议ꎬ来完成寄存器组的配置[4]
ꎮ
图2㊀跨时钟域处理
3㊀跨时钟域同步
图2为跨时钟域处理的结构图ꎮ因为在本次设计中ꎬ分别存在I2C和APB两个时钟域ꎬ所以两次请求也来自于不同的时钟域ꎬ为了消除可能出现的竞争冒险现象ꎬ需要对其进行同步ꎮ同步采用两级寄存器打拍进行ꎬ具体的做法是用另一边的时钟去捕捉对面时钟域的请求信号ꎬ通过使用两级寄存器来减小亚稳态发生的几率ꎬ以实现将两个请求信号同步到一个时钟域进行处理
ꎮ
图3㊀优先级反转仲裁算法
4㊀优先级反转仲裁算法
图3为优先级反转仲裁算法ꎮ此次设计中ꎬ为了解决I2C和APB主机同时发起配置请求时的冲突情况ꎬ设计了一种伪随机的仲裁器ꎬ以使两种协议在仲裁时获得相对公正的机会[5]ꎮP为仲裁器的一个状态位ꎬ为 0 时代表APB具有较高的优先级ꎬ为 1 时代表I2C具有较高的优先级ꎮ当P=0时ꎬ若此时APB发起配置请求ꎬ则优先将寄存器访问权交给APBꎬ待配置完成后ꎬ需要将P的值反转为1ꎻ若APB没有发起配置请求ꎬ而I2C发起了配置请求ꎬ则将控制器交给I2Cꎬ而P的值维持不变ꎮ当P=1时ꎬ若此时I2C发起配置请求ꎬ则优先将寄存
器访问权交给I2Cꎬ待配置完成后ꎬ需要将P的值反转为0ꎻ若I2C没有发起配置请求ꎬ而APB发起了配置请求ꎬ则将控制器交给APBꎬ而P的值维持不变
ꎮ
图4㊀仿真时序图
5㊀时序仿真
对此次设计进行时序仿真ꎬ此处截取了I2C和
APB转换后的协议及自定义寄存器访问协议的部分时序仿真图ꎮ如图4图所示ꎬclk和rst_n分别为
系统时钟和系统复位信号ꎻP_reg为优先级权重寄存器ꎻgrant_TWP表示当前仲裁结果ꎻtwp_req_keep和cfg_req分别为I2C和APB访问的请求信号ꎬ可见其在优先级反转算法的控制下ꎬ高效的实现了两种协议的仲裁响应ꎮ
6㊀结语
本文提出了一种能够同时控制APB和IIC接口协议对寄存器进行高效读写的数字逻辑电路ꎬ其能够在仲裁算法的控制下ꎬ实现多个协议对寄存器的精准访问ꎮ依照文中设计思路ꎬ可在此基础上增加更多的接口协议ꎬ以实现多接口协议对寄存器的高效访问ꎮ同时ꎬ可以根据不同的应用场景ꎬ修改仲裁协议ꎬ实现不同协议间优先级的定向选择ꎮ
参考文献:
[1]陶伟.高速实时控制Soc的设计与研究[J].微计算机信息ꎬ2006ꎬ22(11):73-74+199.
[2]
薛沛祥ꎬ宋志刚ꎬ李墩泰.基于串行通信的任意位数据传输的verilog实现方式[J].工业技术创新ꎬ2014ꎬ1(1):50-54.[3]AMBASpecification(Rev2.0)[R].ARMCo.ꎬ
Ltd.ꎬ1999.
[4]王建雄ꎬ肖明ꎬ余龙.基于AMBA总线的IIC协议IP核
设计与验证[J].微处理机ꎬ2014ꎬ35(1):4-8.
[5]
韩建强ꎬ李海华.OPB总线仲裁器的RTL设计与FP ̄
GA实现[J].微计算机信息ꎬ2009(29):147-148.
责任编辑:徐弘涛
收稿日期:2019-01-28。