<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_16923717的博客]]></title><description><![CDATA[暂时还没有描述]]></description><link>https://blog.csdn.net/qq_16923717</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_16923717]]></copyright><item><title><![CDATA[FPGA实现对数log2和10*log10]]></title><link>https://blog.csdn.net/qq_16923717/article/details/99679548</link><guid>https://blog.csdn.net/qq_16923717/article/details/99679548</guid><author>qq_16923717</author><pubDate>Fri, 16 Aug 2019 16:32:35 +0800</pubDate><description><![CDATA[找到的实现对数的方式有三种：


LUT
Cordic
无名


LUT只能用在输入参数较少的情况中，Cordic看了下，感觉还挺复杂的，就没看了……这里主要讲第三种方式，无名是因为没有找到叫什么名字，它的基本思路是先求log2然后在用换底公式求log10。
1.  求log2log_2log2​
观察下面的表格可以发现，只要找到了输入二进制从高位开始第一个为1的bit的位置，就能知道其log2的...]]></description><category></category></item><item><title><![CDATA[自己常用的Python正则表达式]]></title><link>https://blog.csdn.net/qq_16923717/article/details/89430854</link><guid>https://blog.csdn.net/qq_16923717/article/details/89430854</guid><author>qq_16923717</author><pubDate>Tue, 23 Apr 2019 00:19:42 +0800</pubDate><description><![CDATA[贪婪匹配与非贪婪匹配与修饰符
re.sub的lambda用法
search返回的group
链接
1. Python re模块
2. 菜鸟教程正则表达式
3. 博客Python re模块
4. 网易云课堂：看文档学爬虫——Python正则表达式
.
.
.
.
.
.
.

...]]></description><category></category></item><item><title><![CDATA[关于FPGA设计中实现信号延时的资源消耗]]></title><link>https://blog.csdn.net/qq_16923717/article/details/89322740</link><guid>https://blog.csdn.net/qq_16923717/article/details/89322740</guid><author>qq_16923717</author><pubDate>Mon, 15 Apr 2019 23:58:49 +0800</pubDate><description><![CDATA[在FPGA设计中我们经常会遇到对一个信号进行延时的情况，一般只延时一个或几个CLK时，通常是直接打拍，如果要延时的CLK较多时，我们会选择移位寄存器IP核，而有时为了方便，我们常常会使用下面的方式
always @ (posedge clk) begin
	a &lt;= {a[WIDTH-2: 0], en};
end

前段时间我临时对一个脉冲信号延时8192个CLK就使用了这种写法，当时有意...]]></description><category></category></item><item><title><![CDATA[记一次FPGA工程艰难的debug经历（模块一定要寄存器输出）]]></title><link>https://blog.csdn.net/qq_16923717/article/details/88878103</link><guid>https://blog.csdn.net/qq_16923717/article/details/88878103</guid><author>qq_16923717</author><pubDate>Mon, 15 Apr 2019 21:58:51 +0800</pubDate><description><![CDATA[最近调试一个项目，时序没有报错，仿真没有问题，但是上板始终差一个bit，因为更换过器件，所以怀疑IP，各种怀疑，最后没办法，只能在signaltap上一个模块一个模块抓，然后跟仿真结果对比，最终定位到一个计数器。计数器的代码如下
always @(posedge clk or posedge reset) begin  // 模块3
    if (reset)
        dinCnter ...]]></description><category></category></item><item><title><![CDATA[关于Altera stratix 4的PLL IP核生成的时钟频率不准]]></title><link>https://blog.csdn.net/qq_16923717/article/details/89311750</link><guid>https://blog.csdn.net/qq_16923717/article/details/89311750</guid><author>qq_16923717</author><pubDate>Mon, 15 Apr 2019 21:52:33 +0800</pubDate><description><![CDATA[世界上没有PLL不能生成的时钟，如果一个PLL不够，那就两个 —— 尼古拉斯·赵四

前两天调试一个项目的时候遇到一个pll的问题，感觉以后也会遇到类似的问题，记录一下。
调试平台
调试平台如下图所示，基带主时钟为56MHz，由外部输入125MHz的参考时钟给到PLL生成，DDC做一个14MHz的频谱搬移，DDC时钟也是56MHz，使用Cordic算法生成cos和sin信号（其实这里不需要用Co...]]></description><category></category></item><item><title><![CDATA[自己常用的Python查找表]]></title><link>https://blog.csdn.net/qq_16923717/article/details/89206200</link><guid>https://blog.csdn.net/qq_16923717/article/details/89206200</guid><author>qq_16923717</author><pubDate>Thu, 11 Apr 2019 11:27:16 +0800</pubDate><description><![CDATA[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)     # 求-...]]></description><category></category></item><item><title><![CDATA[quartus prime pro联合modelsim仿真]]></title><link>https://blog.csdn.net/qq_16923717/article/details/87863626</link><guid>https://blog.csdn.net/qq_16923717/article/details/87863626</guid><author>qq_16923717</author><pubDate>Thu, 21 Feb 2019 16:31:52 +0800</pubDate><description><![CDATA[装了一个18.1 pro版的quartus，发现Tool里面的run simulation不见了，在网上找了半天才发现下面这个链接。
Simulation Quick-Start for ModelSim - Intel FPGA Edition ( Intel Quartus Prime Pro Edition)
跟着这个链接一步一步往下走就可以了仿真了。但不得不吐槽的是，这样还叫联合仿真吗？除...]]></description><category></category></item><item><title><![CDATA[如何减少FPGA工程编译时间]]></title><link>https://blog.csdn.net/qq_16923717/article/details/87298258</link><guid>https://blog.csdn.net/qq_16923717/article/details/87298258</guid><author>qq_16923717</author><pubDate>Thu, 14 Feb 2019 21:07:46 +0800</pubDate><description><![CDATA[
FPGA的调试过程是一个迭代过程，会不断的发现bug，然后编译，再调试。调试过程中最耗时间的可能往往是编译，即使是一个小的改动都需要对工程进行一次重编译，所以如何减少工程编译时间是提高工作效率的关键之一。

