自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr IMMUNIZE的博客

日常刷题,大家一起交流进步。

  • 博客(243)
  • 收藏
  • 关注

原创 杂谈:DC对Verilog和SystemVerilog语言的支持

设计语言用哪种?

2023-10-22 17:27:58 946

原创 design compiler之设计环境

设计环境是什么?

2023-10-16 22:42:00 162

原创 design compiler中的drc规则详解

DC中的DRC详解

2023-10-15 22:42:56 490

原创 20230823:ICC2如何产生NDM格式的TECH_LIB

写在前面。

2023-08-23 23:51:51 561

原创 Zynq7000 Soc的中断系统实验(一)

Zynq7000的中断系统解读

2023-07-03 20:46:03 265

原创 20230701:成电的“七年之痒”,毕业啦

毕业

2023-07-01 23:02:03 111

原创 20221114:链表专题回顾 01

链表类题目的python实现

2022-11-15 00:05:45 228 1

原创 20220707:小数分频器的实现

小数分频器

2022-07-07 23:22:40 400 1

原创 20220323:双边沿触发器趣解

双边沿触发器趣解题目思路与算法代码实现写在最后题目DualEdge思路与算法题目非常简单,可以简单的想到寄存两个状态,然后根据时钟电平的高低打出对应的输出即可。趣解在于利用了a ^ b ^ b = a这个等式。上升沿到来的时候将q=d ^ neg ^ neg = d,下降沿的时候q = pos ^ d ^ pos = d。极其巧妙代码实现常规解法:module top_module ( input clk, input d, output q);

2022-03-23 23:12:40 746

原创 20220307:力扣第283场周赛(上)

