自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 余秀华:婚姻是一个用了很多年的马桶

今天是个晴好的日子,阴郁了好几天的太阳神气活现地出来了,我把洗了好几天的衣服挂到中庭里:四件衣服,三件是别人不愿意穿了送给我的,一件是几年前在淘宝上买的,穿的时候它总往下掉。那时候我喜欢的一个男诗人被一个漂亮而年轻的女诗人“挖了墙角”(当然到现在我也无法肯定这个事情的真实性,也无法肯定我喜欢他的真实性,我悲哀地发现我喜欢的男人都俗不可耐,我更悲哀地发现我无法打破这个咒语)。当然我也许也不够认真,但是我从此进入了我喜欢的一个生活方式,是的,我喜欢这宁静的没有争吵没有猜忌的日子:一个人的日子。

2024-01-18 17:08:46 534 1

原创 PCIe XDMA

(不支持IO和配置类型事务)在断言usr_irq_req位之后,它必须保持断言状态,直到相应的usr_irq _ack位被断言,并且中断已由主机提供服务并清除为止。xdma基于描述符(‘descriptor’)实现主机内存和DMA子系统之间的数据搬移,这些描述符包含了数据传输的源、目的和数量信息。DMA可以配置为具有被所有通道共享的单个AXI4主接口,或者每个通道启用一个AXI4-Stream接口。如果启用了MSI或MSI-X,断言usr_irq_req的一个或多个位会导致产生MSI或MSI-X中断。

2024-02-29 17:40:23 669

原创 RIFFA架构

上层应用调用用户库函数fpga_send,线程进入内核驱动并且获得了一块预分配的buffer来暂存用户数据。一旦获取了buffer,数据就会被复制到buffer中,以便Endpoint可以访问它。如果数据大小超过了单个buffer,driver会获取另一个buffer,将数据拷贝到新的buffer中。但是不同的宽度在提取和格式化pcie数据时要求不同的逻辑。Upstream transfer的主要不同在于,Endpoint Core 向内核buffer写入数据,由驱动将数据拷贝到用户提供的字节数组中。

2024-02-23 15:59:23 727

原创 RIFFA2框架硬件接口

当CHNL_RX高时,CHNL_RX_LAST、CHNL_RX_LEN、CHNL_RX_OFF都将是有效的。当CHNL_RX_DATA_REN高且CHNL_RX_DATA_VALID为高时,消耗CHNL_RX_DATA上当前可用的数据。CHNL_RX可能拉低但是CHNL_RX_DATA_VALID仍然高,这种情况表明FIFO中仍然有待用户读取的数据。注意,CHNL_RX_DATA上的数据可能在CHNL_RX_ACK被拉高之前开始到达,但FIFO永远不会溢出。CHNL_RX_OFF是0。

2024-02-23 10:53:32 520

原创 Atomic Accesses

如果内容发生改变,ex写失败,slave返回OKAY响应,内存不会更新。多个执行流为了访问临界资源会竞争式的申请信号量, 因此信号量是会被多个执行流同时访问的,也就是说信号量本质也是临界资源。信号量本质是一个计数器, 用于多进程对共享数据对象的读取,它和管道不同,它不以传送数据为主要目的,如果Master尝试对一个不支持独占操作的slave执行ex读,slave返回OKAY响应。不支持ex访问的slave必须为normal和exclusive访问都提供OKAY响应。slave要求额外的逻辑来支持Ex访问。

2024-02-22 14:35:48 474 1

原创 Transaction Ordering

如果读和写事务不重叠,则Master可以启动新事务,而无需等待先前的事务完成。在Master接口侧,来自具有相同ARID值的事务的读数据必须按照Master发出地址的顺序到达。Interconnect必须确保(来自一系列具有相同ARID值的面向不同从设备的事务)读数据被Master按(它发出地址的顺序)序接收。如果Master要求读写之间的关系,那么它必须确保在发出新的事务之前,先前的事务要完成。除非Master知道从设备支持写间插,它必须按照发出事务地址的相同顺序发出写事务的数据。

2024-02-21 17:00:41 387

原创 AXI write data在Write data channel的排布(Burst Adress Calculation)

表示WRAP burst传输的最低address,它的计算公式Wrap_Boundary = (INT(Start_Address / (Number_Bytes × Burst_Length)))× (Number_Bytes × Burst_Length)。:它是Start_Address根据Number_Bytes做对齐之后的值,也就是Aligned_Address = (INT(Start_Address / Number_Bytes)) × Number_Bytes。

2024-02-21 14:54:29 1001

原创 【无标题】

👀。

2024-01-29 16:35:36 347

原创 【无标题】

❤。

2024-01-23 15:12:30 401 1

原创 【无标题】

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S

2024-01-18 16:54:43 512 1

原创 LABVIEW中的变量

错误地使用局部变量和全局变量,如将其取代连线板或用其访问顺序结构中每一帧中的数值,可能在VI中导致不可预期的行为。当第一个操作进行了读取-修改-写入操作,然后才开始第二个操作时,输出结果是正确的,可预知的。在程序框图上,读取局部或全局变量与写入局部或全局变量间的区别相当于输入控件和显示控件间的区别。要避免全局变量引起的竞争状态,可使用功能全局变量保护访问变量操作的关键代码。如使用局部变量将大量数据从程序框图上的某个地方传递到另一个地方,通常会使用更多的内存,最终导致执行速度比使用连线来传递数据更慢。

