6 qq_16923717

尚未进行身份认证

暂无相关简介

等级
TA的排名 4w+

FPGA实现对数log2和10*log10

找到的实现对数的方式有三种:LUTCordic无名LUT只能用在输入参数较少的情况中,Cordic看了下,感觉还挺复杂的,就没看了……这里主要讲第三种方式,无名是因为没有找到叫什么名字,它的基本思路是先求log2然后在用换底公式求log10。1. 求log2log_2log2​观察下面的表格可以发现,只要找到了输入二进制从高位开始第一个为1的bit的位置,就能知道其log2的...

2019-08-16 16:32:35

自己常用的Python正则表达式

贪婪匹配与非贪婪匹配与修饰符re.sub的lambda用法search返回的group链接1. Python re模块2. 菜鸟教程正则表达式3. 博客Python re模块4. 网易云课堂:看文档学爬虫——Python正则表达式..........

2019-04-23 00:19:42

关于FPGA设计中实现信号延时的资源消耗

在FPGA设计中我们经常会遇到对一个信号进行延时的情况,一般只延时一个或几个CLK时,通常是直接打拍,如果要延时的CLK较多时,我们会选择移位寄存器IP核,而有时为了方便,我们常常会使用下面的方式always @ (posedge clk) begin a <= {a[WIDTH-2: 0], en};end前段时间我临时对一个脉冲信号延时8192个CLK就使用了这种写法,当时有意...

2019-04-15 23:58:49

记一次FPGA工程艰难的debug经历(模块一定要寄存器输出)

最近调试一个项目,时序没有报错,仿真没有问题,但是上板始终差一个bit,因为更换过器件,所以怀疑IP,各种怀疑,最后没办法,只能在signaltap上一个模块一个模块抓,然后跟仿真结果对比,最终定位到一个计数器。计数器的代码如下always @(posedge clk or posedge reset) begin // 模块3 if (reset) dinCnter ...

2019-04-15 21:58:51

关于Altera stratix 4的PLL IP核生成的时钟频率不准

