<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[pine222的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/pine222</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; pine222]]></copyright><item><title><![CDATA[PCIE传输层验证测试点（part 1）]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/136025525</link><guid>https://blog.youkuaiyun.com/pine222/article/details/136025525</guid><author>pine222</author><pubDate>Sun, 04 Feb 2024 14:37:14 +0800</pubDate><description><![CDATA[本文列举出了pcie 传输层的测试要点]]></description><category></category></item><item><title><![CDATA[ARM ACE协议学习（一）]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/110043638</link><guid>https://blog.youkuaiyun.com/pine222/article/details/110043638</guid><author>pine222</author><pubDate>Tue, 24 Nov 2020 10:25:36 +0800</pubDate><description><![CDATA[资料来源于ARM AXI4_specification

转自：https://www.pianshen.com/article/4284349981/

ACE为AXI缓存扩展接口
ACE协议特点：
1、正确的跨缓存共享（CACHEs）
2、具有不同特征的器件交互
3、最大利用缓存数据
4、高性能低功耗之间的选择

ACE协议提供了系统级一致性框架，系统级设计包括
1、一致性存储范围
2、具有一致性扩展的存储系统器件
3、系统器件之间交互的软件模型

ACE协议实现通过
1、五个状态缓存模型，指明了Ca.]]></description><category></category></item><item><title><![CDATA[sed用法大全（6） pattern space and hold space 应用]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/108003563</link><guid>https://blog.youkuaiyun.com/pine222/article/details/108003563</guid><author>pine222</author><pubDate>Fri, 14 Aug 2020 14:23:29 +0800</pubDate><description><![CDATA[会使用到的命令

h：模式空间–&gt;覆盖–&gt;保持空间

H：模式空间–&gt;追加–&gt;保持空间（加在原有内容之后）

g：保持空间–&gt;覆盖–&gt;模式空间

G：保持空间–&gt;追加–&gt;模式空间（加在原有内容之后）

x：模式空间&lt;–交换–&gt;保持空间

d：删除模式空间中的内容

D：如果模式空间中的内容为多行时，删除模式空间中的第一行

n：读取匹配到的行的下一行到模式空间中（覆盖原内容）

N：读取匹配到的行的下一行到模式空间中（追加在原内容之后）




.]]></description><category></category></item><item><title><![CDATA[sed用法大全（5） pattern space and name space 模式空间和保持空间]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/108003445</link><guid>https://blog.youkuaiyun.com/pine222/article/details/108003445</guid><author>pine222</author><pubDate>Fri, 14 Aug 2020 14:12:32 +0800</pubDate><description><![CDATA[模式空间：可以想成工程里面的流水线，数据之间在它上面进行处理。

保持空间：可以想象成仓库，我们在进行数据处理的时候，作为数据的暂存区域。

正常情况下，如果不显示使用某些高级命令，保持空间不会使用到！







最一開始，pattern space和hold space是空的。

接著開始循環。

1. sed一次從檔案取出一行，刪除結尾的 \n，再放到 pattern space。

2. 比對address或command s 的pattern，如果比對正確才會執行command。

  如...]]></description><category></category></item><item><title><![CDATA[sed用法大全（4） 插入]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/108003391</link><guid>https://blog.youkuaiyun.com/pine222/article/details/108003391</guid><author>pine222</author><pubDate>Fri, 14 Aug 2020 14:09:42 +0800</pubDate><description><![CDATA[行首插入

sed '1i\++anc+++' filename


]]></description><category></category></item><item><title><![CDATA[sed用法大全（3） 查看]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/108003290</link><guid>https://blog.youkuaiyun.com/pine222/article/details/108003290</guid><author>pine222</author><pubDate>Fri, 14 Aug 2020 14:06:35 +0800</pubDate><description><![CDATA[查看指定行

sed -n '45p' file.txt #查看45行的数据

sed -n '45,50p' file.txt #查看45-50行的数据

Use-nto suppress output, and thepcommand to print specific lines.

-n

By default,sedprints out the pattern space at the end of each cycle through the script .These opti...]]></description><category></category></item><item><title><![CDATA[sed用法大全（2） 删除]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/108003197</link><guid>https://blog.youkuaiyun.com/pine222/article/details/108003197</guid><author>pine222</author><pubDate>Fri, 14 Aug 2020 14:03:20 +0800</pubDate><description><![CDATA[1)删除匹配行的后两行

sed '/bc_mac_unit/,+2d'



2）删除匹配行的前两行，有两种做法，

第一种做法先把line reverse, 在进行正向的删除
tac | sed '/banana/I,+2 d' | tac （慢，适合行数不多的）

grep -A4 SDFCOM_CFIIS filename| tac | sed '/anc/,+4d' | tac

.第二种做法
使用sed的多行操作。利用hold space实现，后面的文章中会讲到

3) 删除匹配行之前的所有..]]></description><category></category></item><item><title><![CDATA[sed用法大全（1） 替换]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/108003129</link><guid>https://blog.youkuaiyun.com/pine222/article/details/108003129</guid><author>pine222</author><pubDate>Fri, 14 Aug 2020 13:59:42 +0800</pubDate><description><![CDATA[1)下面的命令只替换第3到第6行的文本：

sed "3,6s/my/your/g" pets.txt



2)只替换每一行的第一个s：

