
FPGA
eachanm
这个作者很懒,什么都没留下…
展开
-
MIPI协议介绍
PHY层主要规定了物理传输的各种电气特性,传输介质,序等,比如C-PHY就是需要三根线来进行传输,而D-PHY是数据和时钟分开进行传输协议层,主要负责像素层次的打包和解包,Lane层次的打包和解包,还有各种控制信息的组合应用层,就是我们自己想怎么用就怎么用了,比如拿到像素数据之后做各种图像处理算法PHY层PHY最外面对外的接口是有两种形式的HS 高速模式LP 低功耗模式这两种形式的接口在MIPI里面被组合成了一个接口,其实就是两种工作模式其中HS模式主要用于高速所数据传输,功耗较大。原创 2025-04-13 19:56:06 · 408 阅读 · 0 评论 -
vitis使用虚拟串口
下载完程序后,在这个框内输jtagterminal。然后enter,就弹出虚拟串口的界面了。然后编译程序,下载,下载完成后。原创 2025-01-08 11:25:18 · 251 阅读 · 0 评论 -
vivado sdk下载报错
解决方法:替换initialize file 文件。还有可能报set msgconfig 什么的,原创 2024-11-28 09:05:06 · 767 阅读 · 0 评论 -
双段式状态机的写法,实现010序列检测
其他序列检测可参照例程实现。原创 2024-11-13 17:00:38 · 133 阅读 · 0 评论 -
vivado中除法器ip核的使用
看了很多博客,都没写清楚,害。选择经过几个周期出结果。原创 2024-09-26 09:39:40 · 1211 阅读 · 0 评论 -
Global和Out of context(OOC)区别
从两种模式的区别可以看到,Global模式相当于每次都推倒重来,这就导致综合时,只要修改了一个IP,所有模块都要重新综合,大大的增加了综合的时间,而OOC每个IP都是自己综合成自己的网表文件,当一个IP修改时,别的未作修改的不会重新综合,使用之前综合好的网表即可,使得其综合时间显著降低,这就有点类似于全局编译和增量编译的意思。所以如果想编译的快一些,用OOC模式是一个明智的选择。原创 2024-09-24 10:46:41 · 732 阅读 · 0 评论 -
输入5个数,求中值,verilog实现
1实现思路有5个数a,b,c,d,e将其分为3组,ab, cd, ee留到最后再比较,先比较ab 和 cd设得出了ab的较小值 a a < b设得出了cd的较小值 c c < d第一个分支比较ac, 设a < c那么 a < c < d , a < b将b,e比较 ,1,b< ea < c < da < b < e接着对c和b比较,c<b,则 a<原创 2024-09-20 11:14:10 · 653 阅读 · 0 评论 -
verilog 实现精度量化(四舍五入)
在FPGA设计中,实现的精度量化的方式如下:其中a是要量化的数,quant 是量化因子,如果需要保留1位小数,则quant可以取4或者5,两位小数取7或8 , 3位小数取10或11等。原创 2024-08-28 11:30:25 · 519 阅读 · 0 评论 -
复现基于PYNQ-Z2的手写数字识别卷积加速器设计
来源雪天鱼。原创 2023-08-15 17:30:51 · 676 阅读 · 0 评论 -
verilog 实现异步fifo
【代码】verilog 实现异步fifo。原创 2023-08-10 16:24:15 · 566 阅读 · 0 评论 -
设计 FIFO 的深度
如果令wclk=200mhz,改为100个wclk里写入40个,rclk=100mhz,10个rclk里读出8个。(20个clk不发数据+80clk发数据+80clk发数据+20个clk不发数据的200个clk)代入公式可计算FIFO的深度。假设 FIFO 的写时钟为 100MHZ,读时钟为 80MHZ。在 FIFO 输入侧,每 100 个时钟,写入。如果100个写时钟周期可以写入80个数据,10个读时钟可以读出8个数据。3) 写入测每 B 个时钟周期有 A 个数据写入。我们需要考虑数据轻载和重载的情况,原创 2023-08-01 22:18:23 · 318 阅读 · 0 评论 -
静态时序分析教程
众所周知,PPA(功耗、性能、面积)这三个要素的合理平衡,是一款芯片能否成功的重要因素,Power Performance Area中,performance的衡量可以有很多因素,其中就包括频率性能,也就是时序需求,STA静态时序分析就是检查所设计的电路是否能满足时序需求的方法,设计工程师会在综合之后根据设计的sdc进行一次初步的STA检查,但是在综合阶段,许多关于时钟网络的假设其实是不可用的,只有当完成布局规划,做完时钟树综合。转载 2023-06-30 13:48:07 · 1618 阅读 · 0 评论 -
笔试题目汇总
8、设计一个带有多级缓存的存储器系统,使用 Verilog HDL 语言;2、设计一个 8 位累加器或计数器,使用 Verilog HDL 语言;4、设计一个带有多级缓存的 CPU,使用 Verilog HDL 语言;6、设计一个带有硬功能的中断控制器,使用 Verilog HDL 语言;9、编写一段C语言代码,实现数据总线控制器;3、编写一段C语言代码,实现多路复用器;7、编写一段C语言代码,实现时钟控制器;1、编写一段C语言代码,实现加法器;5、编写一段C语言代码,实现汇编器;原创 2023-05-10 10:07:05 · 82 阅读 · 0 评论 -
FPGA设计实战演练.高级技巧篇-----读书笔记
2、微带传输布局,走线在PCB的顶层或底层,只有一个参考平面。3、带状传输线布局,走线在PCB内层,有两个电压参考平面。·对所有器件进行电源滤波,均匀分配电源,降低系统噪声。·匹配信号线,减小信号反射。·降低并行走线之间的串扰。原创 2023-04-18 13:15:18 · 2090 阅读 · 0 评论 -
了解CAN
DLC位(数据长度代码):共4位,代表后面数据的字节的位数,如果是0001,则后面的数据为1个字节,共8位,如果是1000,则后面数据为8个字节,共64位。差分信号:压差为2V代表信号0(一个3.5V, 一个1.5V),无压差代表信号1(两个都是2.5V)IDE位:区分标准格式0( 有11位识别码)还是拓展格式 1 (29位识别码)can 可以看做一台计算机,内部集成了供电系统,单片机,驱动系统。识别码:器件地址(还代表发送的优先级,用位来对比,逻辑0优先)RTR位:区分是数据帧(0)还是远程请求帧(1)原创 2023-03-29 18:57:23 · 268 阅读 · 0 评论 -
verilog 输入4个4位的二进制数,从小到大排序后
【代码】verilog 输入输入4个4位的二进制数,从小到大排序后原创 2023-02-24 20:41:54 · 1205 阅读 · 0 评论 -
可综合的阶乘计算verilog
根据输入的选择数和数字(最大为5),输出数字的立方、平方或者阶乘,测试代码testbench。原创 2023-02-19 21:46:02 · 1191 阅读 · 0 评论 -
了解HDMI
HDMI 包含三种独立的通信通道:TMDS、DDC 和可选的 CEC 通道。原创 2023-02-14 16:23:42 · 1889 阅读 · 0 评论 -
实现占空比50%的奇数分频
2,实现奇数占空比50%的5分频需要在第2.5时拉低(计数5个数),因此需要借助下降沿的计数来实现。分频:单个时钟周期变长,频率变小,若50Mhz实现2分频,则分频后为25Mhz。1、正常分频,比如5分频,即计5个数(0-4),当计到4时拉高,(0-3拉低),使最后一个数(4)为高电平,其余为低电平。原创 2023-02-13 22:01:42 · 830 阅读 · 0 评论 -
阻止Quartus优化掉信号(keep preserve)
使用SignalTap II Logic Analyzer观察信号,有时要观察的信号会被Quartus优化掉,这种情况下可以给信号指定属性。如果是寄存器,并且不是零扇出,可以使用preserve属性。如果是组合逻辑信号(wire),可以使用keep属性。1)不会从该寄存器推断出状态机;2)对零扇出寄存器无效。转载 2023-01-31 12:04:42 · 1820 阅读 · 0 评论 -
verilog 数字系统设计读书笔记-------持久更新
/ P,Q,R都是4位3、integer 定义的整数可为负数4、编辑5、位拼接运算符必须指明位数,若不指明则隐含着为32位的二进制数,例{1, 0} = 64'h00000001_00000000//定义UDP的语法primitive 元件名 (输出端口名, 输入端口名, 输入端口名2...)output reg 输出端口名;input 输入端口名1, 输入端口名2...initialbeginendtableendtable。原创 2023-01-29 22:26:46 · 2148 阅读 · 0 评论 -
SD卡读写实验(SPI模式)
对于 SD 卡的 SPI 模式而言,采用的 SPI 的通信模式为模式 3,即 CPOL=1,CPHA=1,在 SD 卡 2.0 版本协议中,SPI_CLK 时钟频率可达 50Mhz。SD 卡的 SPI 模式,只用到了 SDIO_D3(SPI_CS)、SDIO_CMD(SPI_MOSI),SDIO_SC(SPI_SCK)和 SDIO_D0(SPI_MISO)引脚。原创 2023-01-20 16:42:37 · 6675 阅读 · 1 评论 -
No hardware target is open (xilinx )
1、一般情况下是因为Vivado的驱动没有安装好,只需要将驱动安装上即可,路径为Vivado\2018.3\data\xicom\cable_drivers\nt64\digilent\install_digilent.exe 建议在安装的过程中,将。,安装驱动成功后在重新开始打开vivado进行连接;否则可能会在安装后也不能正常连接。2、如果安装不了,需要下载最新驱动来安装,安装后打开vivado重新连接即可。原创 2022-08-22 23:00:58 · 3457 阅读 · 0 评论 -
Verilog语言中产生随机数
$random一般的用法是:$ramdom % b ,其中 b>0.它给出了一个范围在(-b+1):(b-1)中的随机数。例1:reg[23:0] rand; rand = $random % 60; 给出了一个范围在-59到59之间的随机数。例2:reg[23:0] rand; rand = {$random} % 60; 通过位并接操作产生一个值在0到59之间的数。例3:reg[23:0] rand; rand = min+{$random}%(max-min+1);产生一个在min, max之间随机原创 2022-07-06 09:57:52 · 1239 阅读 · 0 评论 -
50Mhz产生时间
50Mhz 对应一个计数为0.02us,也就是20纳秒,计数到1us要50个计数,其他可自己算,下面是产生1us、1ms、1s的方法原创 2022-07-05 22:18:35 · 12738 阅读 · 0 评论