主要可以通过以下几个方面减少编译时间，电脑配置、文件引用、增量编译和编译策略。
1 电脑配置
电脑配置越好，编译时间越短，这一点是毋庸置疑的。
另外需要注意的是，在编译的时候尽量关闭其他占用...]]></description><category></category></item><item><title><![CDATA[Python做上位机通过JTAG控制FPGA（1）：如何使用quartus的tcl]]></title><link>https://blog.csdn.net/qq_16923717/article/details/86563941</link><guid>https://blog.csdn.net/qq_16923717/article/details/86563941</guid><author>qq_16923717</author><pubDate>Sun, 20 Jan 2019 17:44:25 +0800</pubDate><description><![CDATA[
参考资料：quartus handbook, Tcl scripting小节

quartus中有个In-System Sources &amp;amp;amp;amp; Probes的IP核，让我们可以使用spf通过jtag向FPGA写入数据和读取数据。但是如果我们要写入大量的数据，这种手动的方式是不行的，好在quartus提供了Tcl命令控制的方式。
那么问题来了，这个命令在哪里执行呢？ Quartus中有个Tcl...]]></description><category></category></item><item><title><![CDATA[网络适配器突然消失的解决办法]]></title><link>https://blog.csdn.net/qq_16923717/article/details/86563488</link><guid>https://blog.csdn.net/qq_16923717/article/details/86563488</guid><author>qq_16923717</author><pubDate>Sun, 20 Jan 2019 16:51:02 +0800</pubDate><description><![CDATA[想改下IP突然发现网络适配器不见了，后来想起来应该是前一天电脑连了网，Windows进行了自动更新。自己更新出问题也是挺叼的……
也没有什么好办法，只好祭出大杀器，系统还原了。系统还原不会删除文档资料等，但是之前系统变量等设置会被还原，需要重新设置。


打开控制面板，改成小图标显示，找到疑难解答




点击右下角的恢复



打开系统还原



找到更新之前的还原点，点击下一步、完成就好了

...]]></description><category></category></item><item><title><![CDATA[Quartus报错]]></title><link>https://blog.csdn.net/qq_16923717/article/details/86150530</link><guid>https://blog.csdn.net/qq_16923717/article/details/86150530</guid><author>qq_16923717</author><pubDate>Wed, 09 Jan 2019 14:21:39 +0800</pubDate><description><![CDATA[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|ad_fifo_fifo_181_hbp6cpq:fifo_0|dcfifo:dcfifo_compon...]]></description><category></category></item><item><title><![CDATA[CRC32的FPGA并行实现原理及MATLAB仿真]]></title><link>https://blog.csdn.net/qq_16923717/article/details/83826856</link><guid>https://blog.csdn.net/qq_16923717/article/details/83826856</guid><author>qq_16923717</author><pubDate>Mon, 12 Nov 2018 18:44:44 +0800</pubDate><description><![CDATA[crc已经反反复复看了好多遍了，每次总是看到一半就放弃了，这两天终于明白了它并行实现的原理，写个总结。

]]></description><category></category></item><item><title><![CDATA[推荐几个自己常用的Windows轻量小软件]]></title><link>https://blog.csdn.net/qq_16923717/article/details/83858261</link><guid>https://blog.csdn.net/qq_16923717/article/details/83858261</guid><author>qq_16923717</author><pubDate>Thu, 08 Nov 2018 11:20:31 +0800</pubDate><description><![CDATA[1. Clover资源管理器
让资源管理器像浏览器一样具有标签和书签功能
2. Q-dir资源管理器
可以多种分屏，方便浏览和移动文件，有了Clover和Q-dir，文件管理就方便多了
3. Snipaste截图工具
贴图功能太赞了，F1快捷截图，F3将截图贴在屏幕顶层，抄东西和对比数据的时候非常方便
4. Everything搜索工具
是不是受够了Windows资源管理器龟速的搜索，想找个文件，...]]></description><category></category></item><item><title><![CDATA[OFDM中循环前缀CP的作用]]></title><link>https://blog.csdn.net/qq_16923717/article/details/83623571</link><guid>https://blog.csdn.net/qq_16923717/article/details/83623571</guid><author>qq_16923717</author><pubDate>Thu, 01 Nov 2018 18:02:28 +0800</pubDate><description><![CDATA[
记一点对OFDM中CP作用的理解