sed "s/s/S/1" my.txt

g的作用是替换一行的所有



3)隔3行替换一次

$ seq 6 | sed 'n;n;s/./x/'

1

2

x

4

5

x

还可以写为：

$ seq 6 | sed '0~3s/./x/'

1

2

x

4

5

x



4）查找到匹配的行就进行替换

/pattern/s/patte...]]></description><category></category></item><item><title><![CDATA[systemverilog 接口理解interface]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/103288930</link><guid>https://blog.youkuaiyun.com/pine222/article/details/103288930</guid><author>pine222</author><pubDate>Thu, 28 Nov 2019 11:27:53 +0800</pubDate><description><![CDATA[接口的含义就是一组信号，可以理解为一个类，interface里面的信号就是类的成员，其本质和类并无区别

全部使用时可以直接用来替换端口，

例如：

module a(input i_0, ouput_o_1);

endmodule

可以替换为如下：

interface intf();

  logic i_0;

  logic o_0;

endinterface

mod...]]></description><category></category></item><item><title><![CDATA[寄存器模型理解]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/103279192</link><guid>https://blog.youkuaiyun.com/pine222/article/details/103279192</guid><author>pine222</author><pubDate>Wed, 27 Nov 2019 17:28:01 +0800</pubDate><description><![CDATA[寄存器模型 是一个model, 模拟的是reg的行为，就像reference model 模拟的是design的行为

需求：



包括各个寄存器字段描述、寄存器、寄存器组、寄存器地址映射等信息。









前门和后门访问

前门访问需要adapter






...]]></description><category></category></item><item><title><![CDATA[CFI与SPI flash区别]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/47090041</link><guid>https://blog.youkuaiyun.com/pine222/article/details/47090041</guid><author>pine222</author><pubDate>Mon, 27 Jul 2015 20:06:01 +0800</pubDate><description><![CDATA[1. flash按照内部存储结构不同，分为两种：nor flash和nand flash。

nor flash：像访问SDRAM一样，按照数据/地址总线直接访问, 可写的次数较少，速度也慢，由于其读时序类似于SRAM，读地址是线性结构，多用于程序代码的存储.

nand flash：只有8位/16位/32位甚至更多位宽的总线，每次访问，都要将长地址分为几部分，一点点的分布传入才能访问na]]></description><category></category></item><item><title><![CDATA[verilog中generate的用法]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/47087307</link><guid>https://blog.youkuaiyun.com/pine222/article/details/47087307</guid><author>pine222</author><pubDate>Mon, 27 Jul 2015 16:49:08 +0800</pubDate><description><![CDATA[一：generate
Verilog-2001添加了generate循环，允许产生module和primitive的多个实例化，同时也可以产生多个variable，net，task，function，continous assignment，initial和always。在generate语句中可以引入if-else和case语句，根据条件不同产生不同的实例化。
用法：
1. generat]]></description><category></category></item><item><title><![CDATA[Verilog中parameter和define的区别]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/47080117</link><guid>https://blog.youkuaiyun.com/pine222/article/details/47080117</guid><author>pine222</author><pubDate>Mon, 27 Jul 2015 09:28:03 +0800</pubDate><description><![CDATA[1、语法

声明：

parameter data = 8‘d14;

`define data 8’d14

使用：
       data

`data

2、作用域

parameter 作用于声明的那个文件；`define 从编译器读到这条指令开始到编译结束都有效，或者遇到`undef命令使之失效。

如果想让parameter或`define作用于整个项]]></description><category></category></item><item><title><![CDATA[openrisc u-boot移植]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/46352195</link><guid>https://blog.youkuaiyun.com/pine222/article/details/46352195</guid><author>pine222</author><pubDate>Wed, 03 Jun 2015 22:17:17 +0800</pubDate><description><![CDATA[遇到的问题：1,权限问题  
                           原因：在mnt下进行操作不行，要复制到其他盘进行操作
                        2. arm-linux-ld.bfd:u-boot.lds:1: ignoring invalid character `#'
 in expression
            原因：因为在inclu]]></description><category></category></item><item><title><![CDATA[为何C语言（的函数调用）需要堆栈，而汇编语言却不需要堆栈]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/44347283</link><guid>https://blog.youkuaiyun.com/pine222/article/details/44347283</guid><author>pine222</author><pubDate>Tue, 17 Mar 2015 20:18:59 +0800</pubDate><description><![CDATA[之前看了很多关于uboot的分析，其中就有说要为C语言的运行，准备好堆栈。

而自己在Uboot的start.S汇编代码中，关于系统初始化，也看到有堆栈指针初始化这个动作。但是，从来只是看到有人说系统初始化要初始化堆栈，即正确给堆栈指针sp赋值，但是却从来没有看到有人解释，为何要初始化堆栈。所以，接下来的内容，就是经过一定的探究，试图来解释一下，为何要初始化堆栈，即：

为何C语言的函数调]]></description><category></category></item><item><title><![CDATA[vlog参数及其含义]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/44205501</link><guid>https://blog.youkuaiyun.com/pine222/article/details/44205501</guid><author>pine222</author><pubDate>Wed, 11 Mar 2015 21:52:38 +0800</pubDate><description><![CDATA[VLOG
The vlog command compiles Verilog source code and SystemVerilog extensions into a
specified working library (or to the work library by default).
The vlog command may be invoked from within Mod]]></description><category></category></item><item><title><![CDATA[linux系统移植概述]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/41446663</link><guid>https://blog.youkuaiyun.com/pine222/article/details/41446663</guid><author>pine222</author><pubDate>Mon, 24 Nov 2014 16:15:17 +0800</pubDate><description><![CDATA[【转】

与其它操作系统相比，Linux最大的特点：它是一款遵循GPL的操作系统，我们可以自由地使用、修改、和扩展它。正是由于这一特色，Linux受到越来越多人士的青睐。于是，一个经常会被探讨的问题出现了，即关于Linux系统的移植。对于操作系统而言，这种移植通常是跨平台的、与硬件相关的，即硬件系统结构、甚至CPU不同。下面就让我们来看看在Linux系统移植方面，我们都需要做些什么。
一、L]]></description><category></category></item><item><title><![CDATA[关于单片机串口原理]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/41356585</link><guid>https://blog.youkuaiyun.com/pine222/article/details/41356585</guid><author>pine222</author><pubDate>Fri, 21 Nov 2014 20:43:26 +0800</pubDate><description><![CDATA[C语言中
EA = 1;  //允许总中断
ES = 1;  //允许串口中断
汇编中可用
SETB  EA  ;允许总中断
SETB  ES  ;允许串口中断

当单片机接收到一帧数据后，RI会置1，向CPU申请中断，若之前有中断允许，则产生了中断，进入中断服务程序。当然，单片机发送完一帧数据，TI也会置1，同样会产生中断！

一般我们在发送数据时要关中断，因为一般你不用在发送时不用处理数据；接]]></description><category></category></item><item><title><![CDATA[ROM,DRAM,SRAM,SDRAM的区别]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/40794199</link><guid>https://blog.youkuaiyun.com/pine222/article/details/40794199</guid><author>pine222</author><pubDate>Tue, 04 Nov 2014 21:48:46 +0800</pubDate><description><![CDATA[ROM是只读内存（Read-Only Memory）的简称，是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中，资料并且不会因为电源关闭而消失
DRAM（Dynamic Random Access Memory），即动态随机存取存储器最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据，DRAM使用电]]></description><category></category></item><item><title><![CDATA[宏定义函数用法]]></title><link>https://blog.youkuaiyun.com/pine222/article/details/24535607</link><guid>https://blog.youkuaiyun.com/pine222/article/details/24535607</guid><author>pine222</author><pubDate>Sat, 26 Apr 2014 15:27:50 +0800</pubDate><description><![CDATA[先上一段代码：
///////////////////////////////////////////////////////////////////////////////////////////////////////
//下面这个函数是什么用法,ln10定义了如下函数（宏定义） 
#define list_for_each_entry_bssdes(pos, head, member)]]></description><category></category></item></channel></rss>