力扣第283场周赛(上)题目思路与算法代码实现写在最后题目Excel 表中某个范围内的单元格向数组中追加 K 个整数思路与算法第一题直接模拟即可,注意作为char的数字也是可以直接自加运算的。第二题贪心题,也可以利用set的去重特性来做,当然直接排序贪心模拟也是没有问题的。注意书写细节即可。代码实现Excel 表中某个范围内的单元格class Solution {public: vector<string> cellsInRan

2022-03-07 23:55:53 167

原创 20220228:力扣第282场周赛(下)

力扣第282场周赛(下)题目思路与算法代码实现写在最后题目完成旅途的最少时间完成比赛的最少时间思路与算法完成旅途的最少时间: 二分模板题,注意初始化左右边界的话,速度会提升很多。完成比赛的最少时间:线性dp,简单来讲这题的思路就是如此,注意一下中间的写法,注意细节,python的使用不够熟练,这道用回cpp。代码实现完成旅途的最少时间class Solution: def minimumTime(self, time: Lis

2022-02-28 22:40:00 501

原创 20220227:力扣第282场周赛(上)

力扣第282场周赛(上)题目思路与算法代码实现写在最后题目统计包含给定前缀的字符串使两字符串互为字母异位词的最少步骤数思路与算法第二题直接并集减去交集,简单的集合运算,当然也可以换CPP使用map来处理,但后续可能会使用到Python,那么接下来一周全部使用python来解题。代码实现统计包含给定前缀的字符串class Solution {public: int prefixCount(vector<string>& word

2022-02-27 23:53:16 6584

原创 UART协议概述与实现

UART协议概述(一)协议描述关键代码逻辑写在最后协议描述常见的三大低速通信协议之一,UART,通用异步收发协议。非常简单的协议,协议细节不需要多说,只说需要注意的点。空闲位为高位,起始位为低位,8位数据,校验位,停止位为高位,一共11位数据,空闲位不算在发送的数据之中,因为它和停止位是相同的。这样才符合异步传送的连续性逻辑。发送的逻辑比较简单,直接利用系统时钟和波特率产生我们需要的发送脉冲,也就是波特率发送脉冲,脉冲需要计数11次,当计数完成时,表示发送完毕,给出done信号。接受逻辑主要要

2022-02-23 22:17:34 408

原创 IIC那些事(四)

IIC那些事(三)I2C示例代码实现写在最后I2C示例完结篇,直接给出一个完整的示例,当然代码不全贴了。注意仿真的模型是从镁光官网直接拿的,这个自行实现ack很不现实。另外注意状态机的绘图要特别注意逻辑,一旦出错很难排查。理清逻辑,思路,那么代码实现就是顺其自然的,按照小梅哥的说法叫做,照图施工。代码实现demo代码// iic_sda的输出,如果输出使能打开,则直接输出obuf,否则输出高阻态,表示断开三态缓冲开关 assign iic_sda = (out_en == 1'b

2022-02-23 00:37:46 179

原创 20220219:力扣第72场双周赛题解

力扣第72场双周赛题目思路与算法代码实现写在最后题目统计数组中相等且可以被整除的数对找到和为给定整数的三个连续整数拆分成最多数目的偶整数之和统计数组中好三元组数目思路与算法前三题都是简单的模拟即可。第四题考察树状数组的问题,简单的模板题。这周双周赛略水了。代码实现统计数组中相等且可以被整除的数对class Solution {public: int countPairs(vector<int>&

2022-02-20 00:54:21 250 1

原创 IIC那些事(三)

IIC那些事(三)问题提出理解写在最后问题提出关于iic协议中出现的sda三态电平的问题、理解实现方面,既然是三态开关,那就在数字电路常见的01之外多一个高阻态,这也是数字电路中为数不多出现高阻态的地方。数电中表示为1’bz。注意我们需要理解三态开关的实现,当开关闭合时,此时这个inout口作为输出,直接将内部的sda_od 输出即可,此时如果od为1,那么我们并不是直接输出一个1,而是输出一个高阻态,原因是实际上我们iic使用到的常见的如AT24C64这样的芯片并不具备输出高电平的能力,而

2022-02-17 23:56:16 311

原创 I²C那点事儿(二)

I²C那点事儿(二)要点注意图例说明参考资料要点注意主要的读写时序务必注意,我们实际使用过程中比较难理解的是读时序。也就是说,主机从从机读写数据的时序。以下就以单字节的读写进行说明,多字节和连续读写就是在单字节基础上改写状态机的问题而已。不再赘述,至于再难一点就是挂载在目前事实上的总线AMBA上的问题。这个后序的协议这个栏目会做完善的补充。图例说明先说整体时序,也就是SDA数据变化必须在SCL为低的时候完成。在SCL为高的时候,SDA必须保持不变。单字节写时序:上述单字节的写其

2022-02-15 01:21:08 495

原创 20220213:力扣第280场周赛(上)

力扣第280场周赛(上)题目思路与算法代码实现写在最后题目得到 0 的操作数使数组变成交替数组的最少操作数思路与算法简单模拟即可,所谓辗转相除法哈希处理,然后找到最大和次大值即可。代码实现得到 0 的操作数class Solution {public: int countOperations(int num1, int num2) { int count=0; while(num1>0&&amp

2022-02-13 23:54:59 228

原创 20220212:力扣第277场周赛(下)

力扣第277场周赛(上)题目思路与算法代码实现写在最后题目找出数组中的所有孤独数字基于陈述统计最多好人数思路与算法找出数组中的所有孤独数字按照题意模拟即可,使用map来统计即可。基于陈述统计最多好人数这个题目有点超纲了,看一眼题目看不太懂,看了 @灵茶山艾府 大佬的二进制位运算解法,自叹不如,极其精妙的解法,代码引用学习一下。这个goto的用法真是神乎其技了。代码实现找出数组中的所有孤独数字class Solution {publ

2022-02-12 00:14:27 200

原创 I²C那点事儿(一)

I²C那点事儿(一)简介优缺点说明简单总结参考资料简介不管你是从哪里听说的这个概念,我都要先告诉你,咱们15年前家里的大彩电,就是由这样的一个协议来完成控制的。当你按下遥控器的瞬间,那颗彩电的主控芯片从遥控器的红外信号得到指令,朝着村口大喇叭喊了一嗓子,你们谁是张三,村长让你这会儿去一趟村委会给你安排个活儿。后来我们知道这个大喇叭即是总线,村长安排什么活,对应你遥控器的指令,很多你自己按不出来的效果,比如出现在彩电上的大骨头图案。如此我们应该对该协议有了一个非常直观的第一印象了。那么接下来看专业说明。

2022-02-11 00:20:16 600

原创 20220123:力扣第277场周赛(上)

力扣第277场周赛(上)题目思路与算法代码实现写在最后题目元素计数按符号重排数组思路与算法元素计数按符号重排数组无需多言,直接按照题目实现就行了,过于敷衍了这两个题,简单记录一下。代码实现元素计数class Solution {public: int countElements(vector<int>& nums) { int res = 0; int maxVar =

2022-01-24 01:00:22 381

原创 20220104:力扣第274场周赛(下)

力扣第274场周赛(下)题目思路与算法代码实现写在最后题目摧毁小行星参加会议的最多员工数思路与算法第3题简单模拟即可,注意使用long long格式进行保存累加结果。有二元组的简单比较处理方式,但是暴力的复杂度也只有nlogN,不计较。第4题主要问题在于找到数组中的环,并且计算环的长度。很好理解,一桌必须有两个人互相喜欢,然后旁边跟着喜欢这两个人的一个爱慕链。即A和B互相喜欢,然后有D喜欢C,C喜欢B。然后F喜欢E,E喜欢A。这样类似的链,这些人才能坐一起。否则就如第一

2022-01-04 23:27:36 244

原创 20220103:力扣第274场周赛(上)

力扣第274场周赛(上)题目思路与算法代码实现写在最后题目检查是否所有 A 都在 B 之前银行中的激光束数量思路与算法前两道都是简单的模拟,注意特殊情况的处理即可。第二个就是简单的相乘再累加即可,注意全0字符串的处理。代码实现检查是否所有 A 都在 B 之前class Solution {public: bool checkString(string s) { int j = 0; for (int i = 0; i <

2022-01-03 23:09:36 3316

原创 20211205:力扣第270场周赛(上)

力扣第270场周赛(上)题目思路与算法代码实现写在最后题目找出 3 位偶数删除链表的中间节点思路与算法找出 3 位偶数:遍历所有数字得到3位数字,前导不为0即表示大于等于100,先用set存这些数字去重,再用vector来存排序即可。删除链表的中间节点:典型链表删除节点题目,链表不具有随机存取的特性,快慢指针是很常见的套路,快指针一次走两步,慢指针走一步,快指针走到尾节点或者尾节点的后接nullptr节点时慢指针刚好在中间,维护慢指针的pre指针用于删除即可

2021-12-05 23:38:28 190

原创 20211202:力扣第268周周赛(下)

力扣第268周周赛(下)题目思路与算法代码实现写在最后题目区间内查询数字的频率k 镜像数字的和思路与算法第三题直接map加二分即可,见代码这个第四题看了大家的题解有直接打表的,这题本意应该不是这个意思,三个基本题目的综合体,也不怎么复杂,主要逻辑即可。代码实现区间内查询数字的频率class RangeFreqQuery {public: unordered_map<int,vector<int>> res;pu

2021-12-02 23:46:26 91

原创 20211201:力扣第268周双周赛(上)

力扣第268周双周赛(上)题目思路与算法代码实现写在最后题目两栋颜色不同且距离最远的房子给植物浇水思路与算法双指针遍历即可,维护那个索引最大差值即可。模拟题,正常情况需要每次走一步即可灌溉,碰到水不够的情况需要灌满水回到原地的步数,维护这个步数,注意索引不要越界。最后一步只需要考虑灌满,不需要考虑需不需要回去装满水。代码实现两栋颜色不同且距离最远的房子class Solution {public: int maxDistance(vecto

2021-12-02 00:31:15 82

原创 20211130:力扣第267周周赛(下)

力扣第267周周赛(下)题目思路与算法代码实现写在最后题目2075 解码斜向换位密码2076.处理含限制条件的好友请求思路与算法第三题是一个比较简单的索引计算题,只需要将斜着放的字符先顺着找回来拼接起来,再做去空格处理,最后输出即可。用栈也行,用vector也行,用str也行,用str现成的函数操作起来比较方便。并查集配合哈希表维护即可,比较复杂,只附代码。代码实现2075 解码斜向换位密码class Solution {public: string d

2021-12-01 00:49:30 279

原创 20211118:力扣第267周周赛(上)

力扣第267周周赛(上)题目思路与算法代码实现写在最后题目买票需要的时间反转偶数长度组的节点思路与算法买票需要的时间处理思路:直接进行模拟即可,找到位置k上的人需要买的票的数量,排在他之前的人至少要买跟他同样数量的票,排在他后面的人至少需要买比他的票少一张的数量。注意后者不要搞错就可以解决这道题了。反转偶数长度组的节点这道题容易出问题的点在于如果最后剩余的节点数量为偶数,那么不管前面这一组节点是否为偶数,最后一组都要进行翻转,在206题翻转链表的基础上做

2021-11-18 23:31:26 417

原创 20211110:DC综合的一些简单概念总结(2)

DC综合的一些简单概念总结(2) 问题描述分析与解答每日总结这些概念皆为一些必须理解的基础,经济基础决定上层建筑,学习也是同理。务必深化这些简单但是很基础的东西。做到别人问起时你可以侃侃而谈的效果就算是学懂了。问题描述先证明一下为何打拍,也就是加BUF,可以减少delay。再次我们来说明DC启动的三种方式,以及常用的方式。这个就类似于暴力法和拥有巧妙数据结构的力扣题型解法。因此必须全部掌握。今天就写这些分析与解答假设我们有一个长度为10的time delay。我们插入9个BUF得到dela

2021-11-10 23:58:17 553

原创 20211109:DC综合的一些简单概念理解记录

DC综合的一些简单概念总结问题描述分析与解答每日总结首先写在最前面,关于我的个人博客只是一个学习记录,方便我在需要回顾时可以更快的找出这些知识点来回顾,而不是单纯的为了记录而记录。各位共勉!问题描述动态、静态的功能验证和时序验证明辨。建立时间和保持时间的明确定义以及如何去修正这些violation。跨时钟域后对亚稳态的处理方法。分析与解答四种验证或分析的辨析动态功能验证最为常见的验证,输入激励根据输出进行验证功能是否正确动态时序验证加入综合后的sdc文件来进行验

2021-11-09 23:26:09 467

原创 20211102:数字滤波器按照实现结构的分类及其优缺点总结

DC综合时的内部时钟处理问题描述分析与处理方法总结问题描述综合时出现未约束的endpoints。分析与处理方法利用vcs和netlist文件来检索出现的endpoints,追溯至最原始的时钟,最原始的时钟指的是接口时钟穿透的寄存器。另一种是指端口时钟穿透的一些寄存器进行组合逻辑运算得到的内部时钟,因此会出现未约束的情况。将追溯到的上述情况的内部时钟按照pin进行约束,因为是内部时钟无法使用port进行约束。总结遇到问题要善于利用vcs和dc_shell的命令工具集进行问题的分析,此处

2021-11-02 23:40:38 837

原创 20211028:DC综合时的内部时钟处理

DC综合时的内部时钟处理问题描述分析与处理方法总结问题描述综合时出现未约束的endpoints。分析与处理方法利用vcs和netlist文件来检索出现的endpoints,追溯至最原始的时钟,最原始的时钟指的是接口时钟穿透的寄存器。另一种是指端口时钟穿透的一些寄存器进行组合逻辑运算得到的内部时钟,因此会出现未约束的情况。将追溯到的上述情况的内部时钟按照pin进行约束,因为是内部时钟无法使用port进行约束。总结遇到问题要善于利用vcs和dc_shell的命令工具集进行问题的分析,此处

2021-10-29 00:22:40 858

原创 20211027:《Labuladong的算法小抄》学习记录(一)

力扣第226周周赛(上)题目思路与算法代码实现写在最后题目思路与算法代码实现写在最后

2021-10-28 01:07:43 268

原创 20211003:数字滤波器前置知识,sinc函数与Sa函数

sinc函数和Sa函数对比解析原理分析sinc函数,又称辛格函数。表达式为:sinc(t)=sin(πt)/(πt)sinc(t) = sin(πt)/(πt)sinc(t)=sin(πt)/(πt)傅里叶变换后的形式为:u[(w+1)/pi)]−u[(w−1)/pi)]u[(w+1)/pi)]-u[(w-1)/pi)]u[(w+1)/pi)]−u[(w−1)/pi)]2.Sa函数,又称采样函数,表达式为:Sa(t)=sin(t)/tSa(t)=sin(t)/tSa(t)=si

2021-10-03 00:46:15 7936

原创 20210916:Verilog的整数类型易错点

Verilog的整数类型表示易错点对比类型仿真结果易错点分析总结对比类型分析以下四个值的结果:wire [31:0] A;wire [31:0] B;wire [31:0] C;wire D;assign A = -12 / 3;assign B = -'d12/3;assign C = -'sd12 / 3;assign D = -4'd12 / 3;仿真结果不卖关子,直接贴出仿真结果(数据类型为signed decimal):易错点分析关键点在于B和D的分析,

2021-09-17 00:40:35 473

原创 20210803:AXI-Stream协议源码分析初探

AXI-Stream协议细读简要说明交互握手过程简述源码分析TestBench测试写在最后参考资料简要说明不同于AXI和AXI-lite协议,AXI-Stream协议不是基于地址的数据交互协议,如其名,数据流协议。支持多个主从端之间通过同一个通路进行交互。支持常规数据流,位置数据流,以及填充数据流的传输。交互握手过程简述上面三个图为交互过程的TVALID和TREADY的顺序不同时,数据流INFORMATION随始终ACLK的传输过程。需要注意的点如下:注意TVALID是Master

2021-08-03 23:47:12 954

原创 20210801:AXI-Lite总线逻辑与关键源码分析

AXI-lite协议源码细读AXI主从机交互模式AXI和AXI-lite均包含五个不同的通道(允许同时读写、双向通信)。读地址通道写地址通道读数据通道写数据通道写响应通道读交易交互图写交易交互图源码实现细节简单概括上面两个图。读交易过程如上图,主端发送要读的地址,从端把这些地址的数据反馈给主端。写交易过程见1-2,主端发送要写的地址和数据,完成之后从端发送完成响应。具体的实现细节,我们以源码进行分析仿真,结合官方提供的一系列文档进行说明。最终达到深入理解AXI-lite的

2021-08-01 23:37:15 396

原创 20210701:随机信号的功率谱估计相关算法的实现

随机信号的功率谱估计相关算法的实现今天最重要的事!!!问题描述前置数学原理BT法与周期图法估算功率谱估算功率谱的示例写在最后今天最重要的事!!!1. 我党100周年生日,中国共产党nb!!!问题描述随机信号的功率谱估计实现前置数学原理维纳辛钦定理S^BT(ω)=∑m=−MMr^(m)e−jωm,∣M∣≤N−1\hat{S}_{\mathrm{BT}}(\omega)=\sum_{m=-M}^{M} \hat{r}(m) e^{-j \omega m}, \quad|M| \leq N

2021-07-01 23:24:00 250

原创 20210627:力扣第247周周赛(上)

力扣第247周周赛(上)题目思路与算法代码实现写在最后题目两个数对之间的最大乘积差循环轮转矩阵思路与算法两个数对之间的最大乘积差:排序相减即可循环轮转矩阵:模拟即可,注意逆时针和顺时针的区别。代码实现两个数对之间的最大乘积差class Solution {public: int maxProductDifference(vector<int>& nums) { sort(nums.begi

2021-06-27 16:53:04 89

原创 (补)20210623:力扣第246周周赛(下)

力扣第246周周赛(下)题目思路与算法代码实现写在最后题目统计子岛屿查询差绝对值的最小值思路与算法统计子岛屿 : 老DFS了,总之就是遍历题,无需多言,搜就行了。查询差绝对值的最小值:暴力明显会TLE的题目,考虑从首元素到当前元素的区间内各个数字出现的次数,即前缀和思想。之后再遍历一遍存在的数字之间的最小差值即可。代码实现统计子岛屿class Solution { int[] dx = {0, 1, 0, -1};

2021-06-25 00:22:26 104 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除