2024-01-05 10:03:08 1298 1

原创 确定使用何种用户界面事件

在LabVIEW通知下个事件结构之前,当前事件结构中处理过滤事件的分支必须执行完毕。如果某个事件结构改变了事件数据,LabVIEW会将改变后的值传递到整个过程中的每个事件结构。如果某个事件结构放弃了事件,LabVIEW便不把该事件传递给其他事件结构。只有当所有已配置的事件结构处理完事件且未放弃任何事件后,LabVIEW才能完成对触发事件的用户操作的处理。如没有事件分支丢弃事件,LabVIEW会在大多数过滤事件之后生成相应的通知事件。对于通知事件,LabVIEW将事件的副本并行发送至各个处理事件的事件结构。

2024-01-04 11:19:30 382 1

原创 元素同址操作结构:提高内存使用效率

在上面的程序框图中,LabVIEW对一个32位无符号整数数组进行索引,将数组的第三个元素递增,再将新元素替换数组中同一位置上的元素。在上面的程序框图中,元素同址操作结构的数组索引/替换元素边框节点对一个32位无符号整数数组进行索引,将数组的第三个元素递增,再将新元素替换数组中原位置上的元素。元素同址操作结构将数组中每个已索引的元素以结构右侧的节点取代。由于结构要求取代原有的数组元素,而LabVIEW编译器也可识别出需要替换的元素,故LabVIEW无需创建或在内存中保存数组元素的副本。

2024-01-04 10:51:16 413 1

原创 在 LabVIEW 中构建和配置 While 循环

通过使用布尔函数,您可以实现多个条件来影响 while 循环条件终端。您可以使用“或”函数来比较错误线状态和停止按钮控件,以便如果其中一个为 TRUE,则条件端子接收 TRUE 信号,并且 while 循环停止。当VI运行时,While循环内的代码将执行,然后条件终端将被计算。使用结构隧道将数据输入或输出结构,例如 while 循环。如果要将数据发送到 while 循环中,则需要创建结构隧道。b. 从 while 循环中发送的数据仅在最后一次迭代之后发送。

2024-01-04 10:06:14 2379 1

原创 在LabVIEW的For循环和While循环中使用自动索引隧道

如果为连接至While循环的数组启用自动索引,则While循环将以与For循环相同的方式对数组进行索引。如果将一个数组通过自动索引的方式连接至For循环输入端,LabVIEW会把计数终端设置数组的大小,因此您无需连接计数终端。在LabVIEW中,若连线至或接出While循环或For循环,连线的隧道有可能是实心的,也有可能是方括号样式。默认情况下,将任一数组连接到For循环时都会启用自动索引,因为For循环的常见应用是处理单个数组元素。要在自动索引和非索引隧道之间切换,请右键单击隧道,然后选择。

2023-12-28 17:16:25 802 1

原创 串行通讯的基本架构是什么?

如图,我们大部分的串行卡都有一个输入输出的FIFO。串行驱动会自动地把FIFO的数据传输到软件的缓存,这个缓存是可以在应用软件由用户配置的(比如,在LabVIEW可以使用Serial Port Init VI来设置缓存区大小)。读接口的数据实际上包含从软件缓存读的过程。UART不仅控制传输的数据,相应的电平,同时也控制通讯的速度。UART能够存储足够的信息,所以保证了在电脑忙的时候,数据流也能连续传输。这实际上是一个双缓存传输,在UART FIFO和软件的缓存都有溢出的风险。下面附图是理想串行通讯的示意。

2023-12-22 10:16:58 489

原创 LabVIEW中不同颜色连线的含义

LabVIEW中的连线具有不同的颜色,样式和宽度。

2023-12-22 09:44:34 447

原创 输入控件/显示控件、局部变量和值属性节点之间的区别

(和这段C语言代码并不完全等价,但有助于展示更新相应的前面板输入控件/显示控件时,必须执行的步骤)。这种方式的更新逻辑是,当连续更新相同值的时候,可以防止前面板更新。这种方式的更新逻辑是,当连续更新相同值的时候,可以防止前面板更新。(和这段C语言代码并不完全等价,但有助于展示更新相应的前面板控件/指示器必须采取的步骤)。(和这段C语言代码并不完全等价,但有助于展示更新相应的前面板控件/指示器必须采取的步骤)。如果使用非严格类型的控件引用,则值的数据类型可以是变化的而不是控件的实际数据类型。

2023-12-21 16:38:07 518

原创 在Windows 7 64位上使用SQL Toolkit或Database Connectivity Toolkit时出现错误-2147467259

32位LabVIEW或LabWindows/CVI应用程序若尝试使用64位odbcad32.exe创建的DSN连接到数据库,这在架构上是不可能的。首先应确保安装了32位版本的MySQL。出现此错误是由于,在本应使用32位版本的odbcad32.exe(ODBC数据源管理器程序)来配置数据库的数据源名称(DSN)时,错误地使用了64位版本的ODBC数据源管理器程序。1.修复ODBC设置。为此,请打开64位版本的odbcad32.exe ,删除数据库配置,然后以管理员身份打开32位版本并在那里配置数据库。

2023-12-21 14:44:20 447

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除