自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 systemverilog读写二进制文件

int rd; int file = $fopen(path,"wb"); // open in binary mode if (!file) begin $error("File could not be open: ", path); return; end $fwrite(file, "%u", 32'h4D424D42); $fclose(file); // read back binary data from file file = $fopen (path,"r

2022-01-10 20:17:10 2781

原创 [Labtoolstcl 44-494] There is no active target available for server at localhost.

重启,然后参考Vivado常见问题之实验箱连接出错 [Labtoolstcl 44-494] There is no active target available for server at localhost.、

2021-08-20 13:57:05 1491

原创 vivado编辑器编写的代码用vscode打开出现乱码的问题

vivado工程代码使用vscode打开的方式参考用 Vscode 代替 Vivado 原生编辑器上面设置好了之后,如果之前的工程是直接用vivado自带编辑器写的,其采用的是ANSI编码格式,然而VSCODE里面没有这种编码格式选项,vscode的默认编码方式为utf-8,首先需要将vscode的默认编码方式更改为GB2312,更改方式为:文件-首选项-设置-搜索encoding 将编码方式改为GB2312即可上面设置好了之后双击vivado工程里面的文件,vscode打开后就不会出现乱码的问题了

2021-08-18 16:44:40 2711 2

原创 2021-07-13笔记torch cuda、python对应版本及安装

各种torch、torchvision 找到了满意的torchPytorch版本、CUDA版本与显卡驱动版本的对应关系cuda版本查看:cuda驱动下载cudnn和cuda的关系windows查看cudnn版本pytorch官网安装对应cuda版本的torch,一步到位anaconda更改python版本...

2021-07-15 09:19:00 1636

原创 一个写verilog简单好用的vscode插件:FPGA Develop Support

中文教程最喜欢它的语法高亮功能

2021-06-25 21:31:48 2191 1

原创 fpga与海思BT1120调试问题记录

项目需要将图像数据通过BT1120发送到海思芯片,为了使海思能最大概率采集到正确数据,需要将bt1120的随路时钟与bt1120数据中心尽可能对齐。因此需要一个与bt1120数据产生时钟相移180°的时钟。开始时通过反向器取反的方式输出一个随路时钟,发现海思时钟都不能接收到数据,反向时钟生成方式如下:assign bt1120_clk_output = ~ clk_in;综合出的原理图如下:中间经过了一个查找表,不知道是不是经过查找表产生的时钟延时不能满足要求导致时钟不能中心对齐数据中心,.

2021-06-15 15:45:51 1582

原创 差分时钟输入到IBUGDS遇到的问题

好像是引脚R8不能作为IBUGDS时钟引脚。原理图上的时钟适用于MGT的,MGT是高速串行收发器模块的简称,不能作为全局时钟树的输入时钟

2021-05-28 08:47:26 246

原创 VIVADO使用误区与进阶之9:读懂用好Timing Report

一、静态时序分析静态时序分析( Static Timing Analysis)简称 STA,采用穷尽的分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误并报告。STA 不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少、覆盖率极高,不仅可以对芯片设计进行全面的时序功能检查,而且还可以利用时序分析的结果来优化设计。所以 STA 不仅是数字集成电路设计 Timing

2021-05-21 13:24:58 1013

原创 VIVADO使用误区与进阶之8:在Vivado中实现ECO功能

一、什么是ECO?ECO 指的是 Engineering Change Order,即工程变更指令。目的是为了在设计的后期,快速灵活地做小范围修改,从而尽可能的保持已经验证的功能和时序。 ECO 的叫法算是从 IC 设计领域继承而来,其应用在FPGA设计上尚属首次,但这种做法其实在以往的 FPGA 设计上已被广泛采用。简单来说, ECO 便相当于 ISE 上的 FPGA Editor。二、ECO的应用场景和实现流程ECO 的应用场景主要包含:修改 cell 属性、增减或移动 cell、手动局部布线

2021-05-21 09:41:02 729

原创 VIVADO使用误区与进阶之7:用Tcl定制Vivado设计实现流程

一、基本的FPGA设计实现流程FPGA 的设计流程简单来讲,就是从源代码到比特流文件的实现过程。大体上跟 IC 设计流程类似,可以分为前端设计和后端设计。其中前端设计是把源代码综合为对应的门级网表的过程,而后端设计则是把门级网表布局布线到芯片上最终实现的过程。ISE 中设计实现的每一步都是相对独立的过程,数据模型各不相同,用户需要维护不同的输入文件,例如约束等,输出文件也不是标准网表格式,并且形式各异,导致整体运行时间过长,冗余文件较多。Vivado 中则统一了约束格式和数据模型,在设计实现的任何

