当前位置:首页 > 嵌入式 > 嵌入式硬件

PSoC是针对嵌入式控制设计的高度可配置片上系统架构,可提供基于闪存、与现场可编程专用集成电路(ASIC)等效的电路,而无需提前期(LeadTime)或一次性非重复费用(NRE)。PSoC集成了通过一个片上微控制器进行控制的可配置模拟和数字电路,提供强大的设计修改功能,并大幅减少元件数量。PSoC包括最大32Kb的闪存、2Kb的SRAM、一个带有32位累加器的8x8乘法器、电源和睡眠监控电路,及硬件I2C通信。PSoC资源配置灵活,可在各阶段进行基于固件的改动。PSoC可动态重配置,能随意在运行过程中改变内部资源形式,用较少的元件完成更多功能。

现以数据发生系统为例,介绍采用SOPC技术,以硬件描述语言为主要手段,产生伪随机序列的设计方案。研究了伪随机序列的产生,两片SRAM乒乓结构存储以及通过PCI9054芯片与PC机之间数据传递等模块的硬件实现问题。

1 基本原理和系统的整体结构

本系统的主要模块框图如图1所示,SOPC系统采用Altera的CycloneⅡ系列的芯片。系统包括NiosⅡ软核处理器,扩展的程序存储器FLASH,数据存储器SRAM,以及用户自定义逻辑如PCI9054接口逻辑模块、数据产生模块、乒乓结构模块等,并通过Avalon总线连接起来。数据产生模块产生伪随机序列,该数据存储到两片片外扩展的SRAM中,PCI9054接口逻辑将数据从SRAM中读出后通过PCI9054接口芯片传输到PC机中,其中SRAM中数据的写入和读出是通过乒乓结构模块控制的。

