- 博客(42)
- 收藏
- 关注
原创 UVM(8)代码重用性
针对trans的randomize,存在post_randomize函数,系统会自动调用post_randomize函数。我们只需重载post randomize函数即可实现回调操作UVM也为用户提供了广义的callback函数/任务: pre_body和post_body, 除此之外还有pre_do、 mid_do和post_do大概思想:在driver中有个pool,他会循环的调用其内部函数,我们往里面例化一个A,就可以加入callback。
2024-08-15 20:58:18
460
原创 uvm(7)factory
针对任务或者函数,定义virtual;然后就可以重载第二个是 约束的重载然后这个是关闭此约束这是关闭所有约束还可以集成原来的transation直接重写约束起到重载的作用。
2024-08-14 22:44:37
883
原创 uvm(六)寄存器模型
上述是它是一个比较大的单位, 在其中可以加入许多的uvm_reg, 也可以加入其他的uvm_reg_block。一个寄存器模型中至少包含一个uvm_reg_block。用于存储寄存器地址, 并转换成物理地址( 因为加入寄存器模型中的寄存器地址一般都是偏移地址, 而不是绝对地址)。当寄存器模型使用前门访问方式来实现读或写操作时, uvm_reg_map就会将地址转换成绝对地址, 启动一个读或写的sequence, 并将读或写的结果返回。
2024-08-13 21:42:39
2160
1
原创 UVM(5)sequence
mid_do和post_do的参数是正在操作的sequence或者item的指针, 但是其类型是uvm_sequence_item类型。前文已经提过, 当使用null时, UVM会自动将其替换为uvm_root: : get( ) , 再加上第二个参数get_full_name( ) , 就可以完整地得到此sequence的路径, 从而得到参数。除了uvm_do宏外, 前面介绍的uvm_send宏、 uvm_rand_send宏、 uvm_create宏, 其第一个参数都可以是sequence的指针。
2024-08-10 22:04:45
832
原创 UVM(4)验证平台的运行
drain_time的设置方式为:phase.phase_done.set_drain_time(this, 200);注意,这里domain只能隔离run-time的phase,对于其他phase,其实还是同步的,即两个domain的run_phase依然是同步的,其他的function phase也是同步的。默认都在common domain,如果在一个domain的话,reset_phase中必须同时复位,我们开辟新的domain可以打破同步关系。run右边的分解目的是为了模拟DUT的行为。
2024-08-09 17:40:21
520
原创 UVM(3)TLM通信
当A_port的类型是nonblocking_put,B_imp的类型是nonblocking_put时,那么就要在B中定义一个名字为try_put的函数和一个名为can_put的函数。当A_port的类型是put,B_imp的类型是put时,那么就要在B中定义3个接口,一个是put任务/函数,一个是try_put函数,一个是can_put函数。当A_port的类型是blocking_get,B_imp的类型是blocking_get时,那么就要在B中定义一个名字为get的任务/函数。
2024-08-08 22:13:06
767
原创 UVM(2)uvm基础
object是爹component有如下特点: 它用于把一个直接或间接派生自uvm_component的类注册到factory中。: 它用于把一个直接或间接派生自uvm_component的参数化的类注册到factory中。
2024-08-05 16:07:17
766
原创 数字电路-06 时序电路
n位全加器,对串行加法器的修改缺点还是慢,以及数据输入和输出都是串行同步时序电路虽然好,简单易分析,但是由于芯片在同一时刻变化,势必造成芯片功耗升级所以在小规模使用同步电路而大范围使用异步电路就可以使系统整体分时工作,降低尖峰电流Mealy型不但取决于Q时钟,还取决于输入X,Moore就和X无关,只和时序有关所以说时序电路是可以没有输入的注意:①我们驱动方程只考虑触发器的输入输出,不细扣触发器内部。驱动方程都是组合电路!可以一起写②把驱动方程带入特性方程。
2022-11-09 17:08:45
1184
原创 数字电路-05 触发器的动态特性
这个时间叫做保持时间。主触发器的保持时间要多,要注意是从触发器的thold,因为thold本质是避免竞争冒险,而黄色星星和G是从触发器的输入端,发生竞争冒险只取决于从触发器的tpd。最高时钟频率 就是你从开始建立已知到最后总输出的时间的倒数,也就是一个信号从建立到输出的时间,如果时间比这个还要短,这个信号还没输出下个信号就来了。再说,当G的低电平来了,T-hold就要保证数据稳定,那么D、Q一定要保证一个tpd,当然G也要坚持。如果要将D稳定的写入Q*=1,首先G=1D=1,经过tpd时间写入Q*,
2022-10-29 18:19:48
1268
原创 数字电路-04 触发器Flip-flop!
注意这个第(4)条,Q*=1,那么在跳变之前,Q*会反馈到K,相当于JK触发器的Qn-1,那么主触发器置为0。这里面3好CLK的意思就是 之前JK=11,Q相当于取反,但是最后又变成JK=01了,因为主触发器不可以变两次的约束,只能取第一个变化的结果作为从触发器的输出。这个触发器牛逼了,按一下按钮:第一个Q输出D,松开按钮最右边的触发器输出第一个输入的D!当CLK=0的时候,因为这里是与非门,所以是11的时候不变,也就是保持与上一时刻相同的Q。注意,当SR=0的时候,Q应该保持Qm的值!
2022-10-27 21:32:40
3428
原创 Yolov4
引入CSP, k1是1*1,s1代表布局个数,c是卷积核个数其中Mish是激活函数,Mish = x*tanh(ln(1+e^x))
2022-08-16 16:43:08
112
原创 YoloV2
v1一个gridcell只能预测一个类别物体,v2一个girdcell可以预测五种 ,v1是选择bbox与真实框IOU最大的框,直接预测框的坐标。思想是对数据集的各个真实框的xywh聚类,并根据聚类中心个数选取相应的锚框坐标,为了权衡模型性能,选择5个聚类中心,赋予锚框初始值。在fast-rcnn SSD中,锚框数/gridcell和长宽比,size是手动选择的,而V2是聚类选取。前面的pr是:模型是否存在物体,to是 confidence,需要向左边学习,靠近。左边是分类的,右边是检测的。...
2022-08-14 11:21:23
332
原创 李宏毅2021机器学习笔记(十五)
因为续写的缘故,我们在预测时,要当做文字续写来做。BERT做的是填空题,那么GBT做的就是续写题。语音版的GLUE,评测模型。有点像Decoder。GBT还可以做很多事。
2022-08-06 10:09:06
337
原创 李宏毅2021机器学习笔记(十四)
BERT就是Transformer的Encoder,输入一个Vector,输出一个Vector,一般用于NLP,但是语音、图片仍然可以用,在研究阶段。这个就是我们重新训练,而不采用谷歌训练好的模型的原因:我们需要探索BERT训练的完整过程,从而探究如何才能优化训练,使其在更短的时间进行收敛。给定两个句子,问BERT哪个在前面。神奇的是这样的模型,在finetunning英文后,给中文训练,居然还有很高的正确率!要注意的是,我们的BERT是pre-train 的,只有Linear是需要重新学习的。...
2022-08-06 09:20:16
238
原创 李宏毅2021机器学习笔记(十三)
Transformer简单来说就是Sequence-to-Sequence输入一个序列,输出一个结果这个是台语到中文的翻译器但是如果你特质化模型,效果当然更好。当然Seq2Seq也能做 还有如下。Transformer原理Encoder这就是一级框架。下面我们来讲Encoder其实Transformer的Encoder就是用了Self-attention。解释一下:每个Block都包括好几个............
2022-08-04 20:51:36
290
原创 李沐——卷积层
在以往的全连接层,输入是一个n维向量,但是在隐藏层我们输出的是k维,二者并没有关系。这一操作使用矩阵w来实现,可以理解为w改变了x的形状那么我们考虑二维输入k*l,在隐藏层我们会用W改变Xk*l变成Hi*j,我们确实无法理解高维,但是在这里我们可以思考一个矩阵,Wijkl。它施加的变换能使X_k*l变成H_i*j。这里我们使用类比推理的思想,k*l理解为原来的输入n。 这就用了简单的换元:k=i+a,A对于CNN,我们不希望x变化时,V也跟着变化,V可以理解为分类器,我的x不管在哪,v都会感知它,也就是说一
2022-07-04 15:47:14
458
原创 李宏毅2021机器学习笔记(十二)
Normalization举个例子:x1是克,x2是吨。量纲不同导致变化率不同 。这时候我们就像要消除量纲的影响Normalization。标准化哦。让你的梯度下降收敛得更快对了,z还要再次进行Normalization因为均值和方差需要考虑整个样本,同时为了样本数不是太大,我们一般只考虑一整个batch进行Normalization,就是Batch Normalizationbatch比较大会很好,这样可以用样本估计总体为了增加灵活性,还会...
2022-04-10 14:49:47
685
原创 李宏毅2021机器学习笔记(十一)
自注意力机制(Self-attention)之前我们CNN的时候还是给定大小的矩阵,但是如果说我们的矩阵输入是可变的呢??那要怎么做??举个简单的例子:文字处理。我们把每一个单词都视作一个Vector,那么一个句子就是一个大小不固定的Matrix最蠢的做法是 One-hot Encoding也就是说:如果有n个单词,我就搞一个n维向量而且你看不到词汇之间的关系:如动物,单复数等还有一种是Word Embedding这个 最直观的表现就是动物在一团..
2022-04-08 21:49:37
868
原创 李宏毅2021机器学习笔记(十)
为什么深度学习好?回忆一下之前讲过的复杂度的问题H大:虽然我Loss-all会很小,模型很精确,但是Loss-train和Loss-all的差距就很大H小:Loss都很大,但是train和all差距小!!P不等式得出如果我给出一个H,大小恰当,成员数目恰当,就可以完美平衡优缺点复习一下之前的Deep Lear ing为了拟合曲线,我们先引出Piecewise Linear(分段线性拟合)而这些绿色的线条怎么拟合??用函数拟合,分段拟合,叠加 。这些..
2022-04-08 12:23:53
774
2
原创 李宏毅2021机器学习笔记(九)
虽然已经把数据集分为Training set和Validation set,为什么还是会Overfitting??我们是先从D-train训练得到参数h,之后用D-val进行Loss的评价,最终选择最合适的Model进行test其实你想想,这一过程不也是一个train吗我们的目的就是挑选出L小的h*。H-val只有三个选择,并用D-val这一数据集进行train...
2022-04-08 10:53:51
596
原创 李宏毅2021机器学习笔记(八)
CNN卷积神经网络——图像处理输入给定相同大小的图片,输出一个向量,n维向量可以辨识n种动物,但是我们输出的可能不是膜长为1的向量哦那就需要分类的方法Cross entropy 去构造Loss计算机世界中图像是什么?张量tensor可以理解为PS里面的通道层数把三色通道写到一维数组就是右边这个其实是矩阵拼接起来的啦:100*100的矩阵竖着拼但其实我们不需要去看所有的细节,我们只需要看:鸟嘴、鸟眼睛等区域就可以那么我...
2022-04-06 20:16:50
402
原创 李宏毅2021机器学习笔记(七)
探究宝可梦和数码宝贝分类器Classification第一步还是定义函数,这个H是函数定义域,其实输入的参数x就是图像的图形数目。H越大说明复杂度越高!!接下来是Loss函数不过我们要有数据集这个Loss类似我们的极大似然估计,本质思想就是:找使得L为极值点的参数hl()这个函数就是如果得出的y与y-hat一致(匹配成功)那就输出1我们如果得到所有的数据集,那么就可以找到完美的参数,使得Loss最小但是我们不可能找到所有的数据集只有训练集...
2022-04-06 13:44:15
504
原创 李宏毅2021机器学习笔记(六)
分类Classification不同于回归,分类产生的y我们需要先归一化到0-1区间,且概率和为1.再与y-hat进行比较这里用的是soft max函数这个exp是指数函数的意思。但是如果2个分类可以直接取sigmoid,就是等价的完全等价欸!!!接下来我们讨论Classification的Loss函数当然我们可以用MSE但是一般用Cross-entropy交叉熵其实我们一般就是先用soft max+cross -entrop.
2022-04-05 18:16:00
630
原创 李宏毅2021机器学习笔记(五)
这次讲Batch和MomentumShuffle:重新洗牌,重新分batch再进行epoch那究竟选择什么样的batch?其实我们处理数据是用GPU并行处理,当达到GPU的极限,效率是最高的,如上图的1000,因为减少batch size几乎不会影响一个epoch的时间,相反会增加epoch的数目如果根据batch size大小看整体时间,那就是下图其实batch也不能非常大,这样的优化问题optimization会不好,如下所以还是适当的batch si
2022-04-04 18:09:05
372
原创 李宏毅2021机器学习笔记(三)
再次回顾ML过程定义参数——定义损失函数——梯度下降优化参数欠拟合(Model Bias)解决欠拟合:① 增加线性模型参数,赋予更多弹性②使用dl的弹性进行拟合局部最小值情况注意!此类情况测试集以及预测效果都不好,而Overfitting是测试好的不行,而预测很离谱!所以说当我们适当增加模型弹性,导致结果很离谱,那就可能是Optimization Issue(优化问题)关于loss的评估图mismatch的情况是训练集和测试集分布不一样,..
2022-04-02 13:37:11
361
原创 粒子群算法
启发式算法定义:在可接受的花费下,给出待解决的优化问题的一个可行解。可接受花费:如规定时间内。优化问题:约束条件下中,函数的最值!可行解:不一定是最优解,可接受即可。常见启发式算法:粒子群、模拟退火、遗传算法等一个简单的优化问题:找函数的最值点基本思想①盲目搜索②启发式搜索盲目搜索① 枚举法尽可能划分更小的解空间x值,离散化,对比②蒙特卡洛模拟随机取N个点,选择最大值。只要时间够多,一定可以无限趋近最优解无论哪一种,当变量增多,时间复杂度指数增
2022-03-20 17:50:57
1209
2
原创 K-means及K-means++算法详解
K-means①选择划分簇的个数K②随机选择K个点作为聚类中心,(不一定是样本点)③计算其余样本到聚类中心的距离,并进行第一次的聚类划分④调整新类,及其中心。就是样本的重心⑤一直循环,直到收敛。或达到循环次数可能存在的问题:收敛点和初始点有很大的关系、孤立点敏感、必须要给出初始簇数为了解决初始点及孤立点问题,改进K-means++实际上仅优化了选取中心这一问题①选择一个样本作为第一个中心②计算其余点到此样本的距离,越大那么选择它作为下一个聚类中心的概
2022-03-18 10:19:52
1704
原创 李宏毅2021机器学习笔记(二)
函数的种类1、回归返回值为数值类型,多元参数输入2、分类返回一个已定义的类。如阿尔法狗,传入棋盘,返回的是棋盘的位置以上仅仅是两大类实际上还可以输出有结构化数据,如图片,文档等怎么找函数???构建模型如一元函数模型,类似回归分析,bw作为位置参数需要估计。函数称为模型Model。xy作为已知量称为feature。w是weight,b是bias定义Loss(w,b)评估参数的好坏如何评估? 需要我们从数据集进行代入,评估。引入..
2022-03-06 16:16:40
737
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人