我提供的代码如下,自己补充main函数哈,希望能够帮到你:)
//相关头文件:
#include <stdioh>
#include <signalh>
#include <stdlibh>
#include <unistdh>
#include <sys/typesh>
#include <sys/stath>
#include <fcntlh>
发送方send:
void fifo_pro()
{
char s[128];
int fd;
FILE fp;
fp = fopen("/atxt", "r");
mkfifo("/tmp/fifotst", 0644);
fd = open("/tmp/fifotst", O_WRONLY);
while(fgets(s, 127, fp) != NULL) {
write(fd, s, strlen(s));
//printf("%s",s);
}
close(fd);
fclose(fp);
unlink("/tmp/fifotst");
}
接收方get:
char s[128];
int fd = open("/tmp/fifotst", O_RDONLY);
int fd2 = open("/btxt", O_WRONLY)
memset(s, 0, 128);
while(read(fd, s, 128) > 0) {
printf("%s", s);
write(fd2, s, 128);
}
close(fd2);
close(fd);
一、背景
FIFO是FPGA项目中使用最多的IP核,一个项目使用几个,甚至是几十个FIFO都是很正常的。通常情况下,每个FIFO的参数,特别是位宽和深度,是不同的。
明德扬(MDY)在2021年承担了多个基于XILINX芯片的研发项目,包括VPX网络透明传输项目(芯片为XC7K325T-2FBG900)、某高端测试仪项目(芯片为XCKU060-FFVA1156)、某网闸设备项目(芯片为XC7Z030-FBG676)等,另外,明德扬自研了基于XC7K325T-2FBG900和基于XC7K410T-2FBG900芯片的核心板,在XILINX研发领域拥有丰富的经验。
这些项目都必须用到FIFO。如果按照通常做法,每种位宽和深度的IP,都要打开FIFO IP核界面、命名(命名不好不好分辨需要的FIFO)、设置参数、生成并编译IP核,工作量可以想象出来是非常多的。更重要的是随之而来的管理问题,如何管理这几十个不同FIFO,如何检查FIFO的设置是否正确,都是一个不小的挑战。
对于我们专门承接项目的团队,绝不可忍受如此重复、枯燥、容易出错的工作。经过精心研究,终于找到了一条实用的方法:使用XILINX的原语--xpm_fifo_async和xpm_fifo_sync。
XILINX原语xpm_fifo_async和xpm_fifo_sync在FPGA中,可以直接例化使用,并且可以参数化FIFO的位宽和深度的。即在设计时,不用生成FIFO IP,直接例化就可以使用了。
二、获得参考代码
打开VIVADO软件,点击上图中的Language Templates,将会d出Language Templates窗口,如下图。
在Language Templates窗口中,依次点击verilog、Xilinx Parameterized Macros(XPM)、XPM、XPM_FIFO,如上图。可以看到有三种FIFO,分别是异步的XPM FIFO:xpm_fifo_async、AXI总线的FIFO:xpm_fifo_axis和同步的XMP FIFO:xpm_fifo_sync。
选择xpm_fifo_async,右边的Preview窗口,将出现xpm_fifo_async的注释以及参考代码。将此部分代码拷出来,并将注释删除,剩下的是xpm_fifo_async的例化参考。
上图是对xpm_fifo_async的参数例化部分。下面是需要重点关注并经常使用的参数。
Ø FIFO_WRITE_DEPTH:FIFO的写深度,其实就是在这里设置FIFO的深度,注意该值通常是2的N次方,如8、16、32、64等数。
Ø PROG_EMPTY_THRESH:FIFO的快空的水线。当FIFO存储的数据量小于该水线时,FIFO的快空信号将会变高。
Ø PROG_FULL_THRESH:FIFO的快满的水线。当FIFO存储的数据量大于该水线时,FIFO的快满信号将会变高,表示有效。
Ø READ_DATA_WIDTH:读数据的位宽。
Ø WRITE_DATA_WIDTH:将数据的位宽。
Ø RD_DATA_COUNT_WIDHT:读侧数据统计值的位宽。
Ø WR_DATA_COUNT_WIDTH:写侧数据统计值的位宽。
上图是对xpm_fifo_async的接口信号部分。下面是需要重点关注并经常使用的信号。
Ø wr_clk:FIFO的写时钟
Ø rst:FIFO的复位信号,高电平有效。要注意的是,该信号是属于写时钟域的。
Ø wr_en:FIFO的写使能信号。
Ø din:FIFO的写数据
Ø full:写满指示信号,当FIFO写满时,该信号变高。
Ø wr_data_count:FIFO存储数据量指示信号,用来指示当前FIFO已经写入但未读出的数据个数。
Ø rd_clk:FIFO的读时钟。
Ø rd_en:FIFO的读使能。
Ø dout:FIFO读出的数据。
Ø empty:FIFO的空指示信号。当其为1表示FIFO处于空状态,当其为0,表示FIFO内有数据。
三、定义自用的FIFO模块
从第二步可以看出,xpm_fifo_async是可以参数化深度和位宽的。但xpm_fifo_async有很多参数和信号,并且其中有部分是不使用的。为了使用上的方便,可以自定义自用的FIFO模块。
例如,明德扬就定义了一个模块mdyFifoAsy,该信号的接口信号如下图。可以看出,名称更加规范,并且定义常用的信号,如读时钟rd_clk,写时钟wrclk、写使能wrreq等信号。
明德扬还在模块mdyFifoAsy定义了一些常用的参数,分别是FIFO深度参数:DEPT_W;FIFO位宽的参数:DATA_W,还有FIFO快满参数AL_FUL和快空参数AL_EMP,如下图。
接下来,就是在mdyFifoAsy中例化并使用xpm_fifo_async了。如下图,就是对xpm_fifo_async的参数例化。将DEPT_W传给FIFO_WRITE_DEPTH,DATA_W传给READ_DATA_WIDTH等。
下图是对xpm_fifo_async的信号例化。将不用的信号留空,将dout连到q,din连到data,wr_en连到wrreq等。您可以根据自己情况来定制FIFO。
四、应用
定制完自己的FIFO后,就可以直接例化使用了。
上图就是使用了一个位宽为8,深度为256的FIFO。
上图就是使用了一个位宽为18,深度为1024的FIFO。
FIFO是FPGA、芯片设计中,最常用的IP核,在存储控制、算法实现、接口设计中,都少不了FIFO,因此合理并正确使用FIFO的技术就非常有必要了,明德扬录制了FIFO的训练视频,掌握后技术能力将有大提升。
通过上面介绍可知,通过此种方式,再也不用生成FIFO IP核啦,整个工程大小基本上可以减少一大半。
上面举的例子是xpm_fifo_async,同步FIFO:xpm_fifo_sync的使用方法是类似的。
问题一:还原系统是什么意思? “系统还原”是windows提供的一种故障恢复机制,“系统还原”的目的是在不需要重新安装系统,也不会破坏数据文件的前提下使系统回到工作状态。实用程序在后台运行,并在触发器事件发生时自动创建还原点。触发器事件包括应用程序安装、AutoUpdate 安装、Microsoft 备份应用程序恢复、未经签名的驱动程序安装以及手动创建还原点。默认情况下实用程序每天创建一次还原点。
“系统还原”可以恢复注册表、本地配置文件、+ 数据库、Windows 文件保护 (WFP) 高速缓存 (wfpdll)、Windows 管理工具 (WMI) 数据库、Microsoft IIS 元数据,以及实用程序默认复制到“还原”存档中的文件。您不能指定要还原的内容:要么都还原,要么都不还原。
“系统还原”需要 200MB 的可用硬盘空间,用来创建数据存储。如果没有 200MB 的可用空间,“系统还原”会一直保持禁用状态,当空间够用时,实用程序会自己启动。“系统还原”使用先进先出 (FIFO) 存储模式:在数据存储达到设定的阀值时,实用程序会清除旧的存档,为新的存档腾出空间。
“系统还原”监视的文件类型很多,包括安装新软件时通常看到的大多数扩展名 (例如:cat、、dll、exe、inf、ini、msi、ole 和 sys)。请注意,只有使用与“系统还原”restoreptapi 兼容的安装程序安装应用程序时才能触发还原点创建事件。
通常,如果您知道或“能大概确定”导致问题出现的原因 (例如:一个最近安装的设备驱动程序) 时,系统恢复会很简单。有些情况下,对于您遇到的某些问题,使用“系统还原”可能不是最好的解决方法。“系统还原”会更改许多不同的文件和注册表项目,而且有时由于替换的文件或注册表项目过多,可能会导致比您要解决的问题更复杂的问题。例如,以您安装 Office XP 为例,当您安装时会触发“系统还原”创建一个还原点,而且安装后软件包运行得很好。但是后来,您下载并安装了一个更新的视频驱动程序,而且由于驱动程序是经过签署的,所以其安装并没有触发“系统还原”创建还原点。而就在此时,您的系统当机了,而您确信新安装的视频驱动程序是导致这一切出现的原因。在这种情况下,您应当使用“返回设备驱动”实用程序,因为它可以解决设备驱动问题而不会更改系统上其他任何东西。而“系统还原”则会将您的计算机恢复到安装 Office XP 之前的状态,因此在解决完驱动程序问题后您必须重新安装整个软件包。
问题二:系统还原是什么意思啊?~~~~~ 什么时候要用到它? 有时候你对电脑进行了一些误 *** 作,可以用系统还原进行还原,系统还原是系统本身对用户的 *** 作进行的一种记录,以便误 *** 作后进行还原,不过要占用很大的硬盘空间,建议关闭除系统盘外的还原。而且还原只能解决一些很简单的问题,你最好用ghost等软件对系统进行备份
问题三:电脑系统还原是什么意思?要怎么弄? 类似于 Windows NT 和 Windows 2000 中的“最近一次的正确配置”。您可以使用“系统还原”功能,利用所选系统文件和程序文件的备份将系统还原了以前的状态。不过,“最近一次的正确配置”是将计算机恢复为 Windows 确定可工作的状态,而“系统还原”则允许您选择可将计算机还原的状态。也就是说,“系统还原”保留了多个还原点,而不仅仅是最后一个还原点。 虽然该功能是您所需要使用的,但在某些情况下应当暂时关闭该功能。例如,如果计算机受到病毒感染,则“系统还原”也有可能备份该病毒。默认情况下,Windows 会阻止外来程序对系统还原功能进行修改。因此,您很有可能会不小心恢复受感染的文件,或在线扫描程序会在该位置检测到感染。 重要: 必须以管理员的身份登陆才能使用此功能。否则系统还原选项将不会出现。如果您不知道如何以系统管理员的身份登录,请与系统管理员、计算机制造商或安装者联系。 关闭计算机会将之前所有的还原点清除。 禁用 Windows XP 系统还原: -------------------------------------------------------------------------------- 注意:如下步骤假设您使用的是默认的 Windows XP 开始菜单而非经典开始菜单。要重新启用默认选单,在“开始”上按下右键,选择“内容”,单击开始菜单(非经典菜单)并单击“确定”。 -------------------------------------------------------------------------------- 单击“开始”。 右击“我的电脑”,然后单击“属性”。 单击“系统还原”选项卡。 选中“关闭系统还原”或“关闭所有驱动器上的系统还原”。 单击“应用”,然后单击“确定”。 如前面指出的,这会将之前所有的还原点清除。单击“是”。 单击“确定”。 继续您未完成的工作。完成后请重启计算机并依照下一节的指示来重新开启系统还原。 启用 Windows XP 系统还原: 单击“开始”。 右击“我的电脑”,然后单击“属性”。 单击“系统还原”选项卡。 取消选中“关闭系统还原”或“关闭所有驱动器上的系统还原”。 单击“应用”,然后单击“确定”。
问题四:电脑的系统设置里系统还原是什么意思 系统还原是指:电脑遇到 *** 作系统故障,比如说系统崩溃,系统无法启动之类的问题,实在没有办法解决时,那么只有启动系统还原这一功能了。系统还原功能会恢复你的 *** 作系统到您备份的状态,这样便可解决很多人的电脑 *** 作系统问题。
系统还原会影响 Windows 系统档、程序和注册表设置。它亦可能会变更电脑上的批次档、脚本和其他类型的运行档。系统还原能够设置最高使用15%硬盘空间。旧的还原点将会被删除以保持硬盘在指定的使用量。这能够使很多用户的还原点会被保留大约数星期。有些关切系统性能及硬盘空间的用户可能会完全地关闭系统还原。文件储存在硬磁盘分割将不会被系统还原监控并且不会运行备份或还原
问题五:一键还原系统是什么意思 一键还原系统是一款傻瓜式的系统备份和还原工具。它具有安全、快速、保密性强、压缩率高、兼容性好等特点,特别适合电脑新手和担心 *** 作麻烦的人使用。
安装傻瓜,明了简约 实现一键安装,傻瓜化 *** 作。 *** 作简单,保密可靠 只须按F11键即可还原系统,并设置二级密码保护。 安全高效,性能稳定 以GHOST为内核开发,具有安全、稳定、快速特点。 节约空间,维护方便 手动自动选择备份分区大小,同时高压缩备份文件。独立运行,兼容性好 不占用系统资源,支持多分区格式及Windows系统。快速还原,昨日重现 若感染病毒木马或系统崩溃,快速恢复到健康状态。
问题六:笔记本电脑里的《系统还原》是什么意思啊? 笔记本电脑里的系统还原是指:电脑遇到 *** 作系统故障,比如说系统崩溃,系统无法启动之类的问题,实在没有办法解决时,那么只有启动系统还原这一功能了。系统还原功能会恢复你的 *** 作系统到您备份的状态,这样便可解决很多人的电脑 *** 作系统问题。
系统还原会影响 Windows 系统档、程序和注册表设置。它亦可能会变更电脑上的批次档、脚本和其他类型的运行档。系统还原能够设置触高使用15%硬盘空间。旧的还原点将会被删除以保持硬盘在指定的使用量。这能够使很多用户的还原点会被保留大约数星期。有些关切系统性能及硬盘空间的用户可能会完全地关闭系统还原。文件储存在硬磁盘分割将不会被系统还原监控并且不会运行备份或还原。
问题七:自动还原系统是什么意思 “系统还原”在Windows Me就加入了此功能,并且一直在Windows Me以上的 *** 作系统中使用。“系统还原”的目的是在不需要重新安装 *** 作系统,也不会破坏数据文件的前提下使系统回到工作状态。实用程序在后台运行,并在触发器事件发生时自动创建还原点。触发器事件包括应用程序安装、AutoUpdate 安装、Microsoft 备份应用程序恢复、未经签名的驱动程序安装以及手动创建还原点。默认情况下实用程序每天创建一次还原点。
有时候,安装程序或驱动程序会对电脑造成未预期的变更,甚至导致 Windows 不稳定,发生不正常的行为。通常,解除安装程序或驱动程序可修正此问题。用户便可通过还原点,在不影响个人文件(例如文件、电子邮件或相片)的情况下撤消电脑系统变更。“系统还原”会影响 Windows 系统档、程序和注册表设置。它亦可能会变更电脑上的批次档供脚本和其他类型的运行档。系统还原能够设置最高使用15%硬盘空间。旧的还原点将会被删除以保持硬盘在指定的使用量。这能够使很多用户的还原点会被保留大约数星期。有些关切系统性能及硬盘空间的用户可能会完全地关闭系统还原。文件储存在硬磁盘分割将不会被系统还原监控并且不会运行备份或还原。
上面说了一大堆,其实说白了就是你无需 *** 作,自动将你的系统恢复到你想要的某个时间的系统状态。
问题八:系统还原和系统恢复有什么区别啊 还原大多指用基于 GHOST的软件实现的系统还原,前提是你有系统备份。
系统恢复一般就是系统自带的恢复功能,或者光启系统盘,用系统盘恢复。
前者能将系统还原到你备份系统的状态。例如你 10月1日做了 gho 备份,那么你11月1日使用ghost还原(或者1键还原什么的还原软件)还原系统后,系统就是你10月1日的状态了,你10月1日到11月1日之间安装的软件什么的都没了。
后者是修复受损的系统文件,是被破坏的系统文件得以完整,修复成功的话系统和你修复前使用起来一样,所有安装的软件程序,记录都得以完整保留。
当时修复比起还原来说要麻烦的多,成功率也不是很大。还是推荐使用还原。1个月左右作一次备份吧,省时省力。
问题九:电脑系统备份和系统还原是什么意思 系统备份就是将你电脑中的文件复制一份存放起来,日常 *** 作中,不小心删除或损坏文件后,可以从备份文件中恢复。
你的机子如果是XP系统的话,打开“开始”菜单,选择“程序”-->“附件”-->“系统工具”-->“系统还原”命令,查看系统还原是否打开。系统还原也能恢复文件。
打开后,系统会定期备份,以后如果系统出现问题,可以使用系统还原,选择还原到一个日期,系统就可以恢复了。挺不错的一功能。你的文档也不会丢
系统还原 就是使WINDOWS系统回到“原来”的状态。因为随着我们用计算机,他会不太稳定了,毛病就多多了,特别由于我们安装软件和遭受病毒,好想回到刚装新系统时。安是相当费时间的,是太费时间!怎么样要是来个系统还原,“返老还童”就好了!
好处====节约时间!!!
问题十:系统还原,是什么意思,干什么用的,那么如何系统还原。 系统还原意思就是还原到你备份的那个状态。主要是有时候系统上垃圾,或者不要的软件等等过多,懒得慢慢清理,又 不想重装系统,就还原到备份的那个样子。系统还原的话你先去备份,就那个界面可以还原
以上就是关于linux环境下,设计两个程序,使用管道传输文件,用C语言实现(最好不要调用shell命令)全部的内容,包括:linux环境下,设计两个程序,使用管道传输文件,用C语言实现(最好不要调用shell命令)、fpgaip核最多、系统还原什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)