12 2023 档案

摘要:服务器使用 登陆服务器:输入账号密码 打开terminal,保证至少一个terminal窗口是打开的 取消Linux操作系统的屏幕保护 设置Linux EDA工具配置 // 自定义环境变量设置 gvim ~/.bashrc // 打开~/.bashrc文件之后,查看其中是否存在下面语句 // 如果存 阅读全文
posted @ 2023-12-31 17:02 Icer_Newer 阅读(31) 评论(0) 推荐(0) 编辑
摘要:时钟域的理解 在仿真过程中,时钟跳变的一瞬间,CPU将时间域划分为不同的时钟域执行不同的代码 信号在芯片中都是金属丝,在进行跳变的时候都是电容的充放电过程,通常使用时钟上升沿进行模拟,而不使用时钟下降沿 // define the interface interface mem_if(input w 阅读全文
posted @ 2023-12-27 23:00 Icer_Newer 阅读(18) 评论(0) 推荐(0) 编辑
摘要:接口 module可以例化模块,可以例化接口 接口不能例化模块 采样和数据驱动 时钟驱动数据,数据会有延迟,RTL仿真的时候,不会仿真出这个延时;RTL仿真的时候,不会仿真出寄存器的延时;只有在门级仿真的时候,才会表现出来 时钟对于组合电路的驱动会默认增加一个无限最小的时间的延时(delta-cyc 阅读全文
posted @ 2023-12-26 23:24 Icer_Newer 阅读(377) 评论(0) 推荐(0) 编辑
摘要:SD_clk 测试模式下,选择hclk,将扫描链中的时钟保持一致 clk_en表示可以通过软硬件关闭时钟 sd_if模块 模块中设置一些寄存器,我们可以对寄存器进行读写或者对于寄存器中的某些域段进行读写操作 对于AHB总线的协议进行解析,将address phase和data phase进行对齐 a 阅读全文
posted @ 2023-12-24 21:08 Icer_Newer 阅读(112) 评论(0) 推荐(0) 编辑
摘要:FIFO有一个读口和一个写口,读写时钟一致是同步FIFO,时钟不一致就是异步FIFO IP设计中通常使用的是同步FIFO 异步FIFO通常使用在跨时钟域设计中 RAM(Random Access Memory)的设计 FIFO中的数据可以存储在寄存器中或者SRAM中,FIFO的容量比较小的时候,使用 阅读全文
posted @ 2023-12-18 17:24 Icer_Newer 阅读(158) 评论(0) 推荐(0) 编辑
摘要:设置及综合流程 阅读全文
posted @ 2023-12-17 19:01 Icer_Newer 阅读(29) 评论(0) 推荐(0) 编辑
摘要:在 compile之前保存ddc设计文件 check design - 检查文件的连接性和物理性 check design之后可以将未映射的网表写出,如果是几十万级的RTL,如果不写出,设置约束出现问题,更改之后,前面的流程需要重新进行,花费时间 check design之后写出未映射的网表,再读入 阅读全文
posted @ 2023-12-17 18:57 Icer_Newer 阅读(187) 评论(0) 推荐(0) 编辑
摘要:Timing Constrain clk3和clk4 - 异步 clk2和clk1 - 同步 有四个clk,所以要设置四个clk的周期 latency - Net delay,走线的延时 uncertainty - clk skew和clk jitter和毛刺 transition - 时钟跳变的时 阅读全文
posted @ 2023-12-16 15:12 Icer_Newer 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Prime Time是对timing进行分析 Prime Time使用的是STA方法进行分析 工具会有更新,但是核心内容是不变的 Prime Time(intro to STA) 没有PT工具的时候,check timing需要对于门级电路进行仿真,耗时时间长 PT用于静态时序分析的工具 PT工作在 阅读全文
posted @ 2023-12-16 13:46 Icer_Newer 阅读(294) 评论(0) 推荐(0) 编辑
摘要:目录 Cortex Vendor - ARM介绍 ARM主要提供指令集,需要授权 ARM使用的RSIC结构,功耗比较低 Cortex M3整体架构 核心是Processor Core - 包含寄存器和累加单元,指令的取指,译码,执行单元 Nested Vectored Interrupt Contr 阅读全文
posted @ 2023-12-11 22:27 Icer_Newer 阅读(456) 评论(0) 推荐(0) 编辑
摘要:概述 接口 main bus有很多信号线 verilog会先将模块的输出信号拉出来,然后再将其连接到其他模块,进行不同模块之间的连接比较麻烦且容易出错 interface - 将端口封装到接口中 接口的内容 interface和module用法类似 interface......endinterfa 阅读全文
posted @ 2023-12-10 17:35 Icer_Newer 阅读(13) 评论(0) 推荐(0) 编辑
摘要:过程语句块特性 ABC 过程块语句 always_comb 防止多驱动的问题:赋值块左侧的语句无法被另一个过程块赋值 if语句没有写else,sv会提示警告,sv认为是latch always不会再仿真0时刻进行触发 敏感列表 - 只要列表中的变量变化一次,always块中的语句就执行一次 alwa 阅读全文
posted @ 2023-12-10 15:11 Icer_Newer 阅读(35) 评论(0) 推荐(1) 编辑
摘要:概述 常见使用方式 string b; string b=""; // 拼接字符串 string a = {"hi",b}; // 将字符串a赋值给[15:0]长度的变量r // 将字符串赋值给四值逻辑logic - 使用显式数据类型转换 // 显式数据类型转换:dst = T'(src) r = 阅读全文
posted @ 2023-12-10 08:34 Icer_Newer 阅读(279) 评论(0) 推荐(1) 编辑
摘要:概述 自定义类型 枚举类型 定义枚举值 自定义枚举类型 枚举类型之间进行赋值是可以的 枚举类型可以赋值给整型,整型不能直接赋值给枚举类型 枚举类型 + 1 ==> 会进行隐式的转换,枚举类型转换为int类型,结果为int类型,然后在赋值给枚举类型是不允许的 D 结构体类型 阅读全文
posted @ 2023-12-09 21:31 Icer_Newer 阅读(35) 评论(0) 推荐(0) 编辑
摘要:Verilog数据类型 变量类型 - 用于存储值 线网类型 - 用于连接硬件模块 reg - 在硬件中可能会被综合成DFF和Latch 线网类型 线网的驱动 - 可以是门,也可以是实例化的门 变量只能通过过程赋值进行赋值 - initial/always integer - 32bit,有符号数 - 阅读全文
posted @ 2023-12-09 20:37 Icer_Newer 阅读(86) 评论(0) 推荐(0) 编辑
摘要:System Verilog概述 路科验证视频,B站可看(补充一下知识) 学习SV之前,最好有Verilog基础 SV诞生 SV发展历史 Verilog - 偏向于设计 System Verilog - 偏向于验证 SV的语言继承历史 阅读全文
posted @ 2023-12-09 19:47 Icer_Newer 阅读(9) 评论(0) 推荐(0) 编辑
摘要:1. if-else语句 能够使用if条件语句进行条件判断 1.1 if 语法 if 条件 then 命令 fi if 条件; then 命令; fi 1.2 if-else 语法 if 条件 then 命令 else 命令 fi 1.3 if elif else 语法 if 条件1 then 命令 阅读全文
posted @ 2023-12-09 15:24 Icer_Newer 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1.expr命令 expr (evaluate expressions 的缩写),译为“表达式求值”。Shell expr 是一个功能强大,并且比较复杂的命令,它除了可以实现整数计算,还可以结合一些选项对字符串进行处理,例如计算字符串长度、字符串比较、字符串匹配、字符串提取等. 1.1 计算语法 e 阅读全文
posted @ 2023-12-09 13:54 Icer_Newer 阅读(52) 评论(0) 推荐(0) 编辑
摘要:Clocking:激励的时序 memory检测start信号,当start上升沿的时候,如果write信号拉高之后,将data存储到mem中 start\write\addr\data - 四个信号是同时在start上升沿进行,在采样的时候,testcase和Dut都是module,write采样的 阅读全文
posted @ 2023-12-07 23:46 Icer_Newer 阅读(20) 评论(0) 推荐(0) 编辑
摘要:内容 验证平台与待测设计的连接 VTB driver和dut之间的连线通过tb中声明wire连线 通过例化dut的方式进行连接 A module的input连接到B module的output SVTB SV:*端口连接 SV:name端口连接 Verilog传统连接方式的缺点 interface 阅读全文
posted @ 2023-12-07 22:14 Icer_Newer 阅读(24) 评论(0) 推荐(0) 编辑
摘要:内容 module/block有100个feature,验证需要有1000个test,需要有计划,按照节点进行 验证策略 验证RTL code和design spec一致性 资源:VCS license/磁盘空间 验证内容:功能验证 验证结束 - test pass/coverage 验证进度 验证 阅读全文
posted @ 2023-12-07 21:25 Icer_Newer 阅读(51) 评论(0) 推荐(0) 编辑
摘要:System Verilog进行验证是可以不综合的 发现DUT中的功能问题 预备知识:Linux/verilog/gvim System Verilog学习目录 System Verilog Testbench功能 DUT - 待测试对象,RTL代码 产生激励(generate) 驱动激励(driv 阅读全文
posted @ 2023-12-06 23:39 Icer_Newer 阅读(22) 评论(0) 推荐(0) 编辑
摘要:目标 设计流程 验证设计文档和RTL code之间的关系 RTL code(DUT) - 可以当作是一个黑盒,DUT内部是完全不可见的 白盒验证 - DUT内部RTL完全可见 灰盒验证 - DUT内部的RTL部分可见 工具 主流EDA 设计节点 DV - 特指是功能验证,主要是system veri 阅读全文
posted @ 2023-12-05 23:28 Icer_Newer 阅读(35) 评论(0) 推荐(0) 编辑
摘要:取消高亮显示空格和Tab gvim ~/.vimrc # 在.vimrc文件中 set nohls # shell中执行 source ~/.vimrc ./vimrc是Gvim的配置文件 Gvim新建窗口 :tabnew # 切换窗口(坐下上右切换) ctrl + w + h/j/k/l 设置链接 阅读全文
posted @ 2023-12-05 22:40 Icer_Newer 阅读(17) 评论(0) 推荐(0) 编辑
摘要:环境建立命令与变量 综合主要的三部分:RTL\目标工艺库\约束文件 DC综合过程中timing > area,在时序满足的条件下进行面积优化 RTL一般会映射为standcell(与非门),需要将对应的目标工艺库(target library) 如果在RTL中不止使用了target library中 阅读全文
posted @ 2023-12-04 23:53 Icer_Newer 阅读(144) 评论(0) 推荐(0) 编辑
摘要:1.算术运算符 1.1 expr命令 expr 是 evaluate expressions 的缩写,译为“求值表达式”。Shell expr 是一个功能强大,并且比较复杂的命令,它除了可以实现整数计算,还可以结合一些选项对字符串进行处理,例如计算字符串长度、字符串比较、字符串匹配、字符串提取等, 阅读全文
posted @ 2023-12-03 12:35 Icer_Newer 阅读(282) 评论(0) 推荐(1) 编辑
摘要:1.内置命令介绍 Shell 内置命令,就是由 Bash Shell 自身提供的命令,而不是文件系统中的可执行文件。 使用type 来确定一个命令是否是内置命令: type 命令 通常来说,内置命令会比外部命令(脚本文件)执行得更快,执行外部命令时不但会触发磁盘 I/O,还需要 fork 出一个单独 阅读全文
posted @ 2023-12-03 11:31 Icer_Newer 阅读(111) 评论(0) 推荐(0) 编辑
摘要:微架构设计思路 ahb_slave_if中的寄存器可以在datasheet中进行描述 sd_clk - 时钟产生模块的接口描述 sd_data_fsm和sd_cmd_fsm - 状态机描述 发送时序需要遵守,并且在发送的时候需要产生CRC 接受时序需要遵守,并且要接收CRC,进行比较 FiFo中有存 阅读全文
posted @ 2023-12-03 09:35 Icer_Newer 阅读(40) 评论(0) 推荐(0) 编辑