- 博客(28)
- 收藏
- 关注
原创 VCS使用Makefile教程
在从事IC验证工作的过程中,其实最开始的一步不是写什么test plan或者说verification of structure,而是应该知道makefile怎么写,先写出一个通用,基础的编译仿真脚本,可能会让你编译仿真轻松一点。这份Makefile使用教程仅是基础版,不涉及复杂编译环境
2023-02-28 10:56:45
4943
原创 IC验证工作随笔--工作4个月
以前总是想看看别人的工作经验贴,一直没找到,只好自己写一下,给以后的自己看看和还没有参加工作的同学分享一点经验,避避坑。目前,参加工作成为IC验证工程师已经满4个月。1、住房工作之后,可能会面临的几种情况有,在老家工作,在外地工作这两种情况。据我观察,IC行业主要集中在北上广深一线城市,和苏州、南京、无锡、武汉、成都杭州等新一线超市,大部分人都会在外地工作,租房就是
2022-10-02 09:41:08
2150
5
原创 AMBA AXI协议总结
该总结针对的是AXI3的SPEC进行的。因为翻译可能并不能准确表达AXI的正确含义,在无法表达正确含义的情况下,会用英文表示。
2022-07-30 11:13:38
2900
原创 任意深度同步FIFO设计总结(非2次幂)
同步FIFO属于是最基本的模块之一了,但是对于任意深度(非2次幂与2次幂均可以)的同步FIFO可能有些难度,但是只要了解格雷码的性质就能解决。接下来将介绍整个设计的思考流程,不单单是给出解决方法。.........
2022-07-10 20:40:13
4596
19
原创 AMBA AHB协议规范总结
AMBA AHB协议规范总结主要是对AHB总线进行归纳总结,因为直接看SPEC总是需要跳来跳去的看。为了保证不错误理解AHB,因此对于可能翻译出来会出现问题的单词不进行翻译。
2022-06-19 13:34:17
2040
原创 Git使用总结
最近开始工作了,果然必然需要用到git,正好研究生刚刚入校就写过git总结,正好拿出来用用。参考廖雪峰老师的git教程目录1、创建本地版本库2、把文件添加到版本库3、工作区和暂存区4、版本修改5、忽略特殊文件6、版本回退7、管理修改8、撤销修改9、删除文件10、分支管理11、解决冲突12、分支管理策略13、Feature分支14、克隆远程仓库15、本地库推送到远程库16、多人协作17、推送分支18、抓取分支19、标签管理20、创建标签21、操作标签22、忽略特殊文件例子1、创建本地版本库第一步,选择
2022-05-17 22:01:40
452
原创 SystemVerilog学习总结
因为选择的offer是IC验证,以前学的是设计,所以只能再学systemverilog(SV)和UVM了。在学习SV和UVM之前,我认为需要学习以下几个部分:数字电路、c++和verilog。因为IC验证确实有不少别的专业之前没学过数字电路和Verilog,所以还是最好先学习一下。知识点的总结主要是通过systemverilog验证-测试平台编写指南这本书进行的,所以请看书。通过对这本书的目录进行重点的划分,然后再进行相关知识点的总结。最后,给出自己收集的别的博主IC EDA环境的虚拟机,以及使用虚拟机需
2022-05-05 20:26:21
9275
原创 数字IC设计知识点
数字IC设计知识点目录一、异步电路设计的优缺点二、同步电路设计的优缺点三、亚稳态四、跨时钟域的时候,“快时钟到慢时钟”与“慢时钟到快时钟”之间的区别五、多比特指示信号跨时钟域的传输六、多比特数据流跨时钟域的传输七、FIFO八、同步复位异步释放电路九、状态机FSM十、静态时序分析(STA)例题建立时间和保持时间违例的解决方法建立时间违例保持时间违例十一、有符号数和无符号数运算总结十二、乒乓buffer十三、串并转换电路十四、逻辑综合十五、逻辑运算优先级十六、浮点数转化为定点数十七、系统任务和系统函数十八、面积
2021-10-16 15:49:17
6201
4
原创 2021年数字IC秋招总结
2021年数字IC秋招总结到今天为止从4月开始的秋招正式结束教育背景:本科双非,硕士南航offer情况:联芸科技,瑞晟微电子,华为,沛睿微电子,全志科技秋招心得1.尽早地投递简历,数字IC这个行业越来越火热,也越来越卷了2.学习尽量多地语言,c++,python,systemverilog,perl等,systemverilog和c语言相类似,先学c++3.刷题,先将HDLbit的题目过一遍,优快云上有很多博主share了答案4.看看其他同学的面经,根据自己的项目尽量多的总结出一些可能会问
2021-10-16 14:59:51
7045
20
原创 通信串口协议介绍
以下内容根据学习总线过程中浏览的相关博主博文内容汇总而来。总线是两个模块之间通信的线路,协议是双方遵循的规则,总线协议就是两个模块在通信线路上传输信息需要遵守的规则,双方按照协议来收发信息。1.总表总线接口串/并同步/异步速率工作方式用线总线拓扑结构信距离I2C串同步慢半双工2线SDA、SCL总线型(特殊的树形)近SPI串同步快全双工3线或4线SCLK、SIMO、SOMI、SS(片选)环形远UART串异步慢波特率设置全双工
2021-06-28 15:56:35
2123
原创 Noxim仿真器介绍文档
因为写论文需要所以用到了这个NoC仿真器,可惜网上只有教怎么安装。正好写一个介绍文档方便使用这个仿真器,以下内容不带无线通信部分。Noxim仿真器介绍文档1. 介绍noxim2. 工程文件3. 工程的UML图1. 介绍noximNoxim是一种在 SystemC 中开发的开放、可配置、可扩展、周期精确的 NoC 模拟器,它允许分析传统有线 NoC 和新兴 WiNoC 架构的性能和功率数据。Noxim 还提供了一组有关功耗(动态和泄漏)的细粒度统计数据。Noxim 模拟器是使用 SystemC
2021-06-19 15:43:07
7113
10
原创 用verilog实现CRC-8的串行计算
乐鑫科技校招芯片岗真题用verilog实现CRC-8的串行计算,G(D)=D8+D2+D+1,计算流程如下解析:这个题目涉及到状态机(控制通路)和移位计算(数据通路)的混合,稍微有点复杂。基本上围绕着控制通路和数据通路切分的思想来设计会比较清晰。CRC串行计算的原理就是通过线性反馈移位寄存器进行输入数据移位,同时对应的生成多项式相应项数与对应数据位做异或反馈到输入端,当所有的数据位均移入时,移位寄存器的值就是CRC结果。控制通路方面,一个状态机控制,需要以下几个状态:IDLE:等待CRC开始信号
2021-06-01 18:11:57
3478
7
原创 不同频率的串并转换题
全志科技的一道笔试题,正好练练手,题目没什么难度,不行就多加几个信号`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2021/04/29 19:20:53// Design Name: 离离离谱// Module Name: timu1// Pro
2021-05-19 21:49:36
190
原创 可变奇偶分频的Verilog实现
使用Verilog描述一个可变N(1-8)分频的时钟分频器,要求其时钟输出为50%duty偶分频没什么难的,只需要上升沿计数到 N /2 -1, 再计数到 N-1。不用到下降沿奇分频(占空比50%)实现奇数(N)分频,分别用上升沿计数到(N-1)/2,再计数到N-1;用下降沿计数到(N-1)/2,再计数到N-1,得到两个波形,然后把它们相或即可得到N分频。`timescale 1ns / 1ps///////////////////////////////////////////////////
2021-05-19 16:30:00
356
原创 HDLbits---Exams/review2015 fancytimer
HDLbits—Exams/review2015 fancytimer这一题同样困扰了我几天,今天把HDLbits—Fsm serialdp 和这题都给完成了,之前的发现自己犯的错是把输入wire型的放在时序逻辑中输出,但是应该是使用寄存器再assign输出才对。慢慢写倒是一次写出来了。历时2周终于把HDLbits刷完了,接下来学习找工作需要的内容了module top_module ( input clk, input reset, // Synchronous reset
2021-04-24 15:46:24
825
原创 HDLbits---Fsm serialdp
HDLbits—Fsm serialdp这道题真的恶心,当时用了个各种方法,加了各种状态,就是不成功,主要是想写成标准的三段式状态机,所以看了别的博主的方法感觉不适合自己。磨了三天才写出来,但是结果是好的,主要问题是奇偶检验模块的重置功能写的太随意了,感觉只要在一开始的时候控制一下重置就行了,结果就是开始和结束状态要好好控制。module top_module( input clk, input in, input reset, // Synchronous reset
2021-04-24 11:24:07
1619
原创 HDLbits---Exams/review2015 fsm
HDLbits—Exams/review2015 fsm这道题其实就是前面几道题目的组合,可以分成以下3个部分来看,第一部分状态机,时序检测1101,当检测到时,进入第2部分,将shift_ena使能拉高4个周期,这里用2位计数器完成,当计数完成时,等待done_counting信号,同时把counting拉高,最后等待ack信号。如果不想用计数器也可以多用几个状态机,就是写起来各有利弊吧。module top_module ( input clk, input reset,
2021-04-22 10:30:46
561
原创 HDLbits---Exams/m2014 q6
HDLbits—Exams/m2014 q6状态转移图完成就好了不需要任何解题思路module top_module ( input clk, input reset, // synchronous reset input w, output z);parameter A = 3'b000,B= 3'b001,C= 3'b010,D= 3'b011,E= 3'b100,F= 3'b101; reg[2:0]state,next_state; al
2021-04-21 11:28:17
820
原创 HDLbits---Exams/2014 q3c
HDLbits—Exams/2014 q3c如果不是为了符合题目要求而只是得到答案,那题目很简单module top_module ( input clk, input [2:0] y, input x, output Y0, output z); assign Y0 = ((~y[2]&y[0])|(y==3'b100))&~x | (~y[2]&~y[0])&x; assign z = (y == 3'b01
2021-04-21 10:31:34
857
原创 HDLbits---Exams/2014 q3bfsm
HDLbits—Exams/2014 q3bfsm这道题很简单没什么好说的module top_module ( input clk, input reset, // Synchronous reset input x, output z);parameter S0 = 3'b000 ,S1 = 3'b001,S2 = 3'b010,S3 = 3'b011,S4 = 3'b100; reg [2:0] state,next_state; alway
2021-04-20 20:16:33
679
原创 HDLbits---Exams/2014 q3fsm
HDLbits—Exams/2014 q3fsm当s为0时,进入B状态,然后会检查w的值,如果在接下来的三个周期中w值有两个周期都为1,那么z输出1,否则z输出0。注意,这里隐含的条件是不重叠检测,意味着每三个周期检查一次,周期与周期之间不重叠。一开始没看清楚以为会是重叠检测,结果没这么复杂。习惯输出用时序逻辑,所以考虑的是在计数时钟counter == 2时的2种情况,看了别人的使用assign也挺方便的。module top_module ( input clk, input res
2021-04-20 19:48:36
546
3
原创 HDLbits---Exams/ece241 2013 q8
HDLbits—Exams/ece241 2013 q8这题没什么难度,尝试写写不一样的写法module top_module ( input clk, input areset, input x, output z); parameter S0 = 1'b0,S1 = 1'b1; reg state,next_state; always@(posedge clk or posedge areset)begin if(areset)be
2021-04-20 16:21:48
163
原创 HDLbits---Exams/ece241 2013 q8
HDLbits—Exams/ece241 2013 q8这道题目就是一道mealy型状态机序列检测的问题,检测“101”序列。之前那道序列检测的题想要尽可能化简状态,可能得改变下思路。module top_module ( input clk, input aresetn, // Asynchronous active-low reset input x, output z ); reg [1:0] state,next_state; parame
2021-04-19 11:09:29
547
原创 HDLbits---Fsm serialdata
HDLbits—Fsm serialdata和上一个题目,没什么区别,就加了个输出数据module top_module( input clk, input in, input reset, // Synchronous reset output [7:0] out_byte, output done); // reg [7:0] temp; parameter S0 = 2'd0,S1= 2'd1,S2= 2'd2,S3 = 2'd3;/
2021-04-17 11:01:37
852
原创 HDLbits---Fsm serial
HDLbits—Fsm serial题目比较容易,题目中的in信号包含了一个起始位(0),8个数据位和一个停止位(1),开始in为1,也就是S0状态,当in为0是,进入S1状态,然后经过8个周期进入S2,如果in为1,进入第二轮S0状态.否则进入S3状态,接着如果in为1,回到S0状态,否则保持S3状态。一开始没有考虑没有达到预期的状态,后来增加了一个状态才成功了。module top_module( input clk, input in, input reset, //
2021-04-17 10:34:52
1386
原创 HDLbits---Fsm ps2data
HDLbits—Fsm ps2data这道题目相比上一道多了数据位输出,当done信号为1时,输出24bit的数据,这24bit的数据高8位,中8位,低8位分别从in[3]为1开始计起,依次输出。done信号为0的时候不关心数据信号。out_bytes这个信号感觉只有用assign才能周期匹配,而done可以使用assign或者在s2状态就赋值1。主要是熟悉三段式状态机的写法。关于三段式状态机的一点总结确定输入输出信号,及其类型(是wire还是reg);声明内部信号,一般需要定义current_
2021-04-16 22:11:57
702
原创 HDLbits---Lemmings3
HDLbits---Lemmings3作者说如果旅鼠在地面上(ground = 1)并且挖掘信号为1,则它可以开始挖洞,一直挖,直到把地都挖穿了(ground = 0),此时,旅鼠就掉下去了,并且发出大叫。一开始以为dig会一直保持,结果只有一个周期的高电平,而只有当ground = 0时,才会从挖掘状态跳变成别的状态。module top_module( input clk, input areset, // Freshly brainwashed Lemmings walk l
2021-04-16 14:19:16
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人