2021-05-21 09:24:23 655 1

原创 VIVADO使用误区与进阶之6:Tcl在Vivado中的应用

1. Tcl的背景介绍和基础语法Tcl(读作 tickle)诞生于 80 年代的加州大学伯克利分校,作为一种简单高效可移植性好的脚本语言,目前已经广泛应用在几乎所有的 EDA工具中。Tcl 的最大特点就是其语法格式极其简单甚至可以说僵化,采用纯粹的 [命令 选项 参数] 形式,是名副其实的“工具命令语言”( 即 Tcl 的全称 Tool Command Language)。实际上 Tcl 的功能可以很强大,用其编写的程序也可以很复杂,但要在 Vivado 或大部分其它 EDA 工具中使用,则只需掌握其

2021-05-20 16:34:45 816

原创 VIVADO使用误区与进阶之5:XDC约束技巧之I/O篇(下)

1. Output接口类型和约束FPGA 做 Output 的接口时序同样也可以分为系统同步与源同步。在设置 XDC 约束时,总体思路与 Input 类似,只是换成要考虑下游器件的时序模型。另外,在源同步接口中,定义接口约束之前,需要用create_generated_clock 先定义送出的随路时钟。1.1 系统同步接口与 Input 的系统同步接口一样, FPGA 做 Output 接口的系统同步设计,芯片间只传递数据信号,时钟信号的同步完全依靠板级设计来对齐。所以设置约束时候要考虑的仅仅是下

2021-05-20 13:14:45 434

原创 VIVADO使用误区与进阶之4:XDC约束技巧之I/O篇(上)

1.I/O约束的语法XDC 中可以用于 I/O 约束的命令包括 set_input_delay /set_output_delay 和 set_max_delay / set_min_delay 。其中,只有那些从FPGA 管脚进入和/或输出都不经过任何时序元件的纯组合逻辑路径可以用set_max_delay / set_min_delay 来约束,其余 I/O 时序路径都必须由set_input_delay / set_output_delay 来约束。如果对 FPGA 的 I/O 不加任何约束,

2021-05-20 10:05:29 1047

原创 VIVADO使用误区与进阶之3:XDC约束技巧之CDC篇

1. CDC的定义与分类CDC 是 Clock Domain Crossing 的简称, CDC 时序路径指的是起点和终点由不同时钟驱动的路径。在电路设计中对这些跨时钟域路径往往需要进行特别的处理来避免亚稳态的产生,例如使用简单同步器、握手电路或是FIFO 来隔离。安全的CDC路径:所谓安全的 CDC 路径是指那些源时钟和目标时钟拥有相同的来源,在FPGA 内部共享部分时钟网络的时序路径。这里的安全指的是时钟之间的关系对 Vivado®来说是全透明可分析的。不安全的CDC路径:不安全的 CDC 路

2021-05-20 08:11:01 1170 2

原创 VIVADO使用误区与进阶之2:XDC约束技巧之时钟篇

一:XDC的基本语法XDC 的基本语法可以分为时钟约束、 I/O 约束以及时序例外约束三大类。根据 Xilinx 的 UltraFast 设计方法学中 Baseline 部分的建议( UG949 中有详细介绍),对一个设计进行约束的先后顺序也可以依照这三类约束依次进行。1. 时钟约束时钟约束必须最早创建。vivado自动推导的衍生时钟好处:MMCM/PLL/BUFR 的配置改变而影响到输出时钟的频率和相位时,用户无需改写约束, Vivado 仍然可以自动推导出正确的频率/相位信息。劣势:用

2021-05-19 21:08:03 1003

原创 VIVADO使用误区与进阶之1:十分钟教会你UltraFast

第一章:十分钟教会你UltraFast时序收敛十大准则:准则一:合适的风格代码理想环境下,源代码可以独立于最终用于实现的器件,但是由于底层器件各自独特的结构,决定了通用代码的效率不佳,要最大化发挥硬件的性能,需要为实现工具和器件量身定制代码。准则二:精准的时序约束精准的时序约束是设计实现的基础,过约束反而会阻碍时序收敛。通常第一次运行时只需要约束所有时钟,然后在内部路径基本满足时序约束的情况下加入关键 I/O 的约束,其次再考虑必要的时序例外约束。Baseline 基线方法可以说是 Ul

