<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Chauncey_wu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Chauncey_wu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Chauncey_wu]]></copyright><item><title><![CDATA[verilog语法-----generate结构-（IEEE Std 1364™-2005翻译）]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/106184799</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/106184799</guid><author>Chauncey_wu</author><pubDate>Mon, 18 May 2020 21:46:33 +0800</pubDate><description><![CDATA[verilog语法-----generate结构
文章主要观点是从verilog-IEEE-2005里面提取的，讲的不透彻的，可以查看英文原本

Generate constructs
	generate constructs用于在一个module中生成有条件的或嵌套的generate blocks。generate blocks是一个或多个module的集合。generate blocks可能不包含端口声明，参数声明，特定块或specparam声明。包含generate blocks在内的所有其他中mod]]></description><category></category></item><item><title><![CDATA[内嵌约束中local的用法]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105579913</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105579913</guid><author>Chauncey_wu</author><pubDate>Fri, 17 Apr 2020 14:34:26 +0800</pubDate><description><![CDATA[在使用内嵌约束(inline constraint) randomsize() with {CONSTRAINT}时，约束体中的变量名的查找顺序默认是从被随机化对象开始查找的，但如果调用randomize()的函数局部域(local scope) 中也有同名变量，那么就需要使用local::来显示声明该变量来源于外部函数，而非被随机化的对象（在约束中也可用this/super来索引这些变量）。
...]]></description><category></category></item><item><title><![CDATA[systemverilog随机函数]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105440262</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105440262</guid><author>Chauncey_wu</author><pubDate>Fri, 10 Apr 2020 19:22:40 +0800</pubDate><description><![CDATA[随机函数
1.pre_randmosize() 和post_randmosize

有时需要在定义randmosize之前或之后立即执行一些操作，例如在随机前设置类型的一些非随机变量（上下限，条件值），或者在随机化之后需要计算随机数据的误差，分析与记录随机数据等。
Sv中预定义的两个void类型函数。用户可以在类中定义这两个函数，分别定义随机化前和随机化后的行为。
如果某个类中定义了pre_ran...]]></description><category></category></item><item><title><![CDATA[创建一个简单的systemverilog程序]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105128568</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105128568</guid><author>Chauncey_wu</author><pubDate>Thu, 26 Mar 2020 21:27:14 +0800</pubDate><description><![CDATA[例如. Hello world！
作为一个面向对象的语言，免不了来一个国际惯例： Hello world！
下面是完整的代码：
program tb();
  initial begin
    $display("Hello, world!");
  end
endprogram

用VCS进行编译和运行：
Hello, world!
    代码解释：跟c语言的main函数类似，sv语言需要一...]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（9）-------events and inter-process communication]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105119213</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105119213</guid><author>Chauncey_wu</author><pubDate>Thu, 26 Mar 2020 17:39:06 +0800</pubDate><description><![CDATA[1.topics

event：主要实现握手
semaphores：共享资源管理
mailboxes：类似FIFO，传输数据时可以作为缓存


]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（8）-------threads and inter-process communication]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105100444</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105100444</guid><author>Chauncey_wu</author><pubDate>Thu, 26 Mar 2020 00:32:27 +0800</pubDate><description><![CDATA[1.topics

threads :线程
semaphores：信号量
2.threads

verilog里面：begin…end（顺序执行） ，fork…join（并发执行）可以构成线程。

fork…join：三个线程同时跑，同时结束（取决于耗时最长的线程）
fork…join_any：三个线程同时跑，任何一个线程跑完了就可以跑下面一个线程
fork…join_none：出现的三个线程当做...]]></description><category></category></item><item><title><![CDATA[System Verilog OOP 学习笔记]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105090953</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/105090953</guid><author>Chauncey_wu</author><pubDate>Wed, 25 Mar 2020 11:25:43 +0800</pubDate><description><![CDATA[原文链接：https://www.cnblogs.com/loves6036/p/5568036.html

1、OOP术语

a.类(class)：包含变量和子程序(函数或者任务)的基本构建块。
b.对象(object)：类的一个实例。
c.句柄(handle)：指向对象的指针。
d.属性(property):存储数据变量。
e.方法(method)：任务或者函数中操作变量的程序性代码。
f.原...]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（7）-------随机化]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104998293</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104998293</guid><author>Chauncey_wu</author><pubDate>Tue, 24 Mar 2020 20:07:40 +0800</pubDate><description><![CDATA[1.randomization topics


constrained ：受约束的




]]></description><category></category></item><item><title><![CDATA[PCIe的IP核接口信号介绍]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104934029</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104934029</guid><author>Chauncey_wu</author><pubDate>Wed, 18 Mar 2020 22:28:08 +0800</pubDate><description><![CDATA[xapp1052给的IP核接口，From pg054：
1.tx是针对用户逻辑说的，实际对应IP个接收。
2.rx采用雷同于tx接口，只说几个关键的信号。
3.物理层接口为用户监控链接状态时使用，简单介绍一下，具体查阅pg054。
4.用户通过配置接口能监控终端模式下PCI Express的配置空间。用户给出10-bit的配置地址，选择1024个DWORD配置寄存器中的一个，终端通过32-bit的...]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（6）-------OOP]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104848226</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104848226</guid><author>Chauncey_wu</author><pubDate>Sat, 14 Mar 2020 20:40:56 +0800</pubDate><description><![CDATA[Object Oriented Programming
1.topic

terminology ：术语
oop：将数据和对数据的一些操作封装在class里
inheritance ：继承
polymorphism ：多态
2. introduction

oop：将数据和对数据的一些操作封装在一起
transaction：OOP也称为transaction的建模

OOP封装在class里面，类...]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（5）-------Procedural statements and Routiness]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104841326</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104841326</guid><author>Chauncey_wu</author><pubDate>Fri, 13 Mar 2020 17:35:02 +0800</pubDate><description><![CDATA[1.outline

SV里面对task和function进行加强。
2. task and function

支持自增自减，但是很可能会产生race；


支持逻辑判断符，当比较元素含x或z时，最终返回的结果是x或z；
x或z只能在表达式的右侧，在左侧时则无法判断；
3.inside

用于定义某个值得范围；
4.强制转换(tpye,size,sign)

size `(exp)

5. lo...]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（4）-------data types(2/2)]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104829389</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104829389</guid><author>Chauncey_wu</author><pubDate>Fri, 13 Mar 2020 00:39:42 +0800</pubDate><description><![CDATA[1.topic

2.dynamic array


声明动态数组一般用：【】
new 【】：可用于定义数组宽度，；
数据类型和宽度一致的固定数组也可以赋值给动态数组，满足一致条件也可以相互赋值；

上图：示例
dyn.delete() ：删掉原来所有元素；
动态数组有内建函数，delete，size等；
3.queue


能排序，查找，插入，删除；
不需要new【】声明操作；
支持入栈，出栈；...]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（3）-------data types(1/2)]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104824351</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104824351</guid><author>Chauncey_wu</author><pubDate>Thu, 12 Mar 2020 20:57:39 +0800</pubDate><description><![CDATA[1.overview

enumenrated：枚举

Two-state ：双状态数据，相对于四状态（0,1，x，z）数据而言的，最简单的双状态类型bit；
strings ：字符串

（左上角一个单撇）：表示位扩展信号，可以将每一位扩展为指定值；但是注意全1是不能扩展的，必须全部写出来，如上例data= 64hffffffffffffffff。（verilog语法）

SV里面数据扩展一个单撇...]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（2）------- Systemverilog Interface]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104804392</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104804392</guid><author>Chauncey_wu</author><pubDate>Thu, 12 Mar 2020 15:01:08 +0800</pubDate><description><![CDATA[1.outline

Interface是SV里面新增加的概念；
Stimulus timing:仿真的区间或者区域；
Clocking Blocks :interface里面用于同步的关键字；
connecting tsetbench and design

sv里面增加了.和interface，共三种连接方式，verilog通过名称例化实现。

.：*（*是通配符）主要用于连接相同名字的变量自...]]></description><category></category></item><item><title><![CDATA[Systemverilog语言（1）]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104797257</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104797257</guid><author>Chauncey_wu</author><pubDate>Wed, 11 Mar 2020 21:13:22 +0800</pubDate><description><![CDATA[Course Overview




assertions(断言)：检查时序非常有效；周期段、跨时钟域检查。
2.systemverilog构建testbench的一般环节：

3.Soc design flow

(1):Regression：违规测试；新加的功能不会影响原来的功能。
(2):DFT：design for test.主要为了测试芯片是否有物理缺陷。
(3):纳米级线延时可能比逻...]]></description><category></category></item><item><title><![CDATA[Xilinx原语]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104685378</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104685378</guid><author>Chauncey_wu</author><pubDate>Thu, 05 Mar 2020 23:27:45 +0800</pubDate><description><![CDATA[原语，即primitive。不同的厂商，原语不同；同一家的FPGA，不同型号的芯片，可以也不一样；原语类似最底层的描述方法。使用原语的好处，可以直接例化使用，不用定制IP；即可通过复制原语的语句，然后例化IP，就可使用；Xilinx是通过直接修改原语中的参数再例化IP来使用；Xilinx公司的原语分为10类，包括：计算组件，IO端口组件，寄存器/锁存器，时钟组件，处理器组件，移位寄存器，配置和检...]]></description><category></category></item><item><title><![CDATA[仲裁器---总线仲裁器（CPU自制）]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104653359</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104653359</guid><author>Chauncey_wu</author><pubDate>Wed, 04 Mar 2020 14:39:50 +0800</pubDate><description><![CDATA[下面是一个总线仲裁的逻辑和简单tb，实际参考网上常见的那一个版本，但是有点问题纠正一下。
http://blog.eetop.cn/blog-317611-13565.html
//以输入信号作为状态机的转移条件，写得比较冗余
//优先级排序ABC
// 总线上挂3个信号A,B,C，仲裁信号grant[1:0]。
// grant[1:0]=2’b00   A获得总线
// gr...]]></description><category></category></item><item><title><![CDATA[MIG连载-----读模块（4）]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104530975</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104530975</guid><author>Chauncey_wu</author><pubDate>Tue, 03 Mar 2020 21:02:23 +0800</pubDate><description><![CDATA[读时序图（手册）



]]></description><category></category></item><item><title><![CDATA[MIG连载-----写模块（3）]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104525931</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104525931</guid><author>Chauncey_wu</author><pubDate>Tue, 03 Mar 2020 16:09:29 +0800</pubDate><description><![CDATA[写模块总体框图

写模块分别用命令fifo和数据fifo里面读取数据；
a7_wr_bl :用户接口突发传输的数据个数n，则传输的总bit数位128*n。
app_rdy，app_wdf_rdy :来自IP核分别表示IP和准备好接受数据和写数据准备好写入。
写时序图

1.wr_bl,addr_init:用于将数据缓存起来，因为a7_wr_start有效一个时钟周期
2.wr_flag :指示可以...]]></description><category></category></item><item><title><![CDATA[MIG连载-----7系列MIG介绍（2）]]></title><link>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104413334</link><guid>https://blog.youkuaiyun.com/Chauncey_wu/article/details/104413334</guid><author>Chauncey_wu</author><pubDate>Wed, 26 Feb 2020 21:46:57 +0800</pubDate><description><![CDATA[Spartan6 DDR占用MCB资源（硬核资源），7系列占用MIG资源；
1.添加IP
博文较多，此处至重点介绍其中关键信息；

Clock Period : 指的是IP核给DDR3的时钟，和速度等级有关，-n，其中n越大则最高频率越大。
PHY to Controler Clock Ratio :
Memory Part :若用的DDR选项里没有，可以先点击Creat Custom Part ...]]></description><category></category></item></channel></rss>