自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 verilog 计算log2的值

verilog log2计算

2023-02-01 15:55:51 889

原创 数据的大端小端存储

大端小端

2022-09-16 14:01:15 410

原创 异步复位同步释放

异步复位同步释放

2022-09-14 15:07:28 139

原创 python目前常用到的语句总结

python

2022-09-12 14:21:34 215

原创 时序分析寄存器到寄存器

对于FPGA的时序分析主要包括管脚和内部寄存器的时序分析,目前这边刚看了一点时序分析的资料,总结在这里,希望能够对大家也带来帮助。时序分析目前主要针对同步时序逻辑的静态时序分析(STA),主要涉及的概念整理如下大概有(后面有漏回来补充):时钟频率建立时间保持时间时钟相位偏斜(skew)建立时间门限保持时间门限组合逻辑延迟寄存器固有延迟数据到达时间建立时间余量保持时间余量概念的意义后面会介绍经典的寄存器到寄存器时序分析图:Com 表示combitional 组合逻辑时序路

2021-10-03 21:11:44 1469

原创 数字电路基础——序

目前重新学习数字电路,现将自己重新学习的过程记录下来,希望对大家也有帮助。个人目前的认知来看数字电路就是根据需求搭积木,从与,或,非,与非,或非,异或等最基本的门电路搭起基本常用的逻辑电路如加法器,选择器,编译码器,D触发器,锁存器等,再来搭起功能更加复杂更具有实际工程应用的器件。该学习过程跳过从mos管或者TTL(三极管)搭门电路部分,直接从最基本的门电路搭建基本逻辑电路开始。数字电路包括时序逻辑和组合逻辑,时序逻辑又包括同步时序和异步时序,该学习过程主要是组合逻辑和同步时序逻辑,中间包括跨时钟域处

2021-10-01 20:09:56 105

原创 makefile简单使用

最近用到makefile,跟着网上找了相关的教程学习了下,目前能写非常简单的makefile文件,先写在这里后面随着学习的深入再逐步更新:makefile用于编译文件效率非常高,目前这边用到他来执行命令:**格式:规则目标:规则依赖(tab键)规则命令…规则目标:规则依赖(tab键)规则命令**运行默认make是执行第一条规则目标(终极目标)**没有规则依赖的目标称为伪目标;伪目标需要特殊声明避免不能执行(如果磁盘有跟伪目标同名的文件则会导致该规则目标不能正确执行)用.PHONY来声明;

2021-09-22 17:46:31 267

转载 verilog 的几个波形任务函数

目前正用到波形任务函数,先记录下,如果后面有了深入的理解回来补充:xrun仿真工具要加的选项+access+r$dumpfile(“wave.vcd”);$dumpvars(0,tb_uut);xrun仿真工具要加的选项(需要知道fsdb的任务函数,加pli接口)-loadpli1 debpli:novas_pli_boot适用于verdi的$fsdbDumpfile(“wave.fsdb”);$fsdbDumpvars(0,tb_uut);适用于simvision的$shm_open

2021-09-20 16:55:53 1319

原创 VIM使用记录

VIM使用记录目前要全面在Linux系统上面写逻辑了,所以vim是要熟悉熟练应用起来了,这边将用到的命令更新记录在这里,以免自己忘记便于查找,同时也希望能够给大家有所帮助。**查找用的比较多:1.1 在普通模式下,shift+8 也就是 * 查找当前光标所在的单词并高亮显示,之后按n向下查找,按N向上查找;1.2 在普通模式下,:/word 查找word**替换在普通模式下,:%s/word0/word2/g 将word0替换位word2 全文替换 .**列操作在普通模式下,按下 c

2021-09-16 15:12:34 339

原创 异步复位同步释放

异步复位和同步复位各有优缺点,两者结合能够使系统更加稳定;目前这边总结编写了一个自认为比较通用的模块,分享给大家:参数ACTIVE_HI 表示系统高复位有效还是低复位有效;高复位有效传1’b1,低复位有效传1’b0;clk 系统时钟;async 异步复位输入;sync 同步复位输出;通过仿真验证,sync输出至少2个clk时钟周期;可以满足同步复位要求,clk至少一次采到sync信号有效;module async2sync#( parameter ACTIVE_HI = 1'b1)(

2021-07-18 16:07:55 94

原创 单bit跨时钟域处理的总结

最近在做一个小项目,里面涉及到了一个单bit的高脉冲跨时钟域处理,是从慢时钟域到快时钟域的,这个网上很多资料而且自己也是用过的方法就是:慢时钟域信号打1拍后快时钟域打两拍,如下://慢时钟域打1拍reg rlow ;alway@(posedge sclk) rlow <= low;//快时钟域打2到3拍reg [2:0] rfast;always@(posedge fclk) rfast <= {rfast[1:0],rlow};//快时钟域可以使用的信号always@(p