先来看ISI
一般在网上或者其他什么资料里都会看到类似于下面的这张两张图，由于多径的存在，不加保护间隔的话，上一个符号的尾部会落入本符号的采样区间，引起ISI，假如保护间隔后就不会了，很好理解。但是让我迷惑的是，在采样区间内，后边红色的信号对蓝色信号的干扰和ISI干扰看起来不是一样的么？既然后边可以通过信道均衡解决，为什么ISI不可以？
图片来源于这里http...]]></description><category></category></item><item><title><![CDATA[记一个Verilog一段式状态机的低级错误]]></title><link>https://blog.csdn.net/qq_16923717/article/details/83510527</link><guid>https://blog.csdn.net/qq_16923717/article/details/83510527</guid><author>qq_16923717</author><pubDate>Tue, 30 Oct 2018 10:00:03 +0800</pubDate><description><![CDATA[问题是这样的：
我想在某个状态state1下根据输入a改变输出b的值，但是在芯片里运行的时候发现只要状态维持在state1下，b的值始终是从上一个状态跳到state1时的值，只有在state1变化的边沿，b的值才会根据输入a更新。
原代码如下：
always @ (posedge clk) 
begin
    if (rst) begin
        b &amp;amp;amp;amp;amp;lt;= 'd0;
       ...]]></description><category></category></item><item><title><![CDATA[建立时间和保持时间的理解、相关计算及在FPGA设计中的应用]]></title><link>https://blog.csdn.net/qq_16923717/article/details/82354036</link><guid>https://blog.csdn.net/qq_16923717/article/details/82354036</guid><author>qq_16923717</author><pubDate>Wed, 05 Sep 2018 14:41:42 +0800</pubDate><description><![CDATA[
  学数字电路设计或者面试相关岗位的时候，都需要理解掌握建立时间和保持时间的概念，而这个东西我觉得还挺绕的，看的时候都明白，转过身就忘了，每次要用的时候又到处找资料，理解半天，非常的浪费时间，所以这里用我个人比较容易理解的思路写个总结，加深记忆，也方便以后回顾。


1. 分析模型

理解建立时间保持时间需要一个模型，如图所示。起点是源触发器D1的采样时刻，终点是目的触发器D2的采样时刻，假设起...]]></description><category></category></item><item><title><![CDATA[Python udp简单实现及报错问题]]></title><link>https://blog.csdn.net/qq_16923717/article/details/82220257</link><guid>https://blog.csdn.net/qq_16923717/article/details/82220257</guid><author>qq_16923717</author><pubDate>Thu, 30 Aug 2018 13:58:23 +0800</pubDate><description><![CDATA[先安装socket库

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 获得本机IP
myname = socket.getfqdn(socket.gethostname())
myaddr = socket.gethostbyname(myname)
# 绑定端口
s.bind((myaddr, 9527...]]></description><category></category></item><item><title><![CDATA[Python库本地安装]]></title><link>https://blog.csdn.net/qq_16923717/article/details/82216241</link><guid>https://blog.csdn.net/qq_16923717/article/details/82216241</guid><author>qq_16923717</author><pubDate>Thu, 30 Aug 2018 11:09:17 +0800</pubDate><description><![CDATA[的]]></description><category></category></item><item><title><![CDATA[Verilog Coding Styles]]></title><link>https://blog.csdn.net/qq_16923717/article/details/81193312</link><guid>https://blog.csdn.net/qq_16923717/article/details/81193312</guid><author>qq_16923717</author><pubDate>Tue, 24 Jul 2018 22:33:08 +0800</pubDate><description><![CDATA[
  参考自：http://guqian110.github.io/pages/2015/04/21/verilog_hdl_coding_style_guide.html


好的代码风格不仅便于理解和重用，也便于综合工具的优化，Good Coding Styles应当从设计之初就开始了，因为模块划分的好坏会直接影响到代码的可读性和重用性。

所以一开始我们就要遵循一定的规则对模块进行划分，然后...]]></description><category></category></item><item><title><![CDATA[Verilog中的`timescale及它对仿真时间的影响]]></title><link>https://blog.csdn.net/qq_16923717/article/details/81099833</link><guid>https://blog.csdn.net/qq_16923717/article/details/81099833</guid><author>qq_16923717</author><pubDate>Wed, 18 Jul 2018 17:50:23 +0800</pubDate><description><![CDATA[1. `timescale

`timescale是Verilog中的预编译指令，指定位于它后边的module的时间单位和时间精度，直到遇到新的`timescale指令或者`resetall指令。它的语法如下：

`timescale time_unit / time_precision

假如我们延时x个时间单位，那延时的总时间time = x*time_unit，但最后真正延时的时间是根据ti...]]></description><category></category></item></channel></rss>