我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:神州彩票 > 二进制单元 >

在FPGA系统上实现自动检验功能的栈空间管理器的设计

归档日期:05-06       文本归类:二进制单元      文章编辑:爱尚语录

  站建设等领域的高速发展,对嵌入式操作系统实时性的要求越来越高。同时,由于的集成度和速度的不断提高,使嵌入式操作系统硬件化实现成为发展趋势。硬实时操作系统中的堆栈管理对系统的实时性和可靠性起着至关重要的作用,而传统操作系统内核是将每个任务的堆栈空间直接进行最大化处理,导致大量存储空间浪费,另外采用通用

  基于上述问题,本文提出了一种堆栈空间结构,设计了一款具有自动检验功能的栈空间管理器,并在Xilinx公司的集成开发环境FPGA系统上实现。

  堆栈空间是按先进后出(LIFO)原则分配的连续存储器空间,可以满足保护任务切换信息和中断响应时保护处理器状态和任务参数数据的需要,且对每个任务分配一个单独的任务栈和一个响应系统中断任务的中断嵌套栈。如图1所示,栈空间划分为n个任务栈和1个中断嵌套栈。

  任务栈主要保护被切换任务的信息。它存放的数据有:任务代码首地址、任务参数、任务中定义的局部变量、被调用函数的参数和局部变量及任务中各个函数的返回地址。中断嵌套栈存放被中断任务的数据,包括发生中断时需要保存的上下文、中断嵌套时需要保存的上下文和中断服务程序的局部变量。

  在硬实时操作系统中,当发生中断或中断嵌套时,堆栈地址指针从任务栈切换到中断嵌套栈。当所有的中断服务程序全部执行完成后,堆栈地址指针从中断嵌套栈切换到任务栈,继续执行该被中断的任务。这种管理方式同以往操作系统采用被中断任务的数据保存到相应任务堆栈的方法相比,更有效节约了堆栈空间开销。

  为了节约RAM开销,从总体结构上构建了一款具有LIFO及自检功能的栈空间管理器。栈空间管理器结构包括一个双端口存储单元、状态控制逻辑模块、地址产生逻辑模块、中断判断逻辑。其中状态控制逻辑模块由空/满标志产生逻辑、二进制运算逻辑和标志寄存器组3部分组成;地址产生逻辑模块由读/写地址逻辑、中断栈逻辑和地址寄存器组3部分组成。

  由图2可知,状态控制逻辑模块的工作过程为:从标志寄存器组中读出当前任务栈的使用量fcount信号值,fcount信号值传送至二进制运算逻辑。在读/写控制信号有效的情况下,二进制运算逻辑有效,修改fcount信号值,修改后的值作为USED的输出值,同时写回到标志寄存器的对应fcount位中。修改后的信号值也作为空/满标志产生逻辑的输入信号,空/满标志产生逻辑生成Full/Empty标志,并把该标志位写回到标志寄存器对应位Full/Empty中。其中标志寄存器freg的结构如图3所示,初始值为0B。

  中断判断逻辑由输入信号INT与标志寄存器位IntNesting值决定是否有效。如果有中断发生,则中断栈逻辑有效,中断栈逻辑生成读/写地址,否则读/写地址逻辑有效,生成相应的读/写地址。

  在读/写控制信号有效的情况下,从堆栈地址寄存器组中读出当前任务的地址,经过读/写地址逻辑或中断栈逻辑产生堆栈地址指针,作为HOS堆栈空间的入栈/出栈地址。执行入栈时,在同步时钟和入栈控制信号有效的情况下,中断判断逻辑判断是否存在中断或中断嵌套,如果没有,则由写地址逻辑生成入栈地址;否则由中断栈逻辑生成写地址。同理,执行出栈时,在同步时钟和出栈控制信号有效的情况下,中断判断逻辑判断是否存在中断或中断嵌套,如果没有,则读地址逻辑生成出栈地址;否则中断栈逻辑生成出栈地址。

  为了快速、有效地保护被切换任务的信息,并满足自动检验功能的要求,在栈空间管理器设计中设计了2个逻辑模块,分别为状态控制逻辑模块和地址产生逻辑模块。状态控制逻辑模块主要生成入栈/出栈控制信号和Used信号,地址产生逻辑模块主要生成有效的入栈/出栈地址。基于对栈空间管理器总体结构工作过程的阐述,在Xilinx公司设计的XUPVirtexIIPro系列的芯片上设计一个模拟栈空间管理器,模拟管理8个任务,任务栈的深度为64,宽度为16bit,中断嵌套栈的深度为128,宽度为16bit,容量为10KB的堆栈空间。在设计管理器中,保证管理器快速综合,使占用FPGA的资源尽可能少,存储单元的选择是关键,该系统采用的是FPGA上一个18KB的BlockRAM资源,使用ISE8.2i提供的双端口RAM存储模块的IP核。如果选择其他方法,如用触发器和寄存器搭建存储单元,则综合时间长,且占用大量FPGA的Slices资源。

  在实际嵌入式系统应用中,根据系统要求,可计算出栈空间深度和宽度,具体的深度和宽度在VHDL代码中修改即可。

  由于状态标志寄存器的空/满状态标志位决定栈空间入栈/出栈操作,所以如何设计空/满状态标志位是关键。为了保护的数据能正确入栈与出栈,防止存储器出现向上溢出或向下溢出,保证在满的情况下,不能进行push操作;在空的状态下,不能进行pop操作。控制信号的产生过程如图4所示。

  在状态控制逻辑模块设计时,prio_int信号驱动4个多路选择器,选择对应状态标志寄存器组中的各位段,分别有full信号值、empty信号值、fcount信号值和intNesting信号值。empty/full信号和push/pop信号作为组合逻辑输入信号产生相应的push_en/pop_en有效控制信号,该控制信号决定栈空间是否执行入栈/出栈操作。

  在push_en/pop_en控制信号有效的情况下,驱动二进制运算逻辑加/减1,输出运算结果。输出的信号值有3个用途:(1)作为空/满标志状态产生逻辑的输入信号,该信号逻辑产生empty/full信号;(2)写回到fregx对应的fcount位中;(3)作为Used输出信号值,表示当前任务栈或中断嵌套栈的使用情况。

  在产生empty、full信号逻辑模块设计时,采用了对输入信号的每一位进行组合逻辑判断的方法,使该信号分两路,一路作为与门组合逻辑的输入信号产生full信号。如果输入信号的每一位都为1,则full信号置1,其他情况置0;另一路作为或门非组合逻辑的输入信号产生empty信号。如果输入信号的每一位都为0,则empty置1,其他情况置0。在整个逻辑模块设计中,采用组合逻辑设计,目的是缩短工作时延,提高系统工作频率。

  堆栈地址指针SP决定了堆栈空间单元的数据正确入栈和出栈,堆栈地址指针SP的获得在于如何驱动读/写逻辑模块和中断栈模块。为了确保被保护数据的有效性和实时性,防止出现不确定状态,须在时序同步的状态下,对数据进行操作,如图5所示。

  在地址产生逻辑设计时,先对堆栈地址寄存器组赋初值,该模拟系统管理8个任务,有9个堆栈地址寄存器,分别为8个任务堆栈地址寄存器和1个中断嵌套栈堆栈地址寄存器。

  当任务优先级Prio信号和中断使能int_en信号同时驱动多路选择器时,堆栈地址指针SP从堆栈地址寄存器组中选择存放在Pregx中的当前任务的地址,在设计的栈空间管理器中,SP指向栈空间的下一个存储单元的地址。如果入栈控制信号有效,则SP作为栈空间的寻址地址,写入数据,SP加1;如果出栈控制信号有效,则SP减1,改变后的SP值作为栈空间的寻址地址,读出数据。操作完成后,改变后的SP值写回到对应的堆栈地址寄存器组Pregx中。

  仿真时,输入十进制数的数据,图6为系统时序仿线)当INT无效时,即系统中不存在中断或中断嵌套。在push有效的情况下,置prio信号值为2,data_in信号值分别为32768、57908。仿真时,输出结果为:used信号值分别为1、2,而ostcbstkptr信号值分别为128、129;同理,在pop有效情况下,置prio信号值为2,观察仿真结果为:dout_out信号值分别为32768、57908,used的信号值分别为1、0,ostcbstkptr信号值分别为129、128。由此可得,在无中断处理的条件下,根据任务的优先级prio,按LIFO原则在任务栈中写入和读出数据,并且每次的有效操作同时修改当前任务的used和ostcbstkptr信号值。

  (2)当INT有效时,即系统中产生中断或存在中断嵌套。在push有效的情况下,置prio信号值为6及data_in信号值为8192,观察仿真结果为:used信号值依次为1、2、3、4,ostcbstkptr信号值依次为576、577、578、579;同理,在pop有效情况下,置prio为6,此时的仿真结果:data_out信号值为8192,used信号值依次输出4、3、2、1,ostcbstkptr信号值依次输出579、578、577、576。由此可得,当系统中产生中断或存在中断嵌套,按LIFO原则在中断嵌套栈中写入和读出数据,并且每次有效操作同时修改中断嵌套栈的used和ostcbstkptr的值。

  本文分析了堆栈空间结构及对被切换任务相应数据信息的保护,并对堆栈空间进行了合理的结构划分。实验数据表明了该系统的可行性和稳定性。栈空间管理器能有效节约硬实时操作系统分配堆栈空间的时间,减少RAM存储空间。从硬件角度上看,简化了设计,降低了成本,具有一定的使用价值。目前只在实验平台上仿真,下一步拟将栈空间管理器的IP核应用于硬实时操作系统,以提高操作系统的运行效率。

  注:已经报名的学员请添加班级群669626886————————————————————————————————————

  注:已经报名的学员请添加班级群669626886————————————————————————————————————

  在万物互联大背景下,预计未来将有数以百亿的智能设备连接至互联网。思科公司最新数据显示,到 2021 ....

  作者:袁浩浩张记龙徐振峰 转贴自:微计算机信息 1引言 激光告警机是被动光电侦查设备,其功能是探测目标激...

  文章出处:电子工程师 作者:徐军 王华东 江苏财经职业技术学院 引言 在许多嵌入式系统的实际应用中,需要扩展FP-GA(现...

  文章出处:电子工程师 作者:徐军 王华东 江苏财经职业技术学院 引言 在许多嵌入式系统的实际应用中,需要扩展FP-GA(现...

  勇敢的芯伴你玩转Altera FPGA连载89:FPGA片内异步FIFO实例特权同学,版权所有配套例程和更多资料下载链接:http:/...

  现在刚开始学ucgui,好不容易抑制成功,艰难的运行了一下签名字符,数字,图形的显示。。。现在来到了WM这一章…… 首先,想...

  All Programmable 技术和器件的全球领先企业赛灵思公司(Xilinx, Inc.,(N....

  AI芯片领域玩家众多,作品也在不断更新迭代。然而,到目前为止,完全符合描述和基准测试的AI芯片寥寥无....

  我目前正在使用IBERT 7系列GTP v3.0 r15测试Artix 7 FPGA(xc7a50tcsg325-2)的GTP收发器,我对结果感到非常困惑...

  你好, 我是FPGA的初学者。 我正在使用Artix-7的Nexys DDR4,我想向FPGA输入数字信号。 然后我想知道如何实现这...

  你好, 我在其中一个ZC702版本1.1板上遇到问题。 DS2红灯亮,似乎FPGA无法初始化。 它工作正常,但经过几个电源循环...

  FPGA对于硬件工程师以及高校师生来说是非常重要的一项技能,其重要性甚至要超过PCB设计,不仅是因为....

  本文介绍了一种嵌入式视频图像压缩模块的USB接口设计方案,给出了该系统的硬件实现方案以及USB控制芯片CY7C68013在系统...

  作者:华卓立姚若河 转贴自:微计算机信息 一、引言 SPI串行通信接口是一种常用的标准接口,由于其使用简...

  早前苹果与高通诉讼案大和解,苹果将采用高通基带芯片后,英特尔(Intel)同时也宣布退出5G基带芯片....

  :针对模拟电路实验教学过程中存在的实验项目单一、电路原理难理解、学生学习积极性不高的问题,结合实际教....

  Q:FPGA设计与DSP设计相比,最大的不同之处在哪里?A:这个问题要从多个角度看。它们都用于某个功....

  AMD嵌入式系列迎来“ZEN+VEGA”时代 处理器性能得到了全面的提升

  如今,AMD正在发力嵌入式业务的增长。近日在AMD台北举行的嵌入式新品发布会上,AMD宣布推出新款锐....

  阿里云、腾讯云在几天前扎堆推出了FPGA云服务。而百度呢,2015年获得百度最高奖的“仙童”项目正是....

  在并购浪潮的裹挟下,半导体从业者也更加小心翼翼,如履薄冰。就算在“曲高和寡”的小众FPGA市场,也已....

  Alibaba Cloud(阿里云)已宣布与英特尔合作开展基于云的现场可编程门阵列 (FPGA) 加....

  在使用 FPGA 构建的基于微控制器的典型系统中,开发人员需要管理用于加载 FPGA 编程比特流的序....

  在学习的道路上我们一直是新手,硬件行业显得更加如此。想成为高级嵌入式硬件工程师,你还缺少什么?

  2019 年 4 月 30日,比利时泰森德洛 - 全球微电子工程公司 Melexis 宣布推出面向汽....

  全球微电子工程公司 Melexis 宣布推出面向汽车应用的第 II 代嵌入式电机驱动产品系列的最新产....

  在过程控制和运动控制系统中,特别是在嵌入式控制系统中,PID(比例-微分-积分)控制器因其结构简单,....

  RISC-V会是一道曙光吗?RISC-V与RUST相遇引发操作系统教学新尝试

  身为研究操作系统的老师,陈渝认为,RISC-V精简指令集听起来属于硬件范畴,但是其实RISC-V与软....

  我们考虑如何通过具有高性能CPU子系统和包括FPGA可重编程加速硬件处理单元的SoC架构来成功应对5....

  昨日下午,由华为开发者联盟主办的HUAWEI Developer Day系列开发者活动在西安举办,华....

  与多年前相比,现在的移动消费电子装置结构复杂,功能丰富,能够存储大量音乐、照片和视频内容。让人欣慰的....

  随着科技与经济的发展,汽车数量也逐渐增多,交通管理问题日渐严峻。如何建立一个科学有效的交通管理系统是....

  本文档的主要内容详细介绍的是使用FPGA开发板进行奇偶流水灯的详细资料说明。

  本文档的主要内容详细介绍的是FPGA基础及7系列FPGA基本原理的基础资料说明

  本文档的主要内容详细介绍的是使用FPGA实现三输入的多数判决器的实验详细资料说明。

  ARM:架构採用32位精简指令集(RISC)处理器架构,从ARM9开始ARM都採用了哈佛体系结构,这....

  来自天眼查数据显示,北京大眼星空科技有限公司的大股东是北京星云创迹科技有限公司,而北京星云创迹科技有....

  如今,Spansion 宣布推出了用于工业领域的微控制器,即基于ARM Cortex-M 处理器的S....

  当前有线通信的图像监控系统由于其经济实用性而被广泛采用,然而这种方式很大程度限定了它的应用前景。目前....

  现场可编程闸阵列(FPGA)成车用电子系统差异化新利器。FPGA具备高度设计弹性与扩展性,可让汽车电....

  最近重新找了一下C语言的资料,深深的被c语言的底层操作特性迷恋~。在这方面,最经典的一本书莫过于清华....

  Intel公司推出的基于Intel XScale内核技术的新一代嵌入式微处理芯片PXA27x(开发代....

  赛灵思表示全球首款自行调适运算平台产品Versal可以为其硬件与软件进行编程与最佳化的工作

  随着越来越广泛的联网需求,加上越来越多的联网设备情况下,资料中心的高效能运算已成为现代商业营运模式中....

  对基于数字信号处理器(DSP)的系统而言,优化功耗是一项重要但往往难以实现的设计目标。现在,基于DS....

  能见度是气象观测中的重要参数,其对于航空航天、铁路、公路等具有重要的应用价值。数字摄像法是根据能见度....

  多普勒测量系统利用多普勒效应测量运动目标(固体、液体或气体)的速度。最著名的应用大概要算雷达枪了,交....

  嵌入式代码编码规范,用于规范自己的代码,增强可读性,非标准规范。最好能强制自己形成良好的编码风格,有....

  从8048 开始,“单片机”即成为广受欢迎的代名词,而8051 更成为机电、电子相关专业必学的内容,....

  仅仅两周后,随着三星推出其基于赛灵思技术的 SmartSSD,这一势头继续发展。SmartSSD 直....

  本文档的主要内容详细介绍的是FPGA驱动的储存模块的使用教程免费下载。

  身处数据洪流的时代,这不仅意味着数据量的爆炸式增长,更体现在数据形态和格式正发生着革命性的变化,数据....

  随着互联网红利逐渐消失,物联网在整体科技发展潮流中顺势而行,成为被普遍看好的新一代产业发展方向。

  目前,Linux作为嵌入式系统的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、....

  2004年,Altera 正式推出了Nios II系列32位RISC嵌入式处理器。Nios II系列....

  Quartus II design 是最高级和复杂的,用于system-on-a-programma....

  为了实现对家居环境安全状况实时的监控以及在发生警情时能自动拨号进行语音提示或发送报警短信, 设计了一....

  需要注意的是Win7主要支持已经在2015年1月13日终止了,不过外延支持是到2020年1月14日,....

  AI(人工智能)俨然是近年全球科技产业最重要的热门词汇,作为生产AI创新核心芯片的供货商们,自然也不....

  近日,AMD正式发布了锐龙R1000系列嵌入式处理器,和此前推出的锐龙V1000系列一样,都是基于Z....

  “深化大数据、人工智能等研发应用,培育新一代信息技术、高端装备、生物医药、新能源汽车、新材料等新兴产....

  TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

  TMP411设备是一个带有内置本地温度传感器的远程温度传感器监视器。远程温度传感器,二极管连接的晶体管通常是低成本,NPN或PNP型晶体管或二极管,是微控制器,微处理器或FPGA的组成部分。 远程精度为1 C适用于多个设备制造商,无需校准。双线串行接口接受SMBus写字节,读字节,发送字节和接收字节命令,以设置报警阈值和读取温度数据。 TMP411器件中包含的功能包括:串联电阻取消,可编程非理想因子,可编程分辨率,可编程阈值限制,用户定义的偏移寄存器,用于最大精度,最小和最大温度监视器,宽远程温度测量范围(高达150C),二极管故障检测和温度警报功能。 TMP411器件采用VSSOP-8和SOIC-8封装。 特性 1C远程二极管传感器 1C本地温度传感器 可编程非理想因素 串联电阻取消 警报功能 系统校准的偏移寄存器 与ADT7461和ADM1032兼容的引脚和寄存器 可编程分辨率:9至12位 可编程阈值限...

  TMP468器件是一款使用双线 C兼容接口的多区域高精度低功耗温度传感器。除了本地温度外,还可以同时监控多达八个连接远程二极管的温度区域。聚合系统中的温度测量可通过缩小保护频带提升性能,并且可以降低电路板复杂程度。典型用例为监测服务器和电信设备等复杂系统中不同处理器(如MCU,GPU和FPGA)的温度。该器件将诸如串联电阻抵消,可编程非理想性因子,可编程偏移和可编程温度限值等高级特性完美结合,提供了一套精度和抗扰度更高且稳健耐用的温度监控解决方案。 八个远程通道(以及本地通道)均可独立编程,设定两个在测量位置的相应温度超出对应值时触发的阈值。此外,还可通过可编程迟滞设置避免阈值持续切换。 TMP468器件可提供高测量精度(0.75C)和测量分辨率(0.0 625C)。该器件还支持低电压轨(1.7V至3.6V)和通用双线制接口,采用高空间利用率的小型封装(3mm×3mm或1.6mm×1.6mm),可在计算系统中轻松集成。远程结支持-55C至+ 150C的温度范围。 特性 8通道远程二极管温度传感器精度:0.75&...

本文链接:http://runhappyplace.com/erjinzhidanyuan/163.html