2021-07-18 16:00:06 670

原创 axi interconnect 中寄存器的使用

最近一天半的时间一直在查一个诡异的时序问题;pcie bridge + axi bram controller 无论怎么处理综合编译都会出现时序违例,没有任何思路;查看了路径是axi口上的时序违例,一直以为是ip内部的bug,然后查资料各种查有一篇文章比较好,放在这里分享给大家(侵删)Vivado时序违约小结违例有两种:1是logic level过长;2是fanout过多;目前这边是logic level 过长,然后想中间逻辑加寄存器将axi数据手动打拍,但axi是握手信号,这样会有问题;又是一顿查

2021-07-08 15:58:14 785 2

转载 vivado 生成网表

手头的工程需要生成网表,目前找到一篇很好的文章,搬运至此,分享给大家:【划水】Vivado生成网表文件是怎么回事呢?摘要如下:1.编译选项设置2.只编译3.编译后打开 systensis design4.tcl 窗口输入命令//vivado 2017.4及以前write_verilog -mode port <design_name>.v//vivado 2018.1及以后write_verilog -mode synth_stub <design_name>.

2021-07-01 16:59:17 2089

原创 直接数值频率合成DDS

DDS目前做了一个dds,通过学习目前总结里面有几个重要参数,罗列如下:首先给出框图直接数字频率合成技术的几个重要参数

2021-07-01 10:16:59 237

原创 xilinx vivado rom 初始化文件

coe文件:起始1行:memory_initialization_radix=10;该行设置文件中的数据格式:2–2进制、10–10进制、16–16进制第二行:数据向量,后面跟数据,除最后一个数据以“;”结尾,其他的以“,”隔开。memory_initialization_vector=0,1,2,3,4,9;ROM初始化rom在调用IP后在ip界面设置初始化文件路径在初始化后,如果coe文件更改了,一定要regenerate ip 否则仿真的时候初始化文件有可能一直是之前的;

2021-06-29 15:40:53 3314

原创 verilog浮点数的运算

最近在做一个涉及到浮点数的运算小项目,第一次接触,记录一下,如有不对之处还请帮忙指正:一般的浮点数表示为(符号位,总位宽,小数位)符号位:表示有没有符号位,一般是一位;总位宽:表示该数据的位宽总数;小数位:表示该数值的小数位宽;例如:(1,16,12)表示1位符号位,16位数据位宽,12位小数位,那么该数据的整数位为3位,该数表示的范围为-8.99999 ~ 7.99999;精度是1/2^12。加法和减法:运算跟普通的二进制运算没有什么区别;乘法:使用用定点算法来实现,例如(0,48,18)*

2021-06-28 16:16:04 3744

原创 zynq cdma hp访问ddr的cash问题

最近调试cdma通过hp口完成bram和DDR之间的数据搬移遇到一个非常有趣的问题,也是让这边苦恼了好几天;首先问题如下:1.上电debug开始ddr搬数据到bram是可以看到bram搬移成功;2.之后bram搬数据到ddr,mem查看窗口没有发现ddr对应地址段出现变化;3.程序写这块内存,mem查看窗口ddr地址段数据有变化;4.启动ddr该地址段搬到bram,—是之前的数据—5.程序更新bram中的数据后搬到ddr,mem查看窗口ddr地址段数据没有发生变化;6.启动ddr该地址段搬到b

2021-06-04 16:08:22 810 1

原创 FIFO空满标志的产生

自己写同步FIFO的时候,需要判断满空标志;使用冗余一位地址的方式来实现;假设实现一个深度为4的FIFO那么地址位宽设为3bit,最高bit实现满标志判断。地址变化如下:000001010011——实际地址使用低两位,此时已经写满了,再往下是套圈了;100101110111——再往下就循环之前的过程了好比在操场一圈跑步,读写指针相互追赶,实质上是写指针在前,读指针在后,应为F...

2020-03-04 15:01:07 4903

原创 CRC实现

CRC实现@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,...

2020-02-10 17:04:37 551

原创 PIO和DMA

PIO和DMA@TOCPIO和DMA是计算机访问外设的两种方式,PIO通过CPU执行端口指令访问外设整个过程有CPU参与,而DMA通过直接访问内存的方式,数据传输过程中不需要CPU介入,从而速率高。# 欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本...

2019-04-26 14:00:07 381

UART自收发代码,经上板验证

该代码完成了UART自收自发,使用verilog语言实现,波特率9600bps,1bit起始位,8bit数据,1bit结束位,以通过板上验证;带仿真文件,仿真平台Modelsim;

2019-03-27

空空如也

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

TA关注的人

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