- 博客(34)
- 收藏
- 关注
原创 Verilog求log10和log2近似
Verilog求10对数近似方法:Verilog写一个对数计算模块Log2(x)FPGA实现对数log2和10*log10
2023-08-08 11:20:54
1219
原创 cdc跨时钟处理
亚稳态 (Metastability):如果数据传输中不满足触发器的建立时间要求和保持时间要求不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D的值一旦出现建立时间和保持时间违例,则有可能会导致系统发生亚稳态。
2023-08-04 17:47:00
332
原创 Verilog generate 和for的区别
使用generate和for时候一直糊里糊涂的使用,搞不清两则的区别,简单写了module来测试下综合后的效果。
2023-08-04 11:30:33
187
原创 DC综合后如何定位到源码
DC综合后如何定位到源码设计产生时序违例后,report_timing的报告路径通常为下图所示,由于包含很多综合后的cell,利用报告直接定位到源码进行分析关键路径较为困难,利用dc的gui界面辅助分析。1.启动dc或者直接在dc_shell中运行start_gui2.打开综合后的设计/或者直接运行dc.tcl进行综合3.打开Timing Pach4. 点击Ok5.按照Slack大小排序的路径(这里slack都为正)5. 打开改路径电路图6. 选中某一cell8.跳转到RTL
2022-02-09 09:38:12
1380
2
原创 verilog ahb single读写task
verilog ahb single读写taskahb_writeahb_readverilog握手只支持简单词读写,方便测试ahb_writeahb_readverilog握手SV:简单的握手,需要用<=,不然无法同时拉低verilog握手,需要使用2个同步打拍器
2022-01-27 11:34:45
1105
原创 802.11 NDP Sounding
NDP Sounding1.NDP原理2.NDP 过程3.帧结构3.1 NDPA结构3.2 CBF帧1.NDP原理802.11n标准提供的波束成形技术,可以通过预先补偿发射天线的相位,让两条波束进行叠加以实现最好的效果显式波束成形需要终端反馈信道信息:AP向STA发送探测数据(NDP: null data packet sounding)STA向AP反馈信道信息(Compressed beamforming)AP根据STA的反馈或自行计算的权重信息进行波束成形2.NDP 过程802.
2021-12-15 19:49:49
4917
原创 Using Tcl With Synopsys(一)
Using Tcl With Synopsys一.开始使用TCL1. 帮助命令: help2. 帮助命令: man3. 命令状态4.输出数据: echo和puts5.命令解析(parsing)5.1替换(substitution) [],$,/5.2 引用(substitution) ",{}5.3 特殊字符总结二. TCL基础1. 变量(Variables)2. 脚本Scripts1. 注释2. 加载脚本3. 重定向脚本输出4. 简单脚本实例3. 数据类型(Data Types)1.字符串(Strings
2021-05-14 17:15:43
2013
原创 IC设计中Makefile的应用
IC设计中Makefile的应用1. Makefile作用?2. Makefile入门结合自己理解并参考:芯片设计中的Makefile简明教程与Makefile文件中包含哪些规则1. Makefile作用?编写makefile文件本质上是帮组make如何一键编译,进行批处理,makefile文件包含的规则命令使我们不需要繁琐的操作,提高了开发效率。Makefile可以根据指定的依赖规则和文件是否有修改来执行命令。常用来编译软件源代码,只需要重新编译修改过的文件,使得编译速度大大加快。2. Ma
2021-05-11 19:22:27
6837
原创 Verilog 定点除法器设计
原理参考topmodule div_top #( parameter M = 5, parameter N = 3)( input clk, input rst, input en, input [M-1:0] divided, inpu
2021-05-10 19:12:57
1482
原创 Verilog 定点乘法器实现
Verilog 两种乘法器比较串行与流水乘法器串行与流水乘法器串行module multi_serial #( parameter M = 8, parameter N = 8)( input clk, input rst, input [M-1:0]
2021-05-07 20:46:34
2492
原创 Synopsys Tcl学习二
Tcl学习字符串数量统计控制流,函数和进程字符串数量统计#write into file tmp1redirect -file tmp1 {report_constraint -all_violators} #calculate total violationsset TNV [exec grep -c "VIOLATED" tmp1]echo "\nthe total number of violations is:\t$TNV"file delete tmp1redirect -va
2021-04-29 09:17:05
729
原创 Verilog状态机Moore 与Mearly
Verilog的Moore 与MearlyMoore型状态机:下一状态只由当前状态决定,即次态=f(现状,输入),输出=f(现状);Mealy型状态机:下一状态不但与当前状态有关,还与当前输入值有关,即次态=f(现状,输入),输出=f(现状,输入);下面从一个序列检测...
2021-04-29 09:14:28
2196
1
原创 IC设计中常用的Linux命令
IC设计中常用的Linux命令目录结构/ ------根目录/bin ------存放必要的命令/boot ------存放内核以及启动所需的文件/dev ------存放设备文件/etc ------存放系统配置文件/home ------普通用户的宿主目录,用户数据存放在其主目录中/lib ------存放必要的运行库/mnt ------存放临时的映射文件系统,通常用来挂载使用。/proc ------存放存储进程和系统信息/root ------超级用户的主目录/sbin
2021-04-22 16:28:05
597
原创 Perl在ASIC中的应用合集基础篇
文章目录实例一:用Perl脚本统计芯片综合或PR网表中的cell类型及每种cell的使用的个数实例二:利用Perl语言实现打印出杨辉三角本文所用的题目代码来源于Perl在ASIC中的应用合集,为了方便记录学习实例一:用Perl脚本统计芯片综合或PR网表中的cell类型及每种cell的使用的个数#!/usr/bin/perl -wuse strict;my %cells = ();open(FIN,"<netlist.txt") or die "can not open file";
2021-04-22 11:29:24
619
原创 Verilog2PSK数字调制实现
2PSK数字调制实现代码完全参考FSK实现: Verilog实现2FSK调制.不同之处在于输入一路为sin,一路为cos,通过输入选择实现180。反向仿真结果
2021-04-20 16:20:55
1659
1
原创 Verilog实现2FSK调制
2FSK数字调制实现FSK原理FSK原理FSK(Frequency Shift-Keying)频移键控分为非连续相位FSK和连续相位FSK,区别在于转换处是否连续。
2021-04-20 11:39:08
3976
7
原创 ASK数字调制解调实现
ASK数字调制实现Matlab仿真// An highlighted blockfc = 7*10^5; %载波频率fb = 1*10^3; %码率fs = 8*fb; %采样频率order = 1; %(n+1)进制调制%s随机产生基波y = randi([0,order],[1, 100]); %基波采样x_begin=0;x_end=1;mt = 0;x=0:fb/fs:length(y);for i=1:length(y) if(y(i)==1)
2021-04-14 20:44:35
7787
原创 IDA与windbg分析.dll库文件
windbg与IDA分析库文件IDA与windbg分析.dll库文件定位IDA与windbg分析.dll库文件IDA打开.dll库文件用windbg attach到指定某一进程(File->attach to a process),打开进程后会可在(Debug->modules)看到该进程用了那些.dll库文件IDA:修改基址让.dll库的地址与windbg保持同步(IDA:Edit->segments->Rebase program,Windbg:Debug->m
2021-04-12 16:03:28
2161
原创 perl 一些基本应用
perl 一些基本应用1.通过参数传入建立目录2. 读出文件改写后读入另一个文件3.将运行过程输出到同时打印到屏幕和log文件中4.文件复制5.随机选取数组里的数6.循环7. 数组大小8. 调用其它函数并匹配返回值9. 时间9.二分查找10.匹配在windows下实现,Linux少许不同1.通过参数传入建立目录die "Usage: 'this file' x,y.\n" unless @ARGV == 2;my $x = $ARGV[0]; my $y = $ARGV[0]; #可以通过参数传入目
2021-04-09 16:28:48
427
原创 FilterDesign
FilterDesign[0,wp]范围称为通带,通带纹波(指在滤波器的频响中通带的最大幅值和最小幅值之间的差值)。同样的,大于ws对于范围则是阻带,这个范围,称为阻带纹波。中间部分是过渡带。设计方法FIR和IIR的区别FIR: Window 窗函数法 如何快速设计一个FIR滤波器(二)FIR:Equiripple 等波纹法 等波纹FIR设计原理FIR: Least squares 最小二乘法IIR: 巴特沃斯IIR: 切比雪夫ⅠIIR: 切比雪夫ⅡIIR: Elliptic 椭圆
2021-04-08 10:43:43
1268
原创 Verilog异步FIFO实现
Verilog异步FIFO实现实现测试仿真实现`timescale 1ns/1psmodule asyn_fifo#( parameter data_width = 16, parameter ram_depth = 256, parameter ram_addr_width = 8) ( input rst, input
2021-04-07 16:16:59
412
1
原创 信号与系统基础
数字调制解调技术modem学习1.信号与系统基础1.四种变换1.信号与系统基础1.四种变换变换公式作用傅里叶FT(Fourier transform)拉氏变换(Laplace transform)离散时间傅里叶变换(DTFT)离散信号–>周期频谱Z变换...
2021-04-06 20:56:02
157
原创 Verilog并行FIR滤波器设计
并行FIR设计verilogMatlab 生成抽头系数设计一个2kHz采样,500Hz截止的15阶低通滤波器(h(n)长度为16),过渡带500~600Hz的FIR滤波器,量化位数为12bit,输入信号位宽也为12bit。Matlab 生成抽头系数// An highlighted blockfs = 2000;%采样频率n = 15;%阶数qm = 12;%量化位数f = [500 600];fc = [0 f(1)*2/fs f(1)*2/fs f(2)*2/fs f(2)*2/fs
2021-04-06 14:07:46
2100
4
原创 DC脚本学习
代码来源于网上,方便自己查看,侵删man_flow.tclset SCRIPT_FILE script #建立放置脚本文件source ./$SCRIPT_FILE/set_env.tcl #设置环境变量source -echo ./$SCRIPT_FILE/file_create.tcl #生成放置报告和结果的文件夹set cache_write WORK/$file_versionset cache_read WORK/$file_version# set COMPILE
2021-03-25 21:54:51
2258
1
原创 VCS和Verdi学习
VCS和Verdi学习1.使用Makefile2.不使用Makefile直接执行1.使用Makefile首先设置环境变量$Verdi_HOME建立Makefile 文件design_name = asyn_fifofsdb_name = $(design_name).fsdb#use command "make vs" to run vsc and product fsdb filevcs: vcs \ -full64 \ #64bits -f flist.f \
2021-03-25 21:36:04
4041
原创 Synopsys Tcl 命令学习整理
命令功能举例history -redo -2执行倒数第二条命令!!执行上一条命令!6:执行num=6的命令help帮助help for*:支持匹配man帮助man topicappend末尾追加字符append c1 " " $c2 : $c1 $c2incr累加incr b -6: 减6unset删除变量unset ainfo exists检查变量是否存在,存在返回1info exists cellsi...
2021-03-20 15:15:23
732
原创 IDA结构体操作
IDA结构体操作1.自定义ida结构体2.批量导入.h文件建立结构体1.自定义ida结构体1.打开view -> open subviews -> Structures-2.定义结构体Ins/Del : create/delete structureD/A/* : create structure member (data/ascii/array)N : rename structure or structure memberU : delet
2021-03-19 16:49:24
2689
原创 数字电路静态时序分析基础五
时序检查:特殊时序检查1.多周期时钟2.半周期时钟路径2.1 建立时间2.2 保持时间3.伪路径4.跨时钟域时序分析4.1 慢时钟到快时钟4.1.1 建立时间4.1.2 保持时间4.2 快时钟到慢时钟4.2.1建立时间5. 多时钟5.1 整数关系5.2 非整数倍5.3 相位移动文章来源于课程1.多周期时钟多周期约束capture 在第三个周期hold设置往前面移动2个周期不符合需求的checkmin 可能一个时钟launch就到达了2.半周期时钟路径2.1 建
2021-03-18 22:57:06
471
原创 数字电路静态时序分析基础三
数字电路静态时序分析基础建立静态时序分析的环境1. 时钟约束1.1 建立时钟 creat_clock1.2 时钟不确定性 set_clock_uncertainty1.3 时钟延迟 set_clock_latency1.4 生成时钟 creat_generate_clcok2. 外部约束2.1 输入延时 set_input_delay2.2 输出延时 set_output_delay3. DRC4. Virtual clock5. Refining the Timing Analysis来源:IC创新学院
2021-03-17 22:38:58
2925
原创 数字电路静态时序分析基础二
静态时序分析主要有两个用途,一是确定布局布线后对电路的时序进行分析,检验时序设计的合理性。二是在布局阶段估算路径的延时裕量,指导布局的时序优化。在时序驱动的布局过程中,时序分析是很重要的一环。STA主要通过路径延时模型来计算电路路径延迟[1][2]
2021-03-17 20:43:42
1334
原创 改环境变量输出vivado log信息
改环境变量输出vivado log信息)IDA打开库后,找到getenv函数,其中HDDL_DEBUG_PATHDELAY则是我们需要的环境变量设置linux环境变量setenv HDDL_DEBUG_PATHDELAY 1重新开启一个终端,使得环境变量生效命令行执行vivado,可以看到平时无法看到的log信息输出vivado -mode batch -source vvd.tcl -notrace -tclargs vvd fd_lut6.v | tee log.txt...
2021-03-17 13:58:34
974
1
原创 数字电路静态时序分析基础一
数字电路静态时序分析基础1.TCL入门1.1 变量、数组、列表1.1.1 变量1.1.1.1 设置变量替换1.1.1.2 用[]表示命令置换/转义1.1.1.3 花括号与双引号1.1.2 数组1.1.3 列表1.2 控制流1.2.1 控制流-if1.2.2 循环指令-foreach1.2.3 循环控制指令-break1.2.4 循环控制指令-continue1.2.5 循环控制指令-while1.2.6 循环控制指令-for1.3 过程函数1.3.1 定义1.3.2 属性来源:IC创新学院 方便自己查看
2021-03-16 21:08:05
1138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人