网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 芯片验证调试手册(验证疑难点工作锦囊)
分类 科学技术-工业科技-电子通讯
作者 刘斌
出版社 电子工业出版社
下载
简介
内容推荐
资深芯片验证专家刘斌(路桑)围绕目前芯片功能验证的主流方法——动态仿真面临的日常问题展开分析和讨论。根据验证工程师在仿真工作中容易遇到的技术疑难点,本书内容在逻辑上分为SystemVerilog疑难点、UVM疑难点和Testbench疑难点三部分。作者精心收集了上百个问题,给出翔实的参考用例,指导读者解决实际问题。在这本实践性很强的书中,作者期望能够将作者与诸多工程师基于常见问题的交流进行总结,以易读易用的组织结构呈现给读者,目的是帮助芯片验证工程师更有效地处理技术疑难点,加快芯片验证的调试过程。
本书面向在岗的芯片验证工程师,可作为日常桌边工作手册翻阅,也可用于工作之余查漏补缺以提高自身技术能力。
作者简介
刘斌(路桑),目前是Intel公司的资深验证专家。在Intel移动通信事业部主持验证架构规划和方法学研究,担任过几款亿门级通信芯片的验证经理角色。在工程领域之外,他在西安电子科技大学和西安交通大学客座讲授芯片验证课程。创办的验证技术订阅号“路科验证”,目前已有超过10000名的订阅者。多次在设计验证行业国际会议和展览中发表论文,并做了富有特色的演讲。在西安交通大学取得微电子专业学士学位,在瑞典皇家理工学院取得芯片设计专业硕士学位。
目录
第1章 什么是疑难点?
第2章 SystemVerilog疑难点集合
2.1 数据使用
2.1.1 组合型数组和非组合型数组怎么区分?
2.1.2 组合型数组和非组合型数组如何做赋值?
2.1.3 在使用enum或struct时添加typedef与否的差别是什么?
2.1.4 什么是静态变量和动态变量?
2.1.5 struct和struct packed区别在哪里?
2.1.6 关联数组的散列存储表示什么?
2.1.7 如何将队列插入到另外一个队列中?
2.1.8 队列在赋值时使用操作符{},那么它属于组合型吗?
2.1.9 数组的选取可以用两个变量作为索引边界吗?
2.1.10 parameter、localparam和const有什么联系和差别?
2.1.11 多维数组的声明和使用,哪种方式更合适呢?
2.2 操作符使用
2.2.1 {}操作符的使用场景有哪些?
2.2.2 条件赋值符?:和条件语句if-else的执行结果一致吗?
2.2.3 if和iff的应用场景分别有哪些?
2.2.4 使用foreach在轮循数组时按照什么顺序呢?
2.2.5 运算符的优先级是否有必要记忆呢?
2.2.6 assign连续赋值可以赋值给logic(var)类型吗?
2.2.7 ::和.这两个符号使用起来有哪些区别?
2.3 模块、接口与方法
2.3.1 module中的方法在声明时是否要添加automatic?
2.3.2 interface在何处需要使用virtual来声明呢?
2.3.3 initial和always的执行顺序是否与代码位置有关?
2.3.4 interface的modport和clocking block如何使用?
2.3.5 module和interface之间可以相互例化吗?
2.3.6 方法的参数默认方向该如何辨别?
2.3.7 return的使用场景有哪些?
2.3.8 task与function的联系和差别在哪里?
2.3.9 方法的参数默认值该如何使用?
2.3.10 方法中参数方向inout和ref有什么差别?
2.3.11 module和interface中的变量声明必须放置在头部位置吗?
2.3.12 如何例化和传递多个相同类型的接口?
2.3.13 使用while和forever语句时需要注意什么?
2.3.14 系统函数和内建方法有什么区别?
2.3.15 接口和模块的联系和差别是什么?
2.3.16 program和module的联系和差别是什么?
2.3.17 多个线程在仿真调度中是如何在不同的域之间执行和切换的?
2.3.18 时钟块在使用时需要注意哪些地方?
2.3.19 如何连接和驱动双向端口信号?
2.4 类的使用
2.4.1 类的成员变量在声明时或在new函数中初始化有何区别?
2.4.2 new函数与其他函数有哪些不同?
2.4.3 关键词new的使用场景有哪些?
2.4.4 对象占用的空间什么时候会被回收?
2.4.5 this的使用场景有哪些?
2.4.6 对象拷贝的种类如何划分?
2.4.7 this和super有什么联系和差别?
2.4.8 子类成员如何覆盖父类成员?
2.4.9 子类句柄和父类句柄的类型如何转换?
2.4.10 为什么父类句柄经常需要转换为子类句柄?
2.4.11 虚方法声明和不声明的区别是什么?
2.4.12 虚方法的描述符virtual应该在哪里声明?
2.4.13 句柄一旦不指向对象,该对象就被回收了吗?
2.4.14 什么时候该使用local和protected?
2.4.15 class和virtual class的区别是什么?
2.4.16 virtual修饰符在哪些场景中会用到?
2.4.17 子类能够使用与父类相同名称但不同参数的方法吗?
2.4.18 使用参数类或者接口时要注意哪些?
2.5 随机约束使用
2.5.1 rand描述符可用于哪些变量类型?
2.5.2 数组使用rand声明会发生什么?
2.5.3 句柄使用rand声明会发生什么?
2.5.4 rand和randc的区别在哪里?
2.5.5 内嵌约束中的local::表示什么?
2.5.6 是否可以利用动态数组对变量值的范围进行约束?
2.5.7 多个软约束在随机化时有冲突是否可以解决?
2.5.8 结构体是否可对其成员使用rand描述符?
2.5.9 如何随机化对象的多个成员且使每次数据不重复?
2.5.10 子类会继承还是覆盖父类的约束?
2.6 覆盖率应用
2.6.1 covergroup的采样事件如何指定?
2.6.2 covergroup如何对变量进行采样?
2.6.3 是否可对covergroup中的不同coverpoint指定采样条件?
2.6.4 covergroup在哪里定义和例化更合适?
2.6.5 如果covergroup中的bins没有被采样,可能有哪些原因?
2.6.6 如何减少不关心的cross bins采样数据?
2.7 线程应用
2.7.1 semaphore使用时需要初始化吗?
2.7.2 mailbox使用时需要例化吗?
2.7.3 fork-join_none开辟的线程在外部任务退出后也会结束吗?
2.7.4 父线程和子线程之间的执行关系是什么?
2.7.5 disable fork和disable statement有什么差别?
2.7.6 嵌套的fork有没有可能被disable fork误伤呢?
2.7.7 使用for配合fork-join_none触
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/1/31 19:38:12