版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 4 章章 Nios II外围设备外围设备主讲人:李兰英哈尔滨理工大学计算机学院 本章主要内容:本章主要内容:(1) SDRAM(1) SDRAM控制器概述控制器概述 (8) SPI(8) SPI核综述核综述 (2) CFI Flash(2) CFI Flash控制器概述控制器概述 (9) DMA(9) DMA控制器核综述控制器核综述 (3) EPCS(3) EPCS控制器综述控制器综述 (10)(10)系统系统IDID核综述核综述 (4) PIO(4) PIO控制器综述控制器综述 (11) PLL(11) PLL核综述核综述 (5)(5)定时器控制器综述定时器控制器综述 (12) Mut
2、ex(12) Mutex核核 (6) UART(6) UART核综述核综述 (7) JTAG UA RT (7) JTAG UA RT 核综述核综述 第四章 目录n1 SDRAM控制器控制器 1.1 SDRAM控制器概述控制器概述 1.2 SOPC Builder中的中的 SDRAM控制器内核配置选项控制器内核配置选项 1.3 配置实例配置实例 1.4 SDRAM软件编程模型软件编程模型 1.5 时钟、时钟、PLL和时序和时序 1.6 Thumb指令集概述指令集概述n2.CFI2.CFI(通用(通用FlashFlash接口)控接口)控制器制器 2.1 CFI Flash2.1 CFI Flas
3、h控制器概述控制器概述 2.2 SOPC Builder2.2 SOPC Builder中中CFICFI控控制器配置选项制器配置选项 2.3 CFI2.3 CFI软件编程模型软件编程模型 n3 EPCS3 EPCS设备控制器设备控制器n3.1 EPCS3.1 EPCS控制器综述控制器综述 n3.2 SOPC Builder3.2 SOPC Builder中中EPCSEPCS控制器的配置选项控制器的配置选项n3.3 EPCS3.3 EPCS软件编程模型软件编程模型 第四章 目录n4 PIO4 PIO控制器控制器n4.1 PIO4.1 PIO控制器综述控制器综述n4.2 SOPC Builder4
4、.2 SOPC Builder中中PIOPIO配置选项配置选项 n4.34.3PIOPIO软件编程模型软件编程模型 n4.44.4PIOPIO寄存器描述与中寄存器描述与中断断n5 5定时器控制器定时器控制器 n5.1 5.1 定时器控制器综述定时器控制器综述 n5.2 SOPC Builder5.2 SOPC Builder中定时中定时器核配置选项器核配置选项 n5.3 5.3 定时器软件编程模型定时器软件编程模型 n5.4 5.4 定时器寄存器描述与中定时器寄存器描述与中断断 n6 UART6 UART核核 n6.1 UART6.1 UART核综述核综述n6.2 SOPC Builder6.
5、2 SOPC Builder中中UARTUART核配置选项核配置选项 n6.3 UART6.3 UART软件编程模型软件编程模型 n6.4 UART6.4 UART寄存器描述与中断寄存器描述与中断 第四章 目录n7 JTAG UART7 JTAG UART核核 n7.1 JTAG UA RT 7.1 JTAG UA RT 核综述核综述 n7.2 SOPC Builder7.2 SOPC Builder中中JTAG JTAG UARTUART核配置选项核配置选项 n7.3 JTAG UART7.3 JTAG UART的软件编的软件编程模型程模型 n7.4 JTAG UART7.4 JTAG UA
6、RT寄存器描寄存器描述与中断述与中断 n8 SPI8 SPI核核 n8.1 SPI8.1 SPI核综述核综述n8.2 SPI8.2 SPI配置实例配置实例 n8.3 SOPC Builder8.3 SOPC Builder中中SPISPI核核配置选项配置选项 n8.4 SPI8.4 SPI软件编程模型软件编程模型n8.5 SPI8.5 SPI寄存器描述寄存器描述 n9 DMA9 DMA控制器控制器 n9.1 DMA9.1 DMA控制器核综述控制器核综述 n9.2 SOPC Builder9.2 SOPC Builder中中DMADMA控制器配置选项控制器配置选项 n9.3 DMA9.3 DMA
7、软件编程模型软件编程模型 n9.4 DMA9.4 DMA寄存器描述与中断寄存器描述与中断 第四章 目录n1010系统系统IDID核核 n10.1 10.1 系统系统IDID核综述核综述 n10.2 SOPC10.2 SOPC中系统中系统IDID配配置选项置选项 n10.3 10.3 系统系统IDID软件编程软件编程模型模型 n11 PLL11 PLL核核 n11.1 PLL11.1 PLL核综述核综述 n11.2 SOPC Builder11.2 SOPC Builder中中PLLPLL控控制器配置选项制器配置选项 n11.3 PLL11.3 PLL寄存器描述寄存器描述 n12 Mutex12
8、 Mutex核核 n12.1 12.1 概述概述 n12.2 12.2 功能描述功能描述 n12.3 12.3 在在SOPC BuliderSOPC Bulider中使用中使用mutexmutex核核 n12.4 Mutex12.4 Mutex软件编程模型软件编程模型 n12.5 Mutex12.5 Mutex核的核的API API 1 SDRAM控制器控制器 1.1 SDRAM1.1 SDRAM控制器概述控制器概述 1.2 SOPC Builder1.2 SOPC Builder中的中的 SDRAM SDRAM 控制器内核配置选项控制器内核配置选项 1.3 1.3 配置实例配置实例 1.4
9、SDRAM1.4 SDRAM软件编程模型软件编程模型 1.5 1.5 时钟、时钟、PLLPLL和时序和时序 1.6 Thumb1.6 Thumb指令集概述指令集概述 第四章第四章 目录目录 1 SDRAM 1 SDRAM控制器概述控制器概述n具有具有Avalon接口的接口的SDRAM控制器控制器IP核为核为FPGA片外片外SDRAM提供一个提供一个Avalon接口,使设计者在接口,使设计者在FPGA中创建一个方便与中创建一个方便与SDRAM芯片连接的定芯片连接的定制系统。它支持制系统。它支持PC100规范中所描述的标准规范中所描述的标准SDRAM。nSDRAM一般用在需要大容量易失性存储器且对
10、成本敏感的应用中,一般用在需要大容量易失性存储器且对成本敏感的应用中,即即SDRAM相对便宜,但需要进行刷新、行打开(相对便宜,但需要进行刷新、行打开(OpenRow)管理、)管理、延时及其他操作。延时及其他操作。SDRAM控制器与一个或多个控制器与一个或多个SDRAM芯片相连,并由芯片相连,并由它处理所有的它处理所有的SDRAM协议请求。在协议请求。在FPGA内部,内部,SDRAM控制器核提供控制器核提供一个线性存储器(一个线性存储器(flat地址空间)的地址空间)的Avalon从端口,与从端口,与Avalon主外设相主外设相连。连。n该核可通过不同的数据宽度(该核可通过不同的数据宽度(8、
11、16、32或或64位)来访问位)来访问SDRAM,可访问不同容量且有多个片选的存储器。可访问不同容量且有多个片选的存储器。Avalon接口有延迟功能,允许接口有延迟功能,允许进行流水读操作。该核可选择与其他片外进行流水读操作。该核可选择与其他片外Avalon三态设备共享地址和数三态设备共享地址和数据总线。这一点对引脚有限的系统很重要,此时,除了据总线。这一点对引脚有限的系统很重要,此时,除了SDRAM之外,系之外,系统还必须与其他多个存储器芯片相连。统还必须与其他多个存储器芯片相连。n具有具有Avalon接口的接口的SDRAM控制器核包含在控制器核包含在SOPC Builder中,很容中,很容
12、易集成到任何易集成到任何SOPC Builder所创建的系统中。所创建的系统中。n图4-1是SDRAM控制器核的方框图。该控制器与一个外部SDRAM芯片相连。1Avalon接口接口Avalon从端口是SDRAM控制器核唯一用户可见部分。该端口提供了一个平面的(flat)、连续的且与SDRAM容量相应的存储器空间。对从端口的访问完全是透明的。Avalon接口就像一个简单的存储器接口,无任何存储器映射配置寄存器。Avalon从端口允许外设控制插入读和写传送的等待周期,从端口等待直到外设提供有效数据。从端口也支持具有可变延时的读传送,允许高带宽的流水读传送。当主外设读取来自从外设的连续地址时,第一个
13、延迟周期后,返回第一个数据,随后的读操作在每个时钟周期都可读取一个新的数据,但是不能保证每个时钟周期都能返回一个数据,因为SDRAM控制器必须周期地暂停读操作,而去刷新SDRAM。2片外片外SDRAM接口接口SDRAM控制器核与片外SDRAM芯片的接口提供PC100定义的标准信号。这些信号必须通过FPGA的 I/O引脚连接到SDRAM芯片上。(1)信号的时序与电气特性信号的时序取决于核的配置,由硬件设计者完成核的配置以匹配系统中所选择的SDRAM芯片。FPGA引脚的电气特性取决于FPGA型号和在Quartus II软件中的设定值。某些FPGA芯片系列支持较宽范围的电气标准,能够与多种SDRAM
14、芯片接口。(2)同步时钟与数据信号SDRAM芯片的驱动时钟必须和Avalon接口的时钟速率相同,如图4-1所示。一个片内锁相环(PLL)常被用于SDRAM控制器核与SDRAM芯片之间的时钟相位调整。时钟速度较低的系统往往不需要PLL,在较高时钟频率下,PLL用于调整时钟以满足SDRAM的需要。PLL模块不是SDRAM控制器核的集成部件。若需要PLL,设计者必须添加altpll宏模块(在SOPC Builder系统模块之外)或PLL核(Quartus II 5.1以上版本支持),FPGA和SDRAM芯片不同的连接需要不同的PLL设置。若使用PLL,必须调整PLL来引入一个时钟相移,以使得SDRA
15、M时钟沿在同步信号稳定之后才出现。SDRAM控制器不支持时钟禁止模式,它总是设置cke信号有效。(3)与其他Avalon三态设备共享引脚如果Avalon三态桥出现在SOPC Builder系统中,SDRAM控制器核能与三态桥共享引脚。在这种情况下,该核的addr,dq(data)和dqm(字节使能)引脚与连接到Avalon三态桥的其他设备共享。这个特性节省I/O脚,这在包含多个外部存储器芯片的系统中很有用(例如,Flash,SRAM,SDRAM等)。性能考虑性能考虑在最优条件下,SDRAM控制器核的带宽为每个时钟周期接近一个字。然而,由于刷新SDRAM的开销,每一个时钟周期传送一个字是不可能的
16、,其他影响内核性能的因素有:(1)行打开SDRAM芯片由多个存储器体(bank)组成,每个bank可独立地进行行打开地址管理。SDRAM控制器对每个bank进行行打开管理,在同一行和同一bank中将以接近每个时钟1个字的速率进行连续读和写操作。频繁地访问不同banks时,行的关闭和打开将需要额外的管理周期。(2)数据和地址引脚的共享当控制器与其他三态设备共享引脚时,通常平均访问时间要增加而带宽减少,当允许其他设备访问三态桥时,SDRAM需要行打开和关闭开销周期。SDRAM控制器被允许重新访问三态桥之前,必须等待几个时钟周期。为了使带宽最大化,只要在同一行和同一bank内进行连续地读或写操作,S
17、DRAM控制器自动维护三态桥的控制。注意:这种方式可能降低其他共享Avalon三态桥的设备的平均访问时间。只要在连续的操作中有一个中断,或者需要刷新操作,SDRAM控制器就会关闭一个打开的行。这将使得控制器不能永久阻塞对其他共享三态桥的设备的访问;控制器保证不破坏SDRAM的行打开时间限制。(3)硬件设计与目标FPGAFPGA影响硬件设计中可达到的最大时钟周期频率。某些系列的芯片可获得较高的最大频率,相同系列中速度高的性能也高。在Altera高性能FPGA中(例如,Stratix系列),SDRAM控制器可达到100MHz,但并不是在所有的FPGA都可达到100MHz的性能。最高频率也取决于SO
18、PC Builder系统设计,SDRAM控制器时钟也可能驱动系统模块中的其他逻辑,这可能影响可达到的最大频率。对达到100MHz的SDRAM控制器,由同一时钟驱动的所有组件必须设计为100MHz, Quantus II软件中的时序分析必须验证硬件设计是否可以在100MHz下正常操作。SDRAM控制器核支持所有的Altera FPGA系列,不同的FPGA系列支持不同的I/O标准,这可能影响该核与某些SDRAM芯片接口的能力。 1 SDRAM控制器控制器 1.1 SDRAM1.1 SDRAM控制器概述控制器概述 1.2 SOPC Builder1.2 SOPC Builder中的中的 SDRAM
19、SDRAM 控制器内核配置选项控制器内核配置选项 1.3 1.3 配置实例配置实例 1.4 SDRAM1.4 SDRAM软件编程模型软件编程模型 1.5 1.5 时钟、时钟、PLLPLL和时序和时序 1.6 Thumb1.6 Thumb指令集概述指令集概述 第四章第四章 目录目录 设计者在SOPC Builder中使用配置向导来指定SDRAM控制器的硬件特性和仿真特性。配置向导有2个标签:Memory Profile和Timing。Presets表提供了多个预定义的SDRAM配置以方便对SDRAM的配置。若目标板上的SDRAM子系统与预定义配置中的某个相匹配,则选择相应的预置值很容易完成SDR
20、AM控制器的配置。当选择一个预置配置时,Memory Profile和Timing标签中的值自动改变。在标签中改变配置设定值,将使预置值变为定制的值。1Memory Profile标签标签该标签允许设计者指明SDRAM子系统的结构。例如,地址和数据总线的宽度、片选信号的个数和bank的数目等。表41列出了该标签下的所有设置选项。设定允许值缺省值描述数据宽度8、16、32、6432SDRAM数据总线宽度。该值决定了dq总线(数据)和dqm总线(字节使能)的宽度。结构设置片选1、2、4、81SDRAM子系统独立片选的个数。使用多个片选,可将多个SDRAM芯片连接到一个存储器子系统。块2、44SDR
21、AM banks的数量。该值决定了与SDRAM相连ba (bank地址)总线的宽度,该值的设定由SDRAM数据手册决定。地址宽度设置行11、12、13、1412 行地址位数,该值决定地址总线的宽度。行和列值取决于所选择SDRAM的尺寸。例如,具有4096(212)行512列的SDRAM行地址位数为12。列=8且小于行值8 列地址的位数。例如,4096行512(29)列的SDRAM的列位数为9。控制器共享dq/dqm/addr I/O引脚Yes、NoNo 当设为No,所有的引脚为SDRAM芯片专用。当设为Yes,addr、dq和dqm引脚可与系统中的三态桥共享。这种情况下,SOPC Builde
22、r中会出现一个新的配置标签,允许用户将SDRAM控制器引脚与一个指定的三态桥相连。在系统测试台中包括一个功能存储器模型Yes、NoYes若当该选项被选中时,SOPC Builder为SDRAM芯片创建一个功能仿真模型。缺省的存储器模型能加快使用SDRAM控制器的系统的创建和验证过程。对该标签中的设定值,配置向导以兆字节、兆位、可寻址字数等单位显示存储器的容量,来验证设定值是否正确。2Timing标签标签Timing标签允许设计者设定SDRAM芯片的定时参数,正确的参数应参照厂家数据手册,表42列出了Timing标签的所有设置选项。表42 Timing标签设定设置允许值缺省值描述CAS延迟1、2
23、、33从读命令到数据输出延迟(以时钟周期数为单位)。初始刷新周期182该值指明复位后,作为初始化序列的一部分,SDRAM控制器的刷新周期数。刷新时间间隔15.625us该值指明SDRAM控制器刷新SDRAM的时间间隔,一个典型的SDRAM每64ms需要4096次刷新,即刷新时间为64ms/4096=15.625us上电后、初始化之前延迟100us从时钟和电源稳定到SDRAM初始化之间的延迟。刷新命令的持续时间(t_rfc)70ns自动刷新周期。预充电命令的持续时间(t_rp)20ns预充电命令周期。ACTIVE to READ或 ACTIVE to WRITE延迟(t_rcd)20nsACTI
24、VE to READ或WRITE延迟。访问时间(t_ac) 17ns从时钟沿开始的访问时间,该值可能取决于CAS延迟。写恢复时间(t_wr,无任何自动预充电)14ns发出显式的(explicit)预充电命令时的写恢复时间。SDRAM控制器总是发出显式的预充电命令。3硬件仿真硬件仿真下面讨论SDRAM的仿真系统,其硬件仿真需要3个主要的部件: SDRAM控制器的仿真模型。 SDRAM芯片的仿真模型,也称之为存储器模型。 连线存储器模型到SDRAM控制器引脚的仿真测试台。上述部件部分或全部在系统创建时产生。(1)SDRAM控制器仿真模型SOPC Builder创建的SDRAM控制器设计文件同时也适
25、合综合和仿真。某些仿真特性在HDL中实现时通过使用“translate on/off”综合命令,以使HDL代码的某些段对综合工具是不可见的。仿真特性的实现主要是方便ModelSim仿真器对Nios II处理器系统进行仿真。没有ModelSim专用的SDRAM控制器仿真模型,但是对其他仿真器,可能需要某些小的改动。(2)SDRAM存储器模型仿真SDRAM存储器模型有2个选择。 使用通用存储器模型若Include a functional memory model the system testbench选项在系统创建时被选中,则SOPC Builder为SDRAM存储器创建一个HDL仿真模型。在
26、自动创建的系统测试台中,SOPC Builder自动地连线存储器模型到SDRAM控制器引脚。使用自动存储器模型和测试台加速包含SDRAM控制器系统的创建和验证过程。但是存储器模型是一个通用的功能模型,它并不能反映实际SDRAM芯片的时序和功能。通用模型总是被创建成单个、单片的存储器块。例如,对连接两片SDRAM芯片的系统,通用存储器模型被创建成一个单个实体。使用SDRAM制造商的存储器模型若上述选项未选中,设计者应从SDRAM生产厂家获取一个存储器模型并在系统测试台中手动连接该模型到SDRAM控制器的引脚。 4.1.3配置实例配置实例下面的实例表明如何把SDRAM控制器输出引脚连到SDRAM芯
27、片。其中ctl是多个信号的集合体,例如cas_n、ras_n、cke和we_n。一个单片128M bit SDRAM芯片如图42所示,它具有32位数据总线,其地址、数据和控制信号直接与芯片相连。存储器空间是128M位(16M字节)。图42具有32位数据总线的单片128bit SDRAM芯片 图43中包含2个64M位SDRAM芯片,每片的数据总线为16位,2个芯片的地址和控制总线并连。注意:2个芯片共享cs_n片选信号。每个芯片提供32位数据总线的一半。结果获得一个容量为128M位(16M字节)的32位数据存储器。图43 2个64M位SDRAM芯片(每个具有16位数据总线)图44中包含2个128
28、M位SDRAM芯片,每个有32位数据线,控制、地址和数据线并联。片选cs_n1:0决定哪一片被选中,结果获得一个逻辑上256Mbit 32位的存储器。图44 2个128M位SDRAM芯片(每个具有32位数据总线) 1 SDRAM控制器控制器 1.1 SDRAM1.1 SDRAM控制器概述控制器概述 1.2 SOPC Builder1.2 SOPC Builder中的中的 SDRAM SDRAM 控制器内核配置选项控制器内核配置选项 1.3 1.3 配置实例配置实例 1.4 SDRAM1.4 SDRAM软件编程模型软件编程模型 1.5 1.5 时钟、时钟、PLLPLL和时序和时序 1.6 Thu
29、mb1.6 Thumb指令集概述指令集概述 第四章第四章 目录目录SDRAM软件编程模型软件编程模型当通过Avalon接口访问SDRAM控制器时,SDRAM控制器就是简单的存储器。没有任何可配置的设定,也没有任何存储器映射的寄存器;处理器访问SDRAM控制器不需要任何软件驱动程序。 1 SDRAM控制器控制器 1.1 SDRAM1.1 SDRAM控制器概述控制器概述 1.2 SOPC Builder1.2 SOPC Builder中的中的 SDRAM SDRAM 控制器内核配置选项控制器内核配置选项 1.3 1.3 配置实例配置实例 1.4 SDRAM1.4 SDRAM软件编程模型软件编程模型
30、 1.5 1.5 时钟、时钟、PLLPLL和时序和时序 1.6 Thumb1.6 Thumb指令集概述指令集概述 第四章第四章 目录目录时钟、时钟、PLL和时序和时序 下面讨论来自控制器核的同步信号与驱动SDRAM芯片的时钟问题。在SDRAM操作期间,SDRAM引脚上的地址、数据和控制信号在某个时间窗口内有效,在有效的时间窗口内SDRAM时钟必须切换(toggle)来捕获正确的值,当时钟频率较慢时,时钟自然落在有效的窗口内;当频率较高时,必须补偿SDRAM时钟使之与有效窗口对齐。通过计算或利用示波器分析SDRAM引脚,可以观察有效的窗口何时出现,然后,使用PLL调整SDRAM时钟的相位,以使得
31、边沿发生在有效窗口的中间。为了满足目标板的要求,可能需要反复试验来调节PLL的相移。1影响影响SDRAM时序的因素时序的因素窗口的位置和持续时间取决于下面几个因素:PFGA和SDRAM I/O引脚的时序参数 I/O时序参数随着PFGA器件系列和速度等级而变。在FPGA上的引脚位置 与行布线(routing)连接的I/O引脚和与列布线连接的I/O引脚有不同的时序。在Quartus II编译期间使用的逻辑选项 逻辑选项,例如,快速输入寄存器和快速输出寄存器,影响设计的布局布线。逻辑电路的位置和FPGA内部的寄存器影响信号到I/O的传播延时。SDRAM的CAS延迟。 FPGA和SDRAM芯片的不同的
32、连接,其有效的窗口时序不同,即窗口依赖于Quartus II的布局布线结果和引脚分配。2PLL的故障现象的故障现象检测PLL调整的是否正确是困难的,数据传送不可能总是失败。例如,到SDRAM的单个传送可能成功,而突发(burst)传送可能失败。对基于处理器的系统,如果软件能对SDRAM进行读写操作,但当代码位于SDRAM中时却不能运行,则可能PLL调整的不正确。3估计有效的信号窗口估计有效的信号窗口下面讨论使用由SDRAM数据手册和Quartus II编译报告提供的时序参数,如何估计信号窗口的有效位置和持续时间。找到窗口后,可以调整PLL以使SDRAM时钟边沿精确地发生在窗口的中间位置。计算窗
33、口分两步进行:首先找到SDRAM时钟可能比控制时钟滞后多少,然后看它能超前多少。找到滞后和超前的最大值后,计算它们之间的中间点。这些计算仅提供一种估计。下面的延迟也能影响正常的PLL调整,但在下面的计算中没有考虑。由于在PCB板上的延迟引起的信号相位偏移。计算中假设零偏移。从PLL时钟输出节点到目标处的延迟。计算假设从PLL SDRAM时钟输出节点到引脚的延迟与从PLL的控制器时钟输出节点到SDRAM控制器中时钟输入的延迟相同。如果这些时钟延迟相差较大,在窗口计算中必须考虑这种相移。图4-5显示出如何计算SDRAM时钟滞后于控制器时钟的最大值。图4-6显示如何计算超前的最大值。相对于控制器时钟
34、,滞后是一个负的时移,超前是一个正的时移。SDRAM时钟滞后于控制器时钟的最大值取读周期和写周期的最大滞后值的较小值,即Maximum Lag = minimum(Read Lag, WriteLag)。类似地,超前值取读周期和写周期的最大超前值的较小值,即Maximum Lead =minimum(Read Lead, Write Lead)。图4-5 计算SDRAM的最大时钟滞后图4-6 计算SDRAM的最大时钟超前4计算实例计算实例 下面是计算信号窗口的一个例子,SDRAM芯片的型号是Micron MT48LC4M32B2-7,FPGA设计是针对Altera Stratix II EP2
35、S60F672C5的设计。这个例子使用3个周期的CAS延迟、50MHz的时钟频率;在FPGA上的所有SDRAM信号被寄存在I/O单元;在Quartus II软件中选中Fast Input Register 和 Fast Output Register选项。表4-3是从MT48LC4M32B2设备手册中节选的相关时序参数。参数符号值(ns)在-7速度级Min.Max.CLK访问时间(正沿)CL = 3tAC(3)5.5CL = 2tAC(2)8CL = 1tAC(1)17地址保持时间tAH1地址建立时间tAS2时钟高电平宽度tCH2.75表4-3 MT48LC4M32B2 SDRAM器件的时序参
36、数时钟低电平宽度tCL2.75时钟周期CL=3tCK(3)7CL=2tCK(2)10CL=1tCK(1)20CKE保持时间tCKH1CKE建立时间tCKS2CS#、 RAS#、 CAS#、 WE#、 DQM保持时间tCMH1CS#、 RAS#、CAS#、 WE#和DQM建立时间tCMS2数据输入保持时间tDH1数据输入建立时间tDS2数据输出高阻时间CL=3tHZ(3)5.5CL=2tHZ(2)8CL=1tHZ(1)17数据输出低阻时间tLZ1数据输出保持时间tOH2.5表4-4显示了PFGA相关的时序信息,来源于Quartus II编译报告中的时序分析器。表4-4中的值是所有与SDRAM有关
37、的FPGA引脚的最大和最小值。FPGA上的SDRAM引脚之间的时序上的变化不大(小于100ps),原因是这些信号的寄存器被放在I/O单元中。表4-4 FPGA的 I/O时序参数参数符号值(ns)时钟周期tCLK20时钟到输出的最小时间tCO_MIN2.399时钟到输出的最大时间tCO_MAX2.477时钟后最大保持时间tH_MAX-5.607时钟前最大建立时间tSU_MAX5.936FPGA设计的I/O时序信息必须通过设计的编译才能得到。虽然Altrera系列器件的数据手册包含一般的I/O时序信息,Quartus II编译报告为特定的设计提供最精确的时序信息。 编译报告里的时序值可能随着布局、
38、引脚分配和其他Quartus II逻辑设置而改变,当在Quartus II中重新编译设计时,需验证I/O时序没有太大的变化。根据表4-3和4-4、图4-5和4-6进行如下计算:SDRAM的时钟滞后控制器的时钟值取读滞后读滞后或写滞后写滞后中的较小值。Read Lag = tOH(SDRAM) - tH_MAX(FPGA)= 2.5 ns - (- 5.607 ns) = 8.107 ns或 Write Lag= tCLK - tCO_MAX(FPGA) - tDS(SDRAM)= 20 ns - 2.477 ns - 2 ns = 15.523 nsSDRAM的时钟超前控制器的时钟值取读超前读
39、超前或写超前写超前中的较小值。Read Lead = tCO_MIN(FPGA) - tDH(SDRAM)= 2.399 ns - 1.0 ns = 1.399 ns或Write Lead = tCLK - tHZ(3)(SDRAM) - tSU_MAX(FPGA)= 20 ns - 5.5 ns - 5.936 ns = 8.564 ns所以上例中,相对于控制器的时钟,SDRAM的时钟相移从-8.107到1.399。在这个窗口的中间选择一个相移的值为(-8.107 +1.399)/2 = -3.35 ns。 2.CFI2.CFI(通用(通用FlashFlash接口)控制器接口)控制器 2.1
40、 CFI Flash2.1 CFI Flash控制器概述控制器概述 2.2 SOPC Builder2.2 SOPC Builder中中CFICFI控制器配置选项控制器配置选项 2.3 CFI2.3 CFI软件编程模型软件编程模型 第四章第四章 目录目录CFI Flash控制器概述控制器概述具有Avalon接口的通用Flash接口(Common Flash Interface,CFI)控制器核很容易与SOPC Builder系统外的符合CFI参数要求的外部Flash相连,CFI控制器是SOPC Builder内部集成的,可以很轻松地集成到SOPC Builder创建的系统中。对Nios II处
41、理器,Altera为CFI控制器提供HAL驱动子程序。驱动程序为CFI兼容的Flash提供通用的访问子程序。HAL驱动子程序利用Flash的HAL通用设备模型,允许用户使用熟悉的HAL API和/或ANSI C文件I/O标准库函数访问Flash。如何利用HAL API读、写Flash详见第六章。Nios II开发工具提供了一个基于Nios II处理器和CFI控制器的Flash Programmer实用程序。该实用程序可对任何连接到FPGA的CFI兼容的Flash进行编程。图47是CFI控制器在一个典型系统中的方框图。Flash芯片与Avalon接口通过一个Avalon三态桥相连接。三态桥创建一
42、个片外存储器总线,允许Flash芯片与其他存储器共享地址和数据引脚。对连接到存储器总线的每个芯片,它提供单独的片选、读和写引脚。CFI控制器是一个Avalon三态从端口,需要配置的参数有:与Flash芯片相匹配的等待状态、建立和保持时间等。该从端口能进行Avalon三态从端口读传送和写传送。Avalon主端口能直接从CFI控制器的Avalon口进行读传送。图47 集成了CFI控制器的SOPC Builder系统 2.CFI2.CFI(通用(通用FlashFlash接口)控制器接口)控制器 2.1 CFI Flash2.1 CFI Flash控制器概述控制器概述 2.2 SOPC Builder
43、2.2 SOPC Builder中中CFICFI控制器配置选项控制器配置选项 2.3 CFI2.3 CFI软件编程模型软件编程模型 第四章第四章 目录目录SOPC Builder中中CFI控制器配置选项控制器配置选项硬件设计者使用CFI控制器的SOPC Builder配置向导来指明该核的特性。配置向导有2个标签:属性(Attributes)标签和时序(Timing)标签。1属性标签属性标签在该标签下的选项控制CFI控制器的基本硬件配置。(1)预定义设置(Presets)Presets设置是一使用CFI控制器的Flash芯片的下拉菜单,在菜单中选择一个芯片之后,向导将更改2个标签中与指定Flas
44、h芯片相匹配的所有设定值(板子信息设置除外)。若目标板上的Flash芯片没有出现在Presets菜单中,则必须手动配置所有选项。(2)尺寸设置尺寸设置指明Flash的尺寸,有2个设置: 地址宽度 Flash芯片的地址总线宽度。 数据宽度 Flash芯片的数据总线宽度。尺寸设置使SOPC Builder为该设备分配正确的地址范围。SOPC Builder将自动产生动态总线尺寸逻辑,以便将Flash正确地连接到不同数据宽度的Avalon主端口。(3)板子信息板子信息的设置内容为Flash Programmer实用程序所使用,该设置内容将CFI控制器映射到一目标系统板上的已知芯片上。参考标志符(Re
45、ference Designator)设定是一个下拉菜单,把当前Flash元件映射到一个目标板上参考标志符。当目标板上有多个Flash时下拉菜单才有效。如果板上的所有Flash芯片被CFI控制器的其他实例所代表,SOPC Builder显示一个错误。2时序(时序(Timing)标签)标签该选项指明Flash读和写传送的时序要求,设定包括:Setup 片选有效后,发起读或写信号之前所需时间。Wait 对每次传送,使能读写信号所需的时间。Hold 写信号无效后,使片选无效之前所需的时间。Units 定时单位,可以是ns,us,ms和时钟周期数。 2.CFI2.CFI(通用(通用FlashFlash
46、接口)控制器接口)控制器 2.1 CFI Flash2.1 CFI Flash控制器概述控制器概述 2.2 SOPC Builder2.2 SOPC Builder中中CFICFI控制器配置选项控制器配置选项 2.3 CFI2.3 CFI软件编程模型软件编程模型 第四章第四章 目录目录CFI软件编程模型软件编程模型一般地,系统中任何Avalon主端口能直接对Flash进行读操作。对Nios II处理器用户,Altera提供HAL系统库子程序,通过HAL API函数可对Flash进行擦除和写操作。1HAL系统库支持系统库支持Altera提供了集成到Nios II的HAL系统库的Flash设备驱动
47、程序。应用程序调用熟悉的HAL API函数对CFI兼容的Flash进行编程。用户不需要了解底层驱动的任何细节。当前,CFI控制器的驱动程序仅支持AMD和Intel 的Flash芯片。2软件文件软件文件下面文件定义了对硬件的底层访问,提供了HAL Flash的设备驱动子程序,应用程序开发者不应该修改这些文件。 alter_avalon_cfi_flash.h、alter_avalon_cfi_flash.c 把驱动子程序集成到HAL System库中所需的函数和变量的头文件及源代码。 altera_avalon_cfi_flash_amd_funcs.h、altera_avalon_cfi_fl
48、ash_ table.c 访问CFI列表的头文件和函数源代码。 alter_avalon_cfi_flash_amd_funcs.h、Alter_avalon_cfi_flash_amd_funcs.c 对AMD CFI兼容的Flash进行编程的头文件和源码。 altera_avalon_cfi_flash_intel_funcs.h、Altera_avalon_cfi_flash_intel_funcs.c 对Intel CFI兼容的Flash进行编程的头文件和源码。 3 EPCS 3 EPCS设备控制器设备控制器 3.1 EPCS3.1 EPCS控制器综述控制器综述 3.2 SOPC Bu
49、ilder3.2 SOPC Builder中中EPCSEPCS控制器的配置选项控制器的配置选项 3.3 EPCS3.3 EPCS软件编程模型软件编程模型 第四章第四章 目录目录EPCS控制器综述控制器综述EPCS控制器允许Nios II系统访问Altera的EPCS串行配置芯片。Altera提供集成到Nios II HAL系统库的驱动程序, 可使用熟悉的访问Flash的HAL API读和写EPCS设备。使用EPCS控制器, Nios系统可以: 在EPCS芯片中存入程序源代码。EPCS控制器提供一个Bootloader功能,允许Nios系统把主程序代码存到EPCS芯片中。 存储非易失性的程序和数
50、据,例如一个串行码、NIC码和其他的固定不变的数据。 管理FPGA配置数据。例如一个具有网络功能的嵌入式系统能通过网络接收新的FPGA配置数据,使用EPCS控制器把新的数据写到EPCS串行配置芯片中。EPCS控制器是SOPC Builder内部集成的部件。很容易集成到SOPC系统中。利用NiosIDE中的Flash Programmer实用程序可把数据固化到EPCS芯片中。 1功能描述功能描述 图48是一个典型的系统配置EPCS控制器的方块图。如图所示,EPCS芯片中的存储区可分两个区: FPGA配置存储器 该区保存FPGA配置的数据。 通用存储器 如果FPGA配置数据没有填满整个EPCS芯片
51、,剩余的空间可用来存放通用数据和系统启动代码。图48 集成EPCS控制器的Nios系统.依靠Flash的HAL通用设备模型,使用HAL API访问EPCS设备的方法与任何Flash的访问是相同的。EPCS芯片有一个特殊的硬件接口,所以Nios的程序必须使用HAL Flash驱动程序读写EPCS存储器。EPCS控制存储器包含1k字节的在片存储器用来存放bootloader程序。 Nios处理器可配置为从EPCS控制器启动。在这种情况下,复位后, CPU首先执行bootloader中的ROM代码,将EPCS通用存储器的数据拷贝到RAM中,接着程序控制转到RAM。NiosIDE提供实用工具来编译存放
52、在EPCS中的程序,创建一个能够写到EPCS中的编程文件。Altera的EPCS配置芯片通过FPGA上专用的引脚与之相连,而不是通过通用I/O引脚,所以EPCS控制器在顶层的SOPC Builder系统模块上并不创建任何I/O端口。如果在电路板上EPCS芯片和FPGA相连,目的是使用EPCS进行配置(例如,主动串行配置模式),则不需要其他任何连线。当在Quartus软件中对SOPC Builder系统进行编译时,EPCS控制器信号被自动连线到EPCS芯片的专用引脚。注意:如果使用Quatursprogrammer对EPCS进行编程,原来内容将被擦除。使用NiosIDE 中的Flash Prog
53、rammer Utility,可将FPGA配置数据和Nios程序数据固化到EPCS的芯片中。2Avalon从接口与寄存器从接口与寄存器EPCS控制器有一个Avalon从接口,提供对bootloader代码和控制该核的寄存器的访问。如表45所示,前256个字专门用来存放bootloader代码,紧接着7个字是控制和数据寄存器。NiosCPU可以读取从EPCS控制器的基地址开始的256条指令。表45 EPCS控制寄存器映射偏移地址 寄存器名称R/W位描述31.00 x0000 x0FF启动ROM存储器RBootloader 代码0 x100读数据R(1)0 x101写数据W(1)0 x102状态R
54、/W(1)0 x103控制R/W(1)0 x104保留-(1)0 x105从允许R/W(1)0 x106包结束R/W(1)表45注:(1) Altera没有提供访问控制和数据寄存器的功能,必须通过HAL驱动程序来访问EPCS配置芯片。 3 EPCS设备控制器设备控制器 3.1 EPCS控制器综述控制器综述 3.2 SOPC Builder中中EPCS控制器的配置选项控制器的配置选项 3.3 EPCS软件编程模型软件编程模型 第四章第四章 目录目录硬件设计者使用EPCS控制器的SOPC Builder配置向导来指明核的特性,该向导中只有一个选项。参考标志符设置是一个下拉菜单,允许在当前的SOPC
55、 Builder目标板元件中选择一个参考标志符,目的是把当前的EPCS控制器与板上EPCS芯片的参考标识符相联。如果没有匹配的参考标识符(例如板上不包含一个EPCS芯片),则EPCS控制器不能被加到系统中。 参考标识符被NiosIDE Flash Programmer使用。详情请看Nios II Flash Programmer User Guide。注意在每个FPGA设计中只能包含一个EPCS控制器。EPCS软件编程模型软件编程模型 Altera提供HAL系统库驱动程序,若利用HAL API函数擦除和写入EPCS存储器,必须使用HAL驱动程序来访问EPCS配置芯片。1HAL系统库支持系统库支
56、持Altera提供一个HAL Flash驱动程序,它集成到Nios系统的HAL系统库。软件调用HAL API函数来对EPCS存储器进行编程,而不需要了解低层驱动程序的细节。2软件文件软件文件下面的软件文件提供了对硬件低层访问,应用程序开发人员不应该修改这些文件。 altera-avalon-EPCS-flesh-controller.h、altera-avalon-EPCS-flesh-controller.c 定义集成到HAL系统库所需头文件和驱动程序代码。 EPCS-commend.h、 EPCS-commend.c 直接控制EPCS硬件进行读写操作的头文件和源文件,这些文件也依赖Alte
57、ra的SPI核驱动程序。 4 PIO4 PIO控制器控制器 4.1 PIO4.1 PIO控制器综述控制器综述 4.2 SOPC Builder4.2 SOPC Builder中中PIOPIO配置选项配置选项 4.34.3PIOPIO软件编程模型软件编程模型 4.44.4PIOPIO寄存器描述与中断寄存器描述与中断 第四章第四章 目录目录PIO控制器综述控制器综述并行输入输出(PIO)核在Avalon从端口和通用I/O端口之间提供了一个存贮器映像接口。I/O端口与片上用户逻辑或者FPGA的I/O引脚相连,I/O引脚连接片外设备。下面列举了PIO的几种应用场合: 控制LEDs。 获取开关数据。 控
58、制显示设备。 片外设备的配置与通讯。PIO能产生基于输入信号的中断请求,PIO是SOPC Builder内部集成的,易于集成到SOPC Builder创建的系统中。1功能描述功能描述每个PIO可提供32个I/O端口,处理器通过读写寄存器映象的Avalon接口控制PIO端口。在CPU控制下,PIO捕获输入端口的数据,传送数据到输出端口。当PIO端口直接与I/O引脚相连时,处理器通过写PIO控制寄存器可对I/O引脚进行三态控制。图49是多个PIO的应用实例。一个用于控制LEDs,一个用于捕捉片上复位请求控制逻辑,一个控制片外LCD显示。图49 使用多个PIO的系统实例当集成到SOPC Builde
59、r 创建的系统时,PIO有2种用户可见功能部件。 存贮器映像的寄存器,共有4个:data、direction、interruptmask和edgecapture。 1到32个I/O端口。I/O端口能与FPGA内部逻辑相连,也可与连接片外设备的I/O引脚相连。寄存器通过Avalon接口提供与I/O端口的接口。在某些硬件配置中,某些寄存器不存在,对不存在的寄存器进行读操作返回一个未定义值,而进行写操作无影响。2数据输入数据输入/输出输出PIO核的I/O端口可连接片上逻辑或片外逻辑,PIO核可配置为输入、输出或双向。若用来控制双向I/O引脚,PIO核提供具有三态控制的双向模式。读和写数据寄存器的硬件
60、逻辑是独立的。读数据寄存器返回输入端口的数据。写数据影响输出端口的内容。由于这些端口是独立的,读数据寄存器并不返回上次写入的数据。3边沿捕捉边沿捕捉PIO可配置为对输入端口进行边沿捕捉,可捕捉低到高的跳变、高到低的跳变或者2种跳变均捕捉。只要在输入端检测到跳变,就会记录在edgecapture寄存器中,边沿的检测类型在系统创建时指明,不能通过寄存器进行更改。4IRQ的产生的产生可配置PIO在不同的输入条件下产生IRQ。IRQ产生的条件有: 电平检测 PIO硬件能检测一个高电平。可在外部插入一个NOT门改变检测电平。边沿检测 PIO的边沿捕捉配置决定何种边沿能触发IRQ。每个输入端口的中断均可屏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单纯性外阴炎的健康宣教
- 垃圾收转装备相关行业投资方案
- 财务报表分析的系统学习计划
- 布鲁氏菌病诊疗方案2023年版
- 2024-2025学年年八年级数学人教版下册专题整合复习卷第21章 二次根式单元复习(2)及答案
- 【9物(科)期末】合肥市庐阳区2023-2024学年九年级上学期期末质量检测物理试题
- 《骨折复位技术》课件
- 春季教育工作参考计划
- 《讲厌氧消化技术》课件
- 幼儿教师培训课件:数、量、形、时空的教材分析
- 幼儿园讲座:课程游戏化、生活化建设的背景与目的课件
- 地理信息系统(GIS)公开课(课堂)课件
- 基本公共卫生服务项目工作存在问题整改情况汇报【六篇】
- 电气照明设备相关知识课件
- 妇产科护理学理论知识考核题库与答案
- 支付宝承诺函
- 中医急救培训培训课件
- 生物化学(第二版)-电子教案(完整版)
- 有机化学ppt课件(完整版)
- GB∕T 36681-2018 展览场馆服务管理规范
- 组织行为学(中国人民大学)
评论
0/150
提交评论