现在位置: 首页 > techbulo发表的所有文章
  • 06月
  • 25日
FPGA开发 ⁄ 共 117字 vivado加快编译速度—-设置 多线程编译已关闭评论 ⁄ 阅读 3,511 次
在VIVADO中一个run编译时支持的线程数如下表:(综合时一般是2线程)   设置多线程的命令为:  set_param general.maxThreads 4 读取当前线程数的命令: 为get_param  general.maxThreads
阅读全文
  • 06月
  • 23日
常见问题 ⁄ 共 240字 Vivado IP核锁定的解决办法(两种解决办法)已关闭评论 ⁄ 阅读 11,961 次
发生IP核锁定,一般是Vivado版本不同导致的,下面介绍两种方法: 一、常用的方法 1.生成IP核的状态报告 Tools -> Report -> Report IP Status 2.点击Upgrade Selected 3.更新完成后IP Status 从此,被锁住的IP就可以正常配置了。 二、下面介绍另一种方法,对应上述方法不能使用的情况(Upgrade Selected 按钮是灰色的 情况) 在 Tcl console中 执行如下一条命令即可: upgrade_ip [get_ips]
阅读全文
  • 06月
  • 14日
常见问题 ⁄ 共 317字 Quartus II 13.1中sof2flash、elf2flash、elf2hex和bin2flash出错、无响应的问题解决已关闭评论 ⁄ 阅读 2,385 次
由于Quartus II® 13.1中的一个问题,运行Windows PC时,一些NIOS® II EDS工具可能会出错,但不会有任何错误输出或者信息提示。 受影响的工具分别是sof2flash、elf2flash、elf2hex和bin2flash 解决方案: 要在Windows系统下的Quartus II 13.1中解决这一问题, 可执行下面的步骤: 打开NIOS II命令行界面后,将名为QUARTUS_BINDIR的环境变量设置成/bin export QUARTUS_BINDIR=/bin 在Qsys中通过工具(Tools)菜单打开的Nios II命令行界面,然后运行所需的工具。 官方解释是这是一个软件版本的BUG,后续版本会更新。
阅读全文
  • 06月
  • 05日
常见问题 ⁄ 共 452字 Info: No EPCS layout data – looking for section [EPCS-EF4015]已关闭评论 ⁄ 阅读 1,691 次
项目中更换了大容量的EPCS,导致程序固化到EPCS时失败,出现如下错误: 出现这个错误的原因是没有配置芯片的说明。 解决方案: 1.在Nios-IDE的安装路径下的bin文件夹中 (比如我的系统中是 D:\altera\13.1\nios2eds\bin)新建一个文件 《nios2-flash-override.txt》 2.输入下述代码,下面描述的器件都是Altera的EPCS器件,sector_size表示sector大小,sector_count表示sector个数 [EPCS-EF4015] #EPCQ16A(lead-free) sector_size = 65536 sector_count = 32 根据报错的型号添加就可以了,比如我的报错 “Info: No EPCS la......
阅读全文
  • 05月
  • 30日
技术文章 ⁄ 共 1101字 __attribute__ 之weak,alias属性已关闭评论 ⁄ 阅读 1,722 次
Weak Alias 是 gcc 扩展里的东西,实际上是函数的属性。这个东西在库的实现里面可能会经常用到,比如 glibc 里面就用了不少。抄录一段 gcc 手册里面的话解释下函数属性是干啥的 In GNU C, you declare certain things about functions called in your program which help the compiler optimize function calls and check your code more carefully. 先上代码,看看 weak alias 怎么写。 第一个文件 dummy.c 内容 int __foo() { puts(”I do no thing.”); } int foo() __attribute__ ((weak,alias(”__foo”))); w......
阅读全文
  • 05月
  • 27日
技术文章 ⁄ 共 3323字 几种图像边缘检测算子的比较(转)已关闭评论 ⁄ 阅读 2,004 次
不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界。有可能有边缘的地方并非边界,也有可能边界的地方并无边缘,因为现实世界中的物体是三维的,而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息;另外,成像过程中的光照和噪声也是不可避免的重要因素。正是因为这些原因,基于边缘的图像分割仍然是当前图像研究中的世界级难题,目前研究者正......
阅读全文
  • 05月
  • 25日
