- 博客(23)
- 资源 (4)
- 收藏
- 关注
原创 zynq的启动方式学习
Zynq-7000AP SOC器件有效利用了片上CPU来帮忙配置。在没有外部JTAG的情况下,处理系统(PS)与可编程逻辑(PL)都必须依靠PS来完成芯片的初始化配置。 ZYNQ的两种启动模式:从BootROM主动启动,从JTAG被动启动。 ZYNQ的启动配置分多级进行的。配置至少需要两步,但通常按如下三个阶段进行: 阶段0:该阶段简称为BootROM,控制着整个芯片的初始化过程。放在Boot
2017-02-20 14:25:20 5849 1
原创 zynq的HDMI接口设计
HDMI设计:高清晰度多媒体接口 是一种数字化视频/音频接口技术,最高数据传输速度为5Gbps(目前到10Gbps)。 1、 HDMI传输原理 HDMI系统的架构由信源(source)和信宿(sink)组成。一个设备上可以有多个HDMO接口,但是每个接口都要遵循HDMI信源和信宿的结构。其接口架构图如下: HDMI接口包括3个TMDS数据信道和1个TMDS时钟信道。 TMDS差分传
2017-02-17 22:07:21 3905
原创 C++语法(二)
二、处理数据 1、整型:就是没有小数部分的数字。不同C++整型使用不同的内存量来存储整数。 整型short、int、long和long long: 使用sizeof运算符返回类型或变量的长度的办法。 2、初始化: 注意:如果不对函数内部定义的变量进行初始化,该变量的值将是不确定的。这意味着该变量的值将是它被创建之前,相应内存单元保存的值。 3、成员函数cout.put():
2017-02-16 23:47:51 403
原创 zynq的学习(二)
三、 AMBA协议规范 在片上系统(SOC)设计中,高级微控制器总线结构(AMBA)用于片上总线。 AMBA规范(版本4)定义了7个总线/接口: 1) AXI一致性扩展(ACE) 2) AXI一致性扩展简化(ACE-Lite) 3) 高级可扩展接口4(AXI 4) 4) 高级可扩展接口4简化(AXI4-Lite) 5) 高级可扩展接口流(AXI4-Stream) 6)
2017-02-14 14:36:20 1582
原创 zynq的学习(一)
一、 可编程SOC设计 可编程片上系统(p-soc):包含嵌入式的软核/硬核处理器、存储器和硬件加速器。 硬核处理器:使用硅片上专门的单元实现一个处理器称为硬核处理器。硬核处理器会将一些硬核(如:PowerPC)到FPGA芯片中。 软核处理器:通过使用FPGA片内的设计资源(LUT、BRAM)实现的一个处理器称为软核处理器。软核处理器通过HDL语言或者网表进行描述,必须综合才能使用。1、可编
2017-02-14 13:38:59 2252
原创 linux常用命令总结
学习linux也有一阵子了,现总结一些常用的linux操作命令,方便大家查找 1、 cd命令 这个命令是最基本的也是最常用的。它用于切换当前目录,可以是绝对路径,也可以是相对路径。例: cd /root/home/quan/ #切换到目录/root/home/quan/下 cd ../ #切换到上一级目录 cd ../quan
2017-02-13 15:31:24 520
原创 c++语法(一)
一、 进入C++ 首先介绍一个显示消息的简单C++程序,利用cout生成字符输出。源代码中对注释//忽略。C++对大小写敏感。文件的扩展名为cpp 例:myfirst.cpp 其中endl代表换行。 该程序包含以下元素: 1) 注释,由前缀//标识 2) 预处理器编译指令#include。可以通过手册或在线帮助查看函数描述确定使用头文件。 3) 函数头:int main()
2017-02-12 23:06:03 453
原创 systemverilog语法(十)
二十一、高级接口 虚接口(virtual interface)是一个物理接口的句柄(handle)。 虚接口和对应的通用方法可以把设计和验证平台分隔开来,保证其不受设计改动的影响。当我们对一个设计引脚名字进行改动时,无须改动驱动这个接口的方法,而只需在例化该实物交易处理器的时候,给虚接口绑定对应连接的实体接口即可。以此来实现实物交易处理器的更大重用性。 虚接口的定义:virtual inter
2017-02-12 20:34:06 7898
原创 systemverilog语法(九)
二十、功能覆盖率 功能覆盖率是用来衡量哪些设计特征已经被测试程序试过的一个指标。 1、 覆盖率的类型: 1) 代码覆盖率:衡量多少代码已经被执行过。一般都通过调用代码覆盖率的命令即可实现。 2) 功能覆盖率:确保设计实现了所有的特性。 3)断言覆盖率:一般检查设计中的关键信号是否正确执行,特别是时序检查时需用到断言。 2、覆盖率一般出现的情况,根据下图进行相应的操作,例: 2、
2017-02-12 15:55:30 3883
原创 systemverilog语法(八)
十九、面向对象编程的高级技巧 继承:允许从一个现存的类得到一个新的类并共享其变量和子程序。原始类被称为基类或者超类,而新类因为扩展了基类的功能,被称为扩展类。 OOP真正强大的地方在于它可以使你继承现有类。 1、例:事务基类 扩展类: 将类中的子程序定义成虚拟的,这样 它就可以在扩展类中重新定义,这一点适用于所有的任务和函数,除了new函数。 OOP中类的变量称为属性,而任务
2017-02-12 15:25:34 2996
原创 systemverilog语法(七)
十七、线程 线程的量级比进程小,其代码和存储区可共享,而且所消耗的资源比典型的进程小的多。 1、 线程的使用 1) begin ••••end顺序执行、fork•••join并行执行 2) fork•••join、fork•••join_none、fork••••join_any的区别 注意:1)fork•••join_none块后的那个语句执行早于fork_none内的任何语
2017-02-12 10:15:47 12626
原创 systemverilog语法(六)
十六、随机化 通过随机化可以通过利用CPU的时间来换取人工检查的时间,提高效率,提供足够的激励。 采用受约束的随机测试法(CRT)产生测试集:使用随机的数据流为DUT产生输入的测试代码。改变伪随机数发生器(PRNG)的种子(seed)。 一般会在测试设计时考虑设计规范的边界处,甚至测试设计规范之外的行为。 1、 简单的随机变量的简单类 例: Randc表示周期随机性,即所有的
2017-02-11 17:20:40 31535 2
原创 systemverilog语法(五)
十四、面向对象的基础(oop) 1、 oop术语: 类(class):包含变量和子程序的基本构建块。 对象(object):类的实例 句柄(handle):指向对象的指针。一个句柄可以指向很多对象。 属性(property):存储数据的变量 方法(method):任务或者函数中操作的程序性代码 原型(prototype):程序的头,包括程序名、返回类型和参数列表 2、 声明和使用
2017-02-11 13:29:21 13289
原创 systemverilog语法(四)
十三:systemverilog断言(SVA) 1、 立即断言:检测设计或者测试模块中信号的正确性 例:检测grant信号的正确性 如果正确产生grant信号,则继续执行,若不符合期望值,则报错。报错信息如下: 2、 定制断言行为:如果想改变默认的消息,可以添加自己的输出信息。 Systemverilog有4个输出消息的函数:info,info,warning,error和
2017-02-11 12:45:05 4680
原创 systemverilog语法(三)
十二、连接设计和测试平台 验证设计的几个步骤:生成输入激励,捕获输出响应,决定对错和衡量进度 测试平台-设计环境: 1、 使用接口将所有信号捆绑起来 例: 在test中使用接口:其中arbif越短越好 例: 在top中使用接口: 例: 2、 使用modport将接口中的信号分组 例: 3、 使用时钟块控制同步信号的时序 一个接口可以包含多个时钟块,每个时钟块对
2017-02-11 12:29:39 6138
原创 systemverilog语法(二)
九、过程语句和子程序 1、过程语句:begin•••end、fork•••join。 用于循环的continue:表示跳过本轮循环剩下的语句直接进入下一轮循环。 Break:用于终止并跳出循环。 2、任务task、函数function以及void函数 任务消耗时间而函数不消耗。 如果你想调用函数并且忽略它的返回值,可以使用void进行结果转换。 例: 3、在子程序中去掉begin•
2017-02-11 11:26:02 10025
原创 systemVerilog语法(一)
一、验证导论: 作为一个验证工程师,最重要的原则是“程序漏洞利大于弊” 设计流程:1)阅读硬件规范,解析其中的自然语言表述。2)使用RTL代码之类的机器语言创建相应的逻辑。 验证流程:1)阅读硬件规范,制定验证计划。2)创建测试来检查RTL代码是否实现所有特性。 单一的BFM测试平台: 多个BFM测试平台:二、数据类型: 1、Logic:任何使用wire或者reg的信号在测试平台是都可
2017-02-11 00:42:07 39323 1
原创 linux系统上实现vivado调用VCS仿真教程
在linux系统上实现vivado调用VCS仿真教程 作用:vivado调用VCS仿真可以加快工程的仿真和调试,提高效率。 前期准备:确认安装vivado软件和VCS软件 VCS软件最好安装VCS-MX的版本,可以混合编译Verilog和VHDL语言由于在linux系统中个人用户各种权限被限制,导致很多地方无法正常使用软件之间的协调工作。 为了以防万一,在此以个人用户去实现vivado调用V
2017-02-11 00:30:16 7930
原创 linux下语法高亮设置
目的:方便查阅代码,有利于debug和设计 步骤:此处以systemverilog为例 1、 在网上下载相关语法高亮的文件。包括以下三个文件(ftdetect、indent、syntax) 2、 把这三个文件放在本地路径下。如图: 若没有.vim文件夹,则在自己本地路径下创建(创建文件夹命令mkdir .vim)。 3、 关闭终端重启终端,则可看见语法高亮。如图:
2017-02-11 00:19:08 1965
原创 linux系统下的快捷方式设置
##############################Shortcut key configuration################## User specific aliases and functionsalias grep='grep -i --color'alias c='clear'alias p='pwd'alias g='gedit'cdl
2017-02-03 14:51:46 556
原创 perl正则表达式
正则表达式总结. 任何单字符的通配符,除了\n(换行符)* 匹配前面的内容零次或多次\t 匹配制表符+ 匹配前一个条目一次以上\(num) 匹配num个同样的内容| 匹配左边或者右边都可以^ 匹配开头的脱字符(用来表示开头)\d 匹配任意字符集【0-9】\w 匹配任意数字、字母和下划线\w+ 匹配多个数字、字母或者下划线\s 匹配空白(换页、制表、换行、
2017-02-03 11:19:27 441
原创 makefile命令整理
+ INCDIR +目录+添加包括文件夹-P pli.tab定义PLI的列表(表)文件+ V2K使用推荐的标准-y定义的Verilog的库-notice显示详尽的诊断信息+ nospecify不对SPECIFY模块进行时序检查和路径延时计算+ notimingcheck不进行时序检查,但是还是把路径延时加入仿真中-location显示完整路径VCS安装这个平台。-
2017-02-03 11:18:09 7235
原创 IC、FPGA验证学习
----------------------------------入门学习-------------------------一、 学习数电,掌握数电中的一些基本概念(特别是要学会看时序图)二、 查找资料,了解FPGA的一些基本结构和用途以及发展方向三、 学习Verilog语言,掌握一些基本的语法,最好是能够根据时序图或者原理编写代码实现其功能。期间还要学会FPGA的开发流程,ISE或
2017-02-03 11:10:34 9214 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人