2021-05-19 17:16:35 989

原创 Vivado公开课-01基础篇:Vivado一切超乎想象 笔记

主要介绍3个部分vivado强大的分析能力vivado增强可视化分析能力灵活的互动性一.vivado强大的分析能力设计分析主要包括以下一些方面:时序Timing时钟网络Clock networks时钟交互Clock interactionUltra Fast 设计方法学(UFDM)设计规则检查(DRC)资源利用率(Utilization)功耗(Power)在综合或者布局布线后可以看到以上设计条目。以上条目也可以通过Tcl命令执行。1.时序分析下面是时序分析的

2021-05-17 10:26:36 1344 1

原创 FPGA里的bank是什么意思

参考链接就是共用一个电源的一组I/O管脚。为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。...

2021-05-12 15:28:54 2539

原创 [Place 30-99] Placer failed with error: ‘lO Clock Placer failed‘

参考链接Verilog顶层模块的clk时钟引脚必须绑定板子特定的时钟引脚

2021-05-12 15:26:16 5969

原创 pyqt5 progressBar引起的界面闪退的问题

progress = int(100 * self.idx3 / len(self.img_bgd_list_use))self.progressBar3_1.setValue(progress)直接使用以上代码会引起界面闪退,在用变量设置progressBar之前需要对progressBar进行初始化赋值,如self.progressBar3_1.setValue(0)...

2021-05-10 10:30:05 994

原创 如何解决IP模块内部出现的时序问题

在项目设计中用到了shift_register,设计完成后发现时序问题出现在shift_register内部,如下图所示:尝试将综合策略由默认改为性能最优保持时间的时序问题由原来的362减少为324,但是仍然没有解决根本问题解决方案参考1解决方案参考2相同问题...

2021-05-09 15:11:21 1571

原创 Detail enhancement for high-dynamic-range infrared images based onguided image filter 阅读笔记

论文链接摘要采用引导滤波器分离细节层和背景层,利用改进的直方图投影方式将背景层压缩到8bit,利用滤波器加权系数的增益掩模增强细节分量,然后将两部分进行重组。1 介绍考虑到显示器的显示范围以及人眼的视觉只能区分128个灰度级,因此需要进行动态范围压缩。常用的图像增强技术:(1)gama校正(2)AGC(简单,去除极值线性量化)(3)HE(非线性映射,但增强噪声,丢失细节,均匀区域被冲刷?)(4)HE衍生:全局直方图global HE(GHE),可通过调整参数抑制均匀区域的增强,包

2021-04-25 09:59:47 1137 3

原创 小数在fpga中怎么表示

小数在fpga中怎么表示在vivado的除法器IP中,小数部分最高位为符号位:除法小数点带符号fpga里面做小数乘法的问题:添加链接描述添加链接描述

2021-04-08 22:00:32 1715

原创 use of clock signal in expression not supported

不能在表达式中使用时钟信号。always @(posedge clk_in)begin bt1120_clk_output <= clk_in;//不能在表达式中使用clk信号 rstn_d1 <= rst_n; rstn_d2 <= rstn_d1;end

2021-04-07 12:26:42 857

原创 bt1120

添加链接描述

2021-04-05 22:58:42 804

原创 VivadoXDC约束常用命令

VivadoXDC约束常用命令

2021-04-05 16:59:49 309

原创 交互式分割

github地址

2021-03-24 17:44:30 694

原创 vector subscript out of range

原因是采用数组下标索引vector容器时下标越界。

2021-03-19 10:48:46 641

原创 visual studio C++ mkdir 路径创建失败的原因之一

