跨时钟域传递数据实例 0. 介绍 跨时钟域传递的方法,Cummings的论文(见附录)中讲的很详细,之前自己也详细看过,除了他的论文还从网上看了一些其他人讲的关于跨时钟域的东西,以为自己已经掌握了跨时钟域的基本方法,面试、笔试完全不虚了,但是呢,前几天去某AI芯片公司二面,在跨时钟域问题上露怯,当然,面试过程全程被吊打,早已懵逼。 问题是:有一个APB接口的计数器IP,CPU可以通过写数据,控制计数器技术到5或者 2019-09-15 IC Asynchronous IC Asynchronous
DMA 注意:个人整理,有误无责。 0. CPU控制的数据传输方式介绍由CPU控制的数据传输方式有两种:查询、中断。 0.1 查询方式 查询方式是由程序控制的,如果CPU中执行的程序需要进行数据传输,CPU查询外设状态,如果外设准备好,那么进行数据传输。 0.2 中断方式 当外设需要与CPU进行数据交换的时候,外设向CPU发出中断请求,CPU中断当前执行的程序,相应外设的数据传输请求。当外 2019-09-14 IC Architecture IC Architecture
UVM——layer sequence 0. 介绍当sequence中有多个不同的transaction的时候,为了将不同transaction的生成过程分离,分成更小的粒度,便于后面的复用和管理,可以采用Layer sequence,或者说多层sequence。它将一个sequenceA中产生的transactionA交付给另一个sequenceB,transactionA作为sequenceB中transactionB的一部分。 1 2019-09-10 Verification UVM IC SV Verification UVM
UVM-prebody 1.在pre_body中raise_objection() 2.通过uvm_config_db来获得一些参数、sequencer等 3.在layered sequencer中,lower sequencer从upper sequencer中得到item。 upper_seq_item_port.get_next_item(u_item); 在post_body中,signal the 2019-09-01 Verification UVM IC SV Verification UVM
vim常用操作 查找与替换**参考** :s(substitute)命令用来查找和替换字符串。语法如下: 1:{作用范围}s/{目标}/{替换}/{替换标志} 例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g) 作用范围作用范围分为当前行、全文、选区等等。 当前行: 1:s/foo/b 2019-08-31 linux vim linux vim
UVM——Fun with UVM Sequences - Coding and Debugging 0. 介绍 今天早上,发现Mentor Verification给我发了一封推送邮件,说有关于验证的最新研究。我是要做验证工程师的男人,看到这,能不打开吗,找了一篇关于UVM sequence的文章—— Fun with UVM Sequences - Coding and Debugging。哇,这个外国人写得确实不错,一上午拜读,也自己跑了其中的一些东西,顺便也整理了一下这篇文章的东西 2019-08-27 Verification UVM IC SV Verification UVM
UVM——ALU生成fabonacci数列 0. 介绍之前的这篇文章——UVM——tb0-alu验证平台是居于一个ALU搭建的验证平台,现在希望让这个验证平台能够输出斐波那契数列数列(1,1,2,3,5,8…),利用一种特殊的响应,写一个能够生成斐波那契数列的sequence。 1. 思路特殊的响应`uvm_do语句会将transaction通过sequencer发送给driver,`uvm_do执行完之后,它的第一个参数,也就是刚才发送 2019-08-25 Verification UVM IC SV Verification UVM
UVM——tb0-alu验证平台 更新 09-28 之前遇到的问题解决了,可以生成激励、正确自检和收集覆盖率。 代码 h.add_coverage_modified 0. 介绍这几天为了准备面试,基于自己的思路写了一个验证平台,DUT是个ALU。 这个验证平台是逐步完善的,不断的迭代,最终可以测试ALU的计算,这里介绍的是添加了scoreboard之后可以进行随机激励生成、自检、覆盖率采样的版本。详细代码在链接里 2019-08-25 Verification UVM IC SV Verification UVM
UVM——phase objection 0. 介绍 UVM中,component的task phase是消耗仿真时间的,各个components需要在不同层次的task phase中同步信息。UVM中通过objection mechanism来控制phase的执行,通过raise or drop objection来决定phase中事件的开始和停止。 1. objection控制phase的执行1.1 phase中收集到obje 2019-08-24 Verification UVM IC SV Verification UVM
SV——SV实现blueprint 0. 介绍蓝图模式(blueprint)是“绿皮书”第八章将的一个点,它是通过层次引用,将generator产生的transaction类型改变,这样可以实现错误注入,使generator产生不同类型的transaction(这些transaction都要继承自定义在generator中的transaction)。 1. 框图 error_tr继承自blueprint类型,在top层,通过层次引用 2019-08-23 Verification System Verilog IC SV