世界上没有PLL不能生成的时钟,如果一个PLL不够,那就两个 —— 尼古拉斯·赵四前两天调试一个项目的时候遇到一个pll的问题,感觉以后也会遇到类似的问题,记录一下。调试平台调试平台如下图所示,基带主时钟为56MHz,由外部输入125MHz的参考时钟给到PLL生成,DDC做一个14MHz的频谱搬移,DDC时钟也是56MHz,使用Cordic算法生成cos和sin信号(其实这里不需要用Co...

2019-04-15 21:52:33

自己常用的Python查找表

1. 进制转换(Python负数二进制补码)# 转10进制int('010', 2) # 2进制int('0x02', 16) # 16进制# 转2进制bin(10) # 10进制转二进制,输出'1010''{:08b}'.format(10) # 8bit的二进制,高位补零,输出'00001010'bin(pow(2,5)-10) # 求-...

2019-04-11 11:27:16

quartus prime pro联合modelsim仿真

装了一个18.1 pro版的quartus,发现Tool里面的run simulation不见了,在网上找了半天才发现下面这个链接。Simulation Quick-Start for ModelSim - Intel FPGA Edition ( Intel Quartus Prime Pro Edition)跟着这个链接一步一步往下走就可以了仿真了。但不得不吐槽的是,这样还叫联合仿真吗?除...

2019-02-21 16:31:52

如何减少FPGA工程编译时间

FPGA的调试过程是一个迭代过程,会不断的发现bug,然后编译,再调试。调试过程中最耗时间的可能往往是编译,即使是一个小的改动都需要对工程进行一次重编译,所以如何减少工程编译时间是提高工作效率的关键之一。主要可以通过以下几个方面减少编译时间,电脑配置、文件引用、增量编译和编译策略。1 电脑配置电脑配置越好,编译时间越短,这一点是毋庸置疑的。另外需要注意的是,在编译的时候尽量关闭其他占用...

2019-02-14 21:07:46

Python做上位机通过JTAG控制FPGA(1):如何使用quartus的tcl

参考资料:quartus handbook, Tcl scripting小节quartus中有个In-System Sources & Probes的IP核,让我们可以使用spf通过jtag向FPGA写入数据和读取数据。但是如果我们要写入大量的数据,这种手动的方式是不行的,好在quartus提供了Tcl命令控制的方式。那么问题来了,这个命令在哪里执行呢? Quartus中有个Tcl...

2019-01-20 17:44:25

网络适配器突然消失的解决办法

想改下IP突然发现网络适配器不见了,后来想起来应该是前一天电脑连了网,Windows进行了自动更新。自己更新出问题也是挺叼的……也没有什么好办法,只好祭出大杀器,系统还原了。系统还原不会删除文档资料等,但是之前系统变量等设置会被还原,需要重新设置。打开控制面板,改成小图标显示,找到疑难解答点击右下角的恢复打开系统还原找到更新之前的还原点,点击下一步、完成就好了...

2019-01-20 16:51:02

Quartus报错

quartus版本: Quartus Prime Standard Edition 18.1Error (15465): WYSIWYG primitive “XXXTop:XXXTop_inst|adc_dac_top:adc_dac_inst|ad_fifo:ad_fifo_ADC_I|ad_fifo_fifo_181_hbp6cpq:fifo_0|dcfifo:dcfifo_compon...

2019-01-09 14:21:39

CRC32的FPGA并行实现原理及MATLAB仿真

crc已经反反复复看了好多遍了,每次总是看到一半就放弃了,这两天终于明白了它并行实现的原理,写个总结。

2018-11-12 18:44:44

推荐几个自己常用的Windows轻量小软件

1. Clover资源管理器让资源管理器像浏览器一样具有标签和书签功能2. Q-dir资源管理器可以多种分屏,方便浏览和移动文件,有了Clover和Q-dir,文件管理就方便多了3. Snipaste截图工具贴图功能太赞了,F1快捷截图,F3将截图贴在屏幕顶层,抄东西和对比数据的时候非常方便4. Everything搜索工具是不是受够了Windows资源管理器龟速的搜索,想找个文件,...

2018-11-08 11:20:31

OFDM中循环前缀CP的作用

记一点对OFDM中CP作用的理解先来看ISI一般在网上或者其他什么资料里都会看到类似于下面的这张两张图,由于多径的存在,不加保护间隔的话,上一个符号的尾部会落入本符号的采样区间,引起ISI,假如保护间隔后就不会了,很好理解。但是让我迷惑的是,在采样区间内,后边红色的信号对蓝色信号的干扰和ISI干扰看起来不是一样的么?既然后边可以通过信道均衡解决,为什么ISI不可以?图片来源于这里http...

2018-11-01 18:02:28

记一个Verilog一段式状态机的低级错误

问题是这样的:我想在某个状态state1下根据输入a改变输出b的值,但是在芯片里运行的时候发现只要状态维持在state1下,b的值始终是从上一个状态跳到state1时的值,只有在state1变化的边沿,b的值才会根据输入a更新。原代码如下:always @ (posedge clk) begin if (rst) begin b <= 'd0; ...

2018-10-30 10:00:03

建立时间和保持时间的理解、相关计算及在FPGA设计中的应用

学数字电路设计或者面试相关岗位的时候,都需要理解掌握建立时间和保持时间的概念,而这个东西我觉得还挺绕的,看的时候都明白,转过身就忘了,每次要用的时候又到处找资料,理解半天,非常的浪费时间,所以这里用我个人比较容易理解的思路写个总结,加深记忆,也方便以后回顾。1. 分析模型理解建立时间保持时间需要一个模型,如图所示。起点是源触发器D1的采样时刻,终点是目的触发器D2的采样时刻,假设起...

2018-09-05 14:41:42

Python udp简单实现及报错问题

先安装socket库import sockets = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 获得本机IPmyname = socket.getfqdn(socket.gethostname())myaddr = socket.gethostbyname(myname)# 绑定端口s.bind((myaddr, 9527...

2018-08-30 13:58:23

Python库本地安装

2018-08-30 11:09:17

Verilog Coding Styles

参考自:http://guqian110.github.io/pages/2015/04/21/verilog_hdl_coding_style_guide.html好的代码风格不仅便于理解和重用,也便于综合工具的优化,Good Coding Styles应当从设计之初就开始了,因为模块划分的好坏会直接影响到代码的可读性和重用性。所以一开始我们就要遵循一定的规则对模块进行划分,然后...

2018-07-24 22:33:08

Verilog中的`timescale及它对仿真时间的影响

1.`timescale`timescale是Verilog中的预编译指令,指定位于它后边的module的时间单位和时间精度,直到遇到新的`timescale指令或者`resetall指令。它的语法如下:`timescaletime_unit/time_precision假如我们延时x个时间单位,那延时的总时间time=x*time_unit,但最后真正延时的时间是根据ti...

2018-07-18 17:50:23

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。