img_write_path.assign("D:\\\\gd\\\\tiff_8bits\\\\" + CurrentDirPaths[i] + "\\\\" + "hist" + "\\\\");const char* strDirPath = "D:\\gd\\高德tiff数据_8bits\\hist";if (0 != access(img_write_path.c_str(), 0)){ // if this folder not exist, create a new one. if(

2021-03-19 10:45:56 2131

原创 使用template造成的错误:LNK:2019:无法解析的外部符号“void _cdecl...,该符号在函数...中被引用

使用了template的函数必须将定义和声明同时放在.h文件中,不能将定义放在.cpp,而将声明放在.h中。否则编译器在链接执行时找不到函数的定义。

2021-03-18 12:50:07 527

原创 第11章:关联容器

11.1 使用关联容器使用map一个经典的使用关联数组的单词计数程序:使用set11.2 关联容器概述关联容器不支持顺序容器的位置相关的操作,例如push_front或push_back,原因是关联容器中的元素是根据关键字存储的。11.2.1 定义关联容器定义一个map时,必须既指明关键字类型又指明值类型;而定义一个set时,只需要指明关键字类型,因为set中没有值。初始化multimap或multiset一个map或set中的关键字必须是唯一的,即,对于一个给定的关键字,智能有一个

2021-03-11 23:06:40 96

原创 E0040应输入标识符

原因是我的宏定义和opencv库函数里面的枚举类型变量名冲突了。以下是我的宏定义:

2021-03-11 16:15:38 2736

原创 第10章:泛型算法

顺序容器只定义了很少的操作,在多数情况下,我们可以添加和删除元素,访问首尾元素,确定容器是否为空以及获得只想首元素或尾元素之后位置的迭代器。如果用户还希望做其他更多有用的操作呢:比如查找特定元素,替换或删除一个特定值,重排元素顺序等。标注好难看并未给每个容器都定义成员函数来实现这些操作,而是定义了一组泛型算法,称它们为算法是因为他们实现了一些经典算法的公共接口,如排序和搜索,称它们是泛型的,是因为它们可以用于不同类型的元素和多种容器类型,不仅包括标准库类型,如vector或list,还包括内置数组类型。

2021-03-09 23:44:34 1011

原创 差分时钟作用

在用mig仿真DDR时,migIP核接口中包含了差分时钟。差分时钟是DDR的一个重要且必要的设计,但大家对CK#(CKN)的作用认识很少,很多人理解为第二个触发时钟,其实它的真实作用是起到触发时钟校准的作用。由于数据是在CK的上下沿触发,造成传输周期缩短了一半,因此必须要保证传输周期的稳定以确保数据的正确传输,这就要求CK的上下沿间距要有精确的控制。但因为温度、电阻性能的改变等原因,CK上下沿间距可能发生变化,此时与其反相的CK#(CKN)就起到纠正的作用(CK上升快下降慢,CK#则是上升慢下降快)。.

2021-03-09 10:56:41 4494

原创 第9章:顺序容器

9.1 顺序容器概述

2021-03-07 16:15:38 204

原创 将int8_t输出为16进制文件保存的时候出现多了很多f

fprintf(fp, "%02x", int8_t(-10));输出结果:fffffff6-10的十六进制表示是f6,但是在f6之前还有6个f,即使十六进制输出格式控制要求两位也没有用。解决方法:fprintf(fp, "%02hhx", (int8_t)(-10));输出结果:f6...

2021-03-05 15:42:13 452

原创 cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

参考链接RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR众所周知,该错误很难调试,但是令人惊讶的是,常常是内存不足的问题。通常,您会遇到内存不足错误,但是根据发生的位置,PyTorch无法拦截错误,因此无法提供有意义的错误消息。由于电脑配置有点差,在跑网络的时候打开了两个vivado工程和两个C++工程,导致电脑内存被占用,因此无法正常启动cuda,将上述工程关掉之后cuda启动正常...

2021-03-03 11:30:35 6972

原创 int8量化笔记

int8量化笔记

2021-03-02 15:44:33 204

原创 第8章:IO库

8.1 IO类IO类型间的关系继承的关系8.1.1 IO对象无拷贝或赋值进行IO操作的函数通常以引用方式传递和返回流。8.1.2 条件状态IO 可能出现错误,IO类定义了一些函数和标志帮助我们访问和操纵流的条件状态。查询流的状态IO库定义了一个与机器无关的iostate类型用于流的状态查询,可通过标准库函数进行查询管理条件状态rdstate成员返回iostate,对应流的当前状态,setstate成员将给定条件置位,表示发生对应错误。clear用于清除标志位。8.1.3 管

2021-03-01 00:10:28 49

原创 第7章:类

类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程技术。类的接口包括用户所能执行的操作,类的实现则包括类的数据成员,负责接口实现的函数体以及定义类所需的各种私有函数。封装实现了类的接口和实现的分离,封装后的类隐藏了它的实现细节,也即是说类的用户只能通过接口而无法访问实现部分。类想要实现数据抽象和封装,需要首先定义一个抽象数据类型,在抽象数据类型中,由类的设计者负责考虑类的实现过程;使用该类的程序员则只需要抽象地思考类型做了什么,而无需了解类型的工作细节。7.1 定义抽象数据类型

2021-02-28 21:34:22 165

空空如也

空空如也

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

TA关注的人

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