SRAM是英文StaticRAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。此外SRAM还是自行车品牌。SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(DynamicRandomAccessMemory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,且功耗较大。所以在主板上SRAM存储器要占用一部分面积。

由于PCI总线协议比较复杂,该系统采用PCI接口专用芯片PCI9054,用于PCI总线的控制。为了实现数据的高速传输,采用了DMA传输模式。在该模式中,PCI9054既是PCI总线的控制器又是本地总线的控制器,所以其与FPGA之间的接口逻辑模块设置为AvaIon主外设,控制SRAM的读操作。

FPGA的片上资源很宝贵,所以数据的存储采用了片外扩展SRAM.由于数据为16 b,而且为实现数据的高速传输,采用了两片256K x 16 b的SRAM(IDT71V416)构成乒乓结构,以用作系统的数据存储器。为保证整个系统高速运行以及以后升级的需要,选用了存取时间为10 ns的IDT71V416.

FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

2 系统主要硬件设计

2.1 数据产生模块

VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 .VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC

该模块的逻辑功能由VHDL语言设计实现,可以通过修改该模块的设计产生所需要的数据,本系统产生的数据为伪随机序列。模块的逻辑功能是:先产生8 b的伪随机数,再将所产生的数据通过D触发器组合成16 b的数据。该系统采用了非线性反馈的移位寄存器,即全状态移位计数器来产生所需要的伪随机数。这种计数器利用了移位寄存器的所有状态,能够自启动,不需要额外输入。这种伪随机序列发生器,可大大简化结构,提高可靠性,易于实现。

全状态移位计数器的状态变化规律有两个特点:状态的最高位由反馈函数确定;余下的各位由原态移位得到。该系统采用的反馈函数为:


式中:Qi(i=1,…,8)为电路的现态。

2.2 乒乓结构模块

2.2.1 乒乓结构的硬件实现

为了提高系统的传输速率,两片SRAM构成了乒乓缓存结构,即在一片执行写操作的同时,另一片在执行读操作。乒乓结构模块的原理如图2所示,P1口与数据产生模块相连接,仅具有写入功能,P2口设计为Avalon从端口,与Avalon总线相连仅具有读出功能。

对于数据产生模块而言,由于仅具有并行数据的输出,没有地址和控制信号端口,故它无法直接对SRAM进行写操作,因而要求乒乓结构模块有地址产生功能。P1口的CLK作为计数器的脉冲源,计数器的输出作为SRAM的地址。DBl连接数据产生模块的输出端。CBl为控制信号,因为P1口只有写入功能,所以其we_n恒接低,oe_n恒接高。

P2口为只有读出功能的Avalon从端口,所以AB2为从端口的地址线address;DB2为数据线readdata;CB2中的we_n为读信号线read,oe_n恒接低。由于两片SRAM始终处于工作状态,所以相应的片选信号chip_select_n恒接低。

两片SRAM在P1口和P2口之间的切换的控制信号即chipselect,由计数器产生。当计数值小于262 144时,chipselect接低,SR1与P1口相接,SR2与P2口相接;当计数值在262 144~524 288之间时,chipselecl接高,SR1与P2口相接,SR2与P1口相接。当计数值到达524 288时,计数器清零。

2.2.2 Avalon从外设的端口信号设计

Nios系统的所有外设都是通过Avalon总线与NiosCPU相接的,Avalon总线是一种协议较为简单的片内总线,Nios通过Avalon总线与外界进行数据交换。可分为两类:Slave和Master.slave是一个从控接口,而master是一个主控接口。slave和master主要的区别是对于Avalon总线控制权的把握。master接口具有相接的Avalon总线控制权,而slave接口是被动的。常见的Avalon的传输结构有:Avalon总线从读(slaveread),Avalon总线带一个延迟状态从读,Avalon总线从写(slavewrite),Avalon总线带一个延迟状态从写。

系统中,数据产生模块与乒乓结构模块结合为一个模块,通过P2口挂在Avalon总线上。该模块的信号列表如图3所示。其中,avalon_slave_O接口类型的信号与Avalon总线相连接,而conduit_end接口类型的信号与SRAM相连接。图3中的Avalon从端口即为P2口,采用了流水线读传输的模式,这种模式能在前一次传输返回readdata前开始一次新的传输,增加了带宽。

2.2.3 动态地址对齐及其时许设计

Avalon总线模块能够适应主从外设的不同宽度和不匹配的数据宽度。当系统中村子不匹配的存储口时,要考虑地址对齐问题。对于存储器类型的外设,采用动态地址对齐方式。IDT71V416型SRAM是静态RAM,属于存储器型外设,所以该Aalon从端口采用动态地址对齐方式,如图4所示。选用动态地址对齐方式,使得主端口能连续地对从外设进行读写,并使系统将外设认作存储器型外设。

根据IDT71V416型SRAM手册中读写时序的各时间参数值设定set up,read wait,write wait及holdtime的时间均为10 ns,使该端口既符合Avalon总线读写时序的要求,又符合IDT71V416型SRAM的读写时序的要求,如图5所示。


数据产生,乒乓结构和两片SRAM三部分的组合在ModelSim中的仿真结果如图6所示。avalon_ad-dress_b不变时是在执行第一次写操作,此时没有数据读出,所以avalon_readdata_b值为高阻;avalon_ad-dress_b开始变化时,表示一片SRAM已经写满,正在执行该片的读操作,而另一片在执行写操作,avalon_readdata_b为系统生成的数据。

2.3 PCI9054接口逻辑模块

PCI(PeripheralComponentInterconnect)一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准。此标准允许在计算机内安装多达10个遵从PCI标准的扩展卡。最早提出的PCI总线工作在33MHz频率之下,传输带宽达到133MB/s(33MHz*32bit/s),基本上满足了当时处理器的发展需要。随着对更高性能的要求,后来又提出把PCI总线的频率提升到66MHz,传输带宽能达到266MB/s.

PCI总线作为PC机与外部设备之间重要的连接总线,具有数据传输稳定灵活,传输速度快,即插即用和良好的扩展性等特点,被广泛地用在各种与PC机互联的设备中。该系统采用的PCI9054芯片口可以将复杂的PCI总线接口转换为相对简单的用户接口,大大缩短了设计周期。

2.3.1 本地总线状态机设计

由于PCI9054的DMA传输方式只适宜于做单次传输,故该系统采用了DMA结合中断的方式传输数据。由于数据的存储采用了乒乓结构,可以在一片SRAM执行DMA传输的同时执行另一片写操作,这样不会造成数据丢失,状态也比较容易控制。

系统复位后,数据产生模块开始产生伪随机序列,产生的数据直接存入SRAM中。此时,计数器同步计数,当计数值每一次达到262 144时,也就是一片SRAM已经存满时,SOPC系统就会触发PCI9054中断请求信号LINT#,CPU响应中断,发出读命令、要读取的字节数、地址信号等。PCI9054:先通过LHOLD申请本地总线的控制权,SOPC系统通过LHOLDA响应,使PCI9054.获得本地总线的控制权。PCI9054将PCI地址空间映射到本地地址空间,接着启动本地总线的DMA传输。

该系统采用VHDL语言,实现了DMA读传输本地端的时序控制状态机设计。状态0为空闲状态(i-dle),若LHOLD信号被置1,则转到状态1,否则留在状态0.状态1为总线保持状态(hold),在此状态下应将LHOLDA信号置l.如果信号ADs为O且LW_R为0,则转到状态2.状态2为DMA读状态(DMA_read),在此状态下应将READY信号和模块内部信号avaIon_read置l,从而使AvaIon主端口的master_read置1,表示Avalon主外设发起读传输。如果BLAST为1,则表明此次DMA读取还没有完成,继续留在状态2;如果BLAsT为0,则表明此次DMA读取完成,转到状态3.状态3为DMA读操作完成状态(end cycle),当LHOLD被置0时,表示PCI9054不再请求本地总线,则转到状态0;当BLAST为0且LHOLD为1时,则表明PCI9054还要进行DMA读操作,则转到状态1继续。其中的DMA读操作的时序逻辑的ModelSim仿真结果如图7所示。

2.3.2 Avalon主外设的端口信号设计

该系统中,PCI9054控制数据从本地总线上读出,先到PCI9054的FIFO中,再将FIFO中的数据传输到PCI总线上。因此SOPC系统中的PCI9054接口逻辑模块为Avalon主外设,主端口通过address,read,wait-request等信号发起Avalon总线上的读操作,从而控制Avalon从外设即乒乓结构模块的读操作。

由于本系统定制的从外设采用了流水线读的传输模式,为了使端口传输模式匹配,主外设也采用流水线读的传输模式。流水线主端口一个必须的信号为readdatavalid,Avalon交换结构向主端口发出readdat-avalid,以表示readdata信号正在提供有效的数据。

本系统定制的Avalon主外设构成模块主要由5部分构成,其中Read Master Logic提供了符合Aval-on接口规范的主端口信号;Control Logic是ReadMaster Logic与PCI9054 Local Bus Logic控制信号和状态信号转换的桥梁;FIFO是数据由Read MasterLogic向PCI9054传输的缓冲区。这三部分通过主端口流水线读传输时序逻辑联系在一起,提供了Avalon主外设的主端口接口界面。PCI9054 Local Bus Logic即VHDL语言设计的本地总线状态机,它将PCI9054本地端的信号通过状态机逻辑转换为与Control Logic和FIFO相对应的信号;Clock/Reset提供了主外设的clk和reset信号。

利用SOPC Builder中的new cormponent edit设计PCI9054接口逻辑模块的接口。在new component ed-it的signal中设置模块的各信号线以及相应的总线型号类型;在interface中设置各信号线对应的端口类型及其相应的参数。图8为Avalon主端口的参数设置。

2.4 系统中各中断的实现

在SOPC系统中,当没有进行传输时,Avalon交换结构忽略来自主端口所有与传输相关的输出信号,并且主端口也忽略来自Avalon交换结构所有与传输相关的输入信号。但是Avalon总线接口提供控制信号来实现中断请求等功能,这些信号不直接与数据传输相关。Avalon中断请求信号允许从端口发出一个IRQ,表明它需要主外设来服务。系统中,PCI9054采用了DMA加中断的方式来传输数据,而且DMA传输中的主控制器PCI9054芯片也要通过中断信号LINT#来触发,所以中断的实现是本系统功能实现的关键。

系统从端口的中断原理在于系统复位之后,数据产生模块开始自动产生伪随机序列,并自动将数据存入SRAM中,当一片SRAM存满之后,从端口的irq信号被设置。这个irq信号的时序必须与相关时钟的上升沿同步,其相关地址端口的名字必须是本模块中Aval-on从端口的名字。系统中从端口中断的具体设置如图9所示。

系统主端口的中断原理:在于主端口的irq检测到从端口有中断发出,通过置为有效来响应这个中断,并同时用该信号触发PCI9054的LINT#信号。PCI9054获得本地总线的控制权,并启动DMA传输,向SOPC:系统中的主外设即PCI9054接口逻辑模块发送地址和传输的字节长度,开始DMA传输。当字节长度减为O,另一片SRAM存满时,再次触发PCI9054的LINT#信号,使得PCI9054启动下一次DMA传输。主端口中断的设置如图10所示。

3 结 语

图10 主端口中断设置详细介绍了基于SOPC设计的数据发生系统中PCI接口的开发过程。对其中的关键技术,如设计添加在SOPC系统中的用户自定义主外设和从外设;PCI9054本地总线状态机的设计,乒乓结构的存储模块的设计,以及系统中各中断的实现等主要部分做了分析和研究,给出了基于SOPC的硬件实现方案。系统的主要部分由VHDL语言设计实现,有利于参数修改和系统升级。



QICK

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