技术文章 ⁄ 共 873字 Canny边缘检测算法详解(转)已关闭评论 ⁄ 阅读 11,241 次
1.Canny边缘检测基本原理 (1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。 (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。 (3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。 2.Canny边缘检测算法: step1:用高斯滤波器平滑图象; step2:用一阶偏导的有限差分来计算梯度的幅值和方向; step3:对梯度幅值进行非极大值抑制; step4:用双阈值算法检测和连接边缘。 算法详解 step1:高斯平滑函数 step2:用一阶偏导的有限差分来计算梯度的幅......
阅读全文
  • 05月
  • 22日
FPGA开发 ⁄ 共 496字 RAM-Based Shift Register的理解已关闭评论 ⁄ 阅读 3,406 次
举例说明,datasheet中给出了如下图所示例子: Shift Register 其中a抽头数为1,输入为8位,输出也为8位; b抽头数为4,输入为8位,因为有4个抽头,所以输出最多为4 X 8bit = 32位,同时也可以输出8位(与输入位宽一样) 如下图,配置起来非常灵活: shift_ram_1 shift_ram_2 总结概括起来:(基于上边的例子)基于RAM的移位寄存器可以输出shiftout[7..0],跟输入位宽一样。也可以输出taps[31:0],抽头就是输出位置,可以并行的输出1,4,7,10这个4个数,下一个时钟并行输出2,5,8,11这四个数,位宽=抽头数*输入数据位宽。
阅读全文
  • 05月
  • 21日
FPGA开发 ⁄ 共 367字 BT656数据解码时序分析小记已关闭评论 ⁄ 阅读 3,078 次
项目需要解码BT656数据做视频处理,使用fpga实现,写了个testbench模拟测试解码模块的功能,如下图所示(注意静态时序分析): data_flow 上图为整体数据流,在外界pix_clk的推动下,数据源源不断的被处理。 下图为寻找SAV标致并使能数据有效信号: sav 下图为寻找EAV标致并去使能数据有效:信号: eav
阅读全文
  • 05月
  • 18日
FPGA开发 ⁄ 共 312字 Vivado 时序 – 什么是 TNS、WNS、THS 和 WHS已关闭评论 ⁄ 阅读 6,214 次
编译完一个工程,会在Design Runs界面看到如下图内容: vivado 只知道这些数值和时序有关,不知道叫啥名,查看光放资料了解到各自的名字: WNS 代表最差负时序裕量 (Worst Negative Slack) TNS 代表总的负时序裕量 (Total Negative Slack),也就是负时序裕量路径之和。 WHS 代表最差保持时序裕量 (Worst Hold Slack) THS 代表总的保持时序裕量 (Total Hold Slack),也就是负保持时序裕量路径之和。   这些值告诉您的设计与时序要求相差多少。
阅读全文
  • 05月
  • 10日
常见问题 ⁄ 共 1271字 GNU LD 链接器脚本中 location counter 到底是怎样改变的?已关闭评论 ⁄ 阅读 1,738 次
本文内容无意间搜到,正好之前也有这个困惑,所以转来做个备份: 引入问题; 我写了一个简单的汇编语言例程,text.s section .text .globl _start _start: movq $1, %rax movq $0, %rbx int $0x80 用下面的ld脚本test.lds进行链接 SECTIONS { . = 0x10; label_1 = .; custom_section : { . = 0x20; label_2 = . ; label_3 = ABSOLUTE(.) ; *(.text) ; } } 链接命令为: as test.c -o test.o && ld test.o -o test -T test.lds 然后查看符号地址: nm test 结果如......
阅读全文
  • 04月
  • 15日
FPGA开发 ⁄ 共 406字 YUV格式数据接收,显示灰度图像到VGA已关闭评论 ⁄ 阅读 1,462 次
改了下ov7670的配置,改为YUV422输出,改了之后对于capture模块来说改动不是很大,像素时钟和RGB565的频率是一样的,现在亮度和速度信号分离开了,可以只把亮度信息显示出来,并在屏幕上叠加上了帧频: yuv 可以看出图像是黑白的,左下角绿色的是帧频,同时写了个uart串口模块,通过串口把帧频也打印了出来,1S打印一次: com 仔细一看串口打印的和屏幕叠加的数对不起来,串口打印的(0X1F 十进制是31),屏幕得加的是32,应该串口打印的是准确的,屏幕叠加的可能取余计算上有些问题,暂且这样吧。 下一步学些图像处理算法方面的东西。
阅读全文
×