自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_16923717的博客

暂时还没有描述

原创 FPGA实现对数log2和10*log10

找到的实现对数的方式有三种: LUT Cordic 无名 LUT只能用在输入参数较少的情况中,Cordic看了下,感觉还挺复杂的,就没看了……这里主要讲第三种方式,无名是因为没有找到叫什么名字,它的基本思路是先求log2然后在用换底公式求log10。 1. 求log2l...

2019-08-16 16:32:35

阅读数 528

评论数 0

原创 自己常用的Python正则表达式

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

2019-04-23 00:19:42

阅读数 92

评论数 0

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

在FPGA设计中我们经常会遇到对一个信号进行延时的情况,一般只延时一个或几个CLK时,通常是直接打拍,如果要延时的CLK较多时,我们会选择移位寄存器IP核,而有时为了方便,我们常常会使用下面的方式 always @ (posedge clk) begin a <= {a[WIDTH-2...

2019-04-15 23:58:49

阅读数 411

评论数 0

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

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

2019-04-15 21:58:51

阅读数 368

评论数 0

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

世界上没有PLL不能生成的时钟,如果一个PLL不够,那就两个 —— 尼古拉斯·赵四 前两天调试一个项目的时候遇到一个pll的问题,感觉以后也会遇到类似的问题,记录一下。 调试平台 调试平台如下图所示,基带主时钟为56MHz,由外部输入125MHz的参考时钟给到PLL生成,DDC做一个14...

2019-04-15 21:52:33

阅读数 268

评论数 0

原创 自己常用的Python查找表

1. 进制转换(Python负数二进制补码) # 转10进制 int('010', 2) # 2进制 int('0x02', 16) # 16进制 # 转2进制 bin(10) # 10进制转二进制,输出'...

2019-04-11 11:27:16

阅读数 104

评论数 0

原创 quartus prime pro联合modelsim仿真

装了一个18.1 pro版的quartus,发现Tool里面的run simulation不见了,在网上找了半天才发现下面这个链接。 Simulation Quick-Start for ModelSim - Intel FPGA Edition ( Intel Quartus Prime Pr...

2019-02-21 16:31:52

阅读数 566

评论数 1

原创 如何减少FPGA工程编译时间

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

2019-02-14 21:07:46

阅读数 932

评论数 0

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

参考资料:quartus handbook, Tcl scripting小节 quartus中有个In-System Sources &amp;amp;amp; Probes的IP核,让我们可以使用spf通过jtag向FPGA写入数据和读取数据。但是如果我们要写入大量的数据,这种手动的...

2019-01-20 17:44:25

阅读数 525

评论数 0

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

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

2019-01-20 16:51:02

阅读数 4574

评论数 0

原创 Quartus报错

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

2019-01-09 14:21:39

阅读数 276

评论数 1

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

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

2018-11-12 18:44:44

阅读数 1882

评论数 27

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

1. Clover资源管理器 让资源管理器像浏览器一样具有标签和书签功能 2. Q-dir资源管理器 可以多种分屏,方便浏览和移动文件,有了Clover和Q-dir,文件管理就方便多了 3. Snipaste截图工具 贴图功能太赞了,F1快捷截图,F3将截图贴在屏幕顶层,抄东西和对比数据...

2018-11-08 11:20:31

阅读数 846

评论数 2

原创 OFDM中循环前缀CP的作用

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

2018-11-01 18:02:28

阅读数 7364

评论数 2

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

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

2018-10-30 10:00:03

阅读数 552

评论数 0

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

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

2018-09-05 14:41:42

阅读数 3971

评论数 0

原创 Python udp简单实现及报错问题

先安装socket库 import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 获得本机IP myname = socket.getfqdn(socket.gethostname()) myaddr = socke...

2018-08-30 13:58:23

阅读数 338

评论数 0

原创 Python库本地安装

2018-08-30 11:09:17

阅读数 5990

评论数 0

原创 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

阅读数 426

评论数 0

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

1. `timescale `timescale是Verilog中的预编译指令,指定位于它后边的module的时间单位和时间精度,直到遇到新的`timescale指令或者`resetall指令。它的语法如下: `timescale time_unit / time_precision 假如我...

2018-07-18 17:50:23

阅读数 5722

评论数 1

原创 Verilog中的parameter

1. 概述 在Verilog中我们常常会遇到要将一个常量(算法中的某个参数)赋给很多个变量的情况,如: x = 10; y = 10; z = 10; 如果此时10要改为9,就需要在代码中修改3个地方,非常的不方便,并且这个10是没有任何意义的,我们不知道它代表什么,所以为了代码的易重用、易...

2018-07-16 16:29:20

阅读数 20250

评论数 0

翻译 2---要多尝试学习新的设计方式

It is easy to become comfortable with a methodology and feel that it is unnecessary to learn the latest design methods. This is a dangerous attitude,...

2017-10-19 15:46:03

阅读数 124

评论数 0

原创 1---Vivado HLS开发流程简单介绍

在传统的FPGA设计流程中,一般是自顶向下的模块化设计,这些模块包括用户自己编写的RTL或者是供应商提供的IP核。而在Xilinx新推出的高生产力设计流程中是以IP为核心的,把所有的模块都看做是IP,封装为IP,最主要的是IP的设计是基于C语言的,最后通过HLS将C语言代码转化为RTL,这能极大的...

2017-10-13 11:20:39

阅读数 9017

评论数 0

原创 1---学习一个新开发工具的流程

工作中会经常要学习一些新的工具,自己总结了一个简单的学习过程第一步:掌握开发的基本流程或步骤,每个步骤的意义第二步:掌握优化设计的方法和优化的coding styles第三步:针对自己的方向,了解一些常用的lib的使用,然后在工作中要用到的时候再去深入的了解,之前只做简单了解或者深入的了解小部分即...

2017-09-29 14:03:21

阅读数 135

评论数 0

原创 2---MATLAB将十进制转换成二进制补码

MATLAB中提供了一个将十进制转换为二进制的函数dec2bin,但是该函数只能接受大于0的数,也就是不能直接将负数转换为二进制补码。那如何在MATLAB中生成补码呢?我们都知道负数的补码为其反码加1,然而MATLAB中的二进制是字符型,是不能直接运算的,所以如果用这种方式生成补码的话会比较困难,...

2017-09-25 10:37:18

阅读数 8384

评论数 0

原创 3---不严谨的分析下FPGA设计中的截位—Truncate和Rounding

目前搜集到的截位的方法有下面几种 > 负数直接截位后+1 > Truncate:直接截位 > Rounding:舍入截位 一般情况下我们对信号进行直接截位(Truncate)就行了,如果对截位精度要求较高,则采用舍入截位(Rounding)方式,如果还不够(不是特...

2017-09-23 08:52:28

阅读数 2340

评论数 0

原创 1---不详细的讲一下Xilinx的BMG:单端口和双端口RAM的区别

Note: 以下内容可能会有错误的地方,仅供参考,详细请查阅Xilinx官方产品指南《pg058-blk-mem-gen》 BMG即Block Memory Generator,是Xilinx配置BRAM的IP核,可将BRAM配置成如图所示的5种类型 - RAM分三种,单端口RAM、伪双端口RA...

2017-09-21 16:14:51

阅读数 5903

评论数 1

原创 2---理解正余弦、复数求模、反正切和乘除运算的CORDIC算法实现

CORDIC(Coordinate Rotation Digital Computer)算法是J.Volder在1956在航空控制系统设计中构思的,但其实相似的算法在更早的1624年就已经被Henry Briggs公布了。https://en.wikipedia.org/wiki/CORDIC ...

2017-09-14 13:25:49

阅读数 1862

评论数 0

原创 1---FIR滤波器简介

2. FIR滤波器是怎么滤波的 信号通过一个FIR滤波器其实就是信号与FIR滤波器的系数进行卷积(即乘累加)的过程。 简单信号模型 低频信号:即在时域上变化慢的信号,如1 1 1 1 2 2 2 2,还有直流信号1 1 1 1 1 1 1 高频信号:即在时域上变化快的信号,如1 2 1 2...

2017-09-08 14:56:47

阅读数 20659

评论数 0

原创 3---Python初体验之简单TestBench自动生成+Verilog模块信号提取

学习了一些Python的基础语法之后,确实被Python优美的表达方式所吸引,所以想用Python来干点什么,之前一直想用MATLAB脚本来完成TestBench的自动生成,这里正好用Python来完成。 TestBench主要包含以下三个部分: 基本的时钟clk和复位rst...

2017-08-31 14:53:21

阅读数 2520

评论数 0

原创 初学C语言容易遗忘的小知识点归纳

知识点: 1. C把所有的非零值都视为真; 2. C中有三种循环for,while,do while. 如何选择循环? 首先确定是入口条件循环还是出口条件循环,for、while或者do while;如果是入口,for和while皆可,但一般而言,当循环涉及初始化和更新变量时,用for比较合适...

2017-08-31 14:19:00

阅读数 214

评论数 0

原创 2---Python:简单文件操作

Python打开关闭文件、重命名文件、写入、读取、清空文件等简单操作

2017-08-30 15:06:48

阅读数 247

评论数 0

原创 1---Python初体验之生成随机数组并写入文件

初次接触Python完成一个生成随机数并写入文件的流程: 生成一个随机数组tmp[] 统计随机数组中每个数出现的次数 将随机数组以每行一个的形式写入文件.dat文件中 ''' 生成一个0和1的数组并将它写入.dat文件中 '&#...

2017-08-28 16:06:41

阅读数 1279

评论数 0

原创 1---C语言|笔记【C语言中的变量总结】

外部变量 局部变量 全局变量 自动变量 寄存器变量 静态变量 以下内容是一个初学者的整理,仅供参考 参考资料《C程序设计语言(第二版)》 1. 外部变量《C程序设计语言》中的定义:如果变量定义在任何函数外部,则是外部变量。 说明: 1)外部变量可以在全局范围内访问,因此函数...

2017-08-22 18:08:20

阅读数 132

评论数 0

原创 2---C语言|笔记【对C语言指针的初步理解】

指针是一种保存变量地址的变量。所以指针其实也是一种变量。指针的初始化:初始化时“=”右边只能是地址;int a = 0; int *p = &a;int *p = NULL; p = &a;指针的两个元素,记住两点: 1. p看成普通变量,存储变量a的地址,所有对p的操作都只能是...

2017-08-22 16:34:06

阅读数 99

评论数 0

原创 10--LeetCode【Single Number】|C语言|

二进制的奇淫技巧

2017-08-16 15:42:04

阅读数 256

评论数 0

原创 9---LeetCode【Maximum Subarray】|C语言|

Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [-2,1,-3,4,-1,...

2017-08-15 11:39:41

阅读数 498

评论数 0

原创 8---LeetCode【Jump Game】|C语言|

leetcode jump game的简单解法,使用C语言,只有6行

2017-08-15 10:37:47

阅读数 109

评论数 0

原创 7---LeetCode【tag: Array】【Stock I】|C语言|总结

Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transactio...

2017-08-10 17:01:38

阅读数 267

评论数 0

原创 6---LeetCode【tag: Array】【Rotate Array】|C语言|总结

Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. ...

2017-08-09 16:01:43

阅读数 209

评论数 0

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