<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FPGADesigner的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/FPGADesigner</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; FPGADesigner]]></copyright><item><title><![CDATA[FPGA基础设计（11）Verilog任务、函数、系统任务、系统函数]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/102871583</link><guid>https://blog.csdn.net/FPGADesigner/article/details/102871583</guid><author>FPGADesigner</author><pubDate>Sat, 02 Nov 2019 14:25:35 +0800</pubDate><description><![CDATA[目录1.概述2.函数（function）3.任务（task）4.系统任务4.1 显示任务4.1.1 display和write任务4.1.2 strobe监控4.1.3 连续监控4.2 文件I/O任务和函数4.2.1 打开文件和关闭文件4.2.2 文件输出4.2.3 数据转换为字符串4.2.4 读取文件内容4.2.5 文件I/O错误状态4.2.6 EOF检测4.2.7 文件定位4.2.8 读取数据...]]></description><category></category></item><item><title><![CDATA[FPGA基础设计（10）Verilog行为级建模（过程赋值）]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/102784167</link><guid>https://blog.csdn.net/FPGADesigner/article/details/102784167</guid><author>FPGADesigner</author><pubDate>Mon, 28 Oct 2019 16:54:59 +0800</pubDate><description><![CDATA[目录1.过程赋值1.1 特性11.2 特性22.过程连续赋值3.case语句3.1 do-not-cares3.2 常数case4.循环语句5. 过程块5.1 零延迟无限循环5.2 initial用于初始化6.过程块时序控制6.1 延时控制6.2 事件表达式6.3 wait语句6.4 赋值间（Intra-assignment）时序控制7.块（block）
阅读《IEEE Standard for ...]]></description><category></category></item><item><title><![CDATA[FPGA基础设计（9）Verilog数据类型和表达式]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/102630644</link><guid>https://blog.csdn.net/FPGADesigner/article/details/102630644</guid><author>FPGADesigner</author><pubDate>Fri, 18 Oct 2019 19:19:43 +0800</pubDate><description><![CDATA[阅读《IEEE Standard for Verilog 2005》时，做一些整理和记录。
目录1.数据类型2.变量（variable）3.数组4.表达式4.1 运算符除法 / 和求余 %幂运算 **数学运算时unsigned和sigend的问题关系运算符相等运算符位操作运算符缩位运算符移位运算符4.2 操作数4.3 位宽问题4.4 符号问题5.赋值

1.数据类型
Verilog HDL中数据类...]]></description><category></category></item><item><title><![CDATA[FPGA基础设计（8）Verilog常数赋值、字符串、标识符]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/102604599</link><guid>https://blog.csdn.net/FPGADesigner/article/details/102604599</guid><author>FPGADesigner</author><pubDate>Thu, 17 Oct 2019 13:10:05 +0800</pubDate><description><![CDATA[阅读《IEEE Standard for Verilog 2005》时，做一些整理和记录。

1.整数赋值
按照Verilog 2005的标准：0-9、a-f、z、x称作数字位（digit）；表示数字正负的’+‘和’-‘视作一元操作符（unary operator）；常说的二进制、八进制、十进制、十六进制称作数字的基（base）；其在Verilog中的表示’b’、‘o’、‘d’、'h’称作基格式（...]]></description><category></category></item><item><title><![CDATA[MATLAB数字信号处理（3）计算方式生成随机序列]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/89479210</link><guid>https://blog.csdn.net/FPGADesigner/article/details/89479210</guid><author>FPGADesigner</author><pubDate>Tue, 23 Apr 2019 19:24:00 +0800</pubDate><description><![CDATA[信号检测、估计和通信等问题都需要经仿真进行性能分析，产生服从特定分布的随机变量至关重要。
MATLAB中提供了现成的函数random，可以产生服从某种确定分布的随机序列。还有一些其它函数，比如exprnd专门用于产生服从指数分布的随机序列，但总体上random要更为通用。
我们平时只管调用函数即可，简化工作量，而无需关心random函数背后的计算原理。最近学习的《信号检测与估计-理论与应用》简单介...]]></description><category></category></item><item><title><![CDATA[Zynq中lwip“自动协商失败（Auto negotiation error）”的解决办法]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/89072317</link><guid>https://blog.csdn.net/FPGADesigner/article/details/89072317</guid><author>FPGADesigner</author><pubDate>Sun, 07 Apr 2019 17:33:19 +0800</pubDate><description><![CDATA[博主今天在将lwIP以太网程序移植到RedPitaya（火龙果）开发板上时，发现了一个问题。
我们一般都会使用SDK自带的“lwIP Echo Server”例程测试以太网硬件是否正确。然而在Redpitaya开发板上测试时出现了“自动协商失败（Auto negotiation error）”的问题，如下图：

其实这是由于硬件的PHY芯片不支持自动协商导致的。《学会Zynq》系列第12篇详细介绍...]]></description><category></category></item><item><title><![CDATA[学会Zynq（29）SPI协议的理解与初步使用]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88956509</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88956509</guid><author>FPGADesigner</author><pubDate>Mon, 01 Apr 2019 20:27:16 +0800</pubDate><description><![CDATA[本上介绍了Zynq中的SPI控制器。本文再系统总结下对SPI协议的理解，加强对其认识。最后再说明Zynq中如果配置和使用SPI控制器。

SPI协议概述
SPI是串行外设接口（Serial Peripheral Interface）的缩写。标准四根线只使用4根信号线进行通信：MISO（主输入-从输出)、MOSI（主输出-从输入)、时钟SCLK、从机选择信号SS（有时也称为片选信号CS）。 SPI协...]]></description><category></category></item><item><title><![CDATA[学会Zynq（28）SPI控制器简介]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88932544</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88932544</guid><author>FPGADesigner</author><pubDate>Sun, 31 Mar 2019 17:57:02 +0800</pubDate><description><![CDATA[本文简单介绍Zynq中的SPI控制器。本文将“master”称为“主机”；将“slave”称为“从机”；将“slave slect”从机选择简称为SS。

SPI控制器
Zynq中的SPI总线控制器能够与各种外设通信，如存储器、温度传感器、压力传感器、模拟转换器、实时时钟、任何支持串行模式的SD卡。SPI控制器可以工作在主机模式、从机模式、舵主模式。Zynq-7000系列包括2个SPI控制器。

...]]></description><category></category></item><item><title><![CDATA[学会Zynq（23）XADC报警功能与中断使用示例]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88916781</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88916781</guid><author>FPGADesigner</author><pubDate>Sat, 30 Mar 2019 18:32:33 +0800</pubDate><description><![CDATA[上篇中我们简单了解了XADC和其基本使用方法，包括对片内温度和各种电源电压的测量。本文我们将学习XADC的报警功能和中断的使用方法。程序中我们设置温度和VCCPAUX的上、下报警阈值。当超出这个范围时，便进入中断进行报警提示。

SDK程序设计
由于要使用中断系统，我们翻出两个“老伙计”，第14篇中的sys_intr.h和sys_intr.c。将GIC初始化和串口中断初始化分开，这样当设计中有多个...]]></description><category></category></item><item><title><![CDATA[学会Zynq（27）UART中断驱动模式示例]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88910848</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88910848</guid><author>FPGADesigner</author><pubDate>Sat, 30 Mar 2019 13:04:40 +0800</pubDate><description><![CDATA[Zynq中的UART支持轮询和中断驱动两种模式。本文给出使用中断驱动模式的例子，完成与24篇中轮询模式下相同的功能，即UART收到8字节数据后执行某项操作。对比之下，体会中断驱动模式的特点。

SDK程序设计
由于要使用中断系统，我们翻出两个“老伙计”，第14篇中的sys_intr.h和sys_intr.c。将GIC初始化和串口中断初始化分开，这样当设计中有多个中断源时，编写代码会更方便。
use...]]></description><category></category></item><item><title><![CDATA[学会Zynq（26）UART轮询（poll）模式示例]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88877251</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88877251</guid><author>FPGADesigner</author><pubDate>Thu, 28 Mar 2019 20:20:31 +0800</pubDate><description><![CDATA[Zynq中的UART支持轮询和中断驱动两种模式。本文给出两个使用轮询模式的例子，在23篇程序框架的基础上进行改动（贴出主要改动代码，改动很小的地方，如函数接口变化导致函数声明也要改，相信你可以根据我的代码和设计目的自己完成），最后再讨论一下轮询模式的特点。

第一个例子
改造user_uart.c文件中的Uart_Send函数，将模式设置为本地回环。UART发送数据（小于64个字节，即FIFO长度...]]></description><category></category></item><item><title><![CDATA[学会Zynq（25）UART的基本使用方法]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88852990</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88852990</guid><author>FPGADesigner</author><pubDate>Wed, 27 Mar 2019 19:16:00 +0800</pubDate><description><![CDATA[上文对Zynq中的UART控制器做了简单介绍。从本文开始将以实例的方式详细讲述UART的各种使用方法。本文是UART最基础的使用方法，每秒发送一个“hello world”，实现的功能与printf或xil_printf相同。但后面介绍UART更复杂特性的文章，都是在本文设计的基础上进行改动。

SDK程序设计
Vivado中配置Zynq时启用开发板提供的UART接口。SDK中user_uart....]]></description><category></category></item><item><title><![CDATA[学会Zynq（24）UART控制器简介]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88805887</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88805887</guid><author>FPGADesigner</author><pubDate>Mon, 25 Mar 2019 20:55:19 +0800</pubDate><description><![CDATA[本文简单介绍Zynq中的UART控制器，重点放在编程所需了解的知识。很多功能使用库函数可以快速配置，因此没必要仔细了解每个寄存器是干什么的这种问题，应把精力放在UART的特性、工作原理和可实现功能方面。

UART控制器
Zynq中的UART控制器是一个全双工异步收发器，支持各种可编程的波特率和I/O信号格式，能够自动生成奇偶校验，支持多主检测模式。
UART操作由配置和模式寄存器控制。采用独立的...]]></description><category></category></item><item><title><![CDATA[学会Zynq（22）XADC测量片内温度与电源电压]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88796040</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88796040</guid><author>FPGADesigner</author><pubDate>Mon, 25 Mar 2019 15:22:42 +0800</pubDate><description><![CDATA[本文将介绍如何在PS中调用Zynq内部的XADC模块进行片内温度和电源电压测量。先了解XADC的相关知识，再通过实例体会XADC的用法，学习XADC API函数的使用。

XADC介绍
XADC中文全称应该是“Xilinx模拟混合信号模块”，是FPGA中的一个硬核。在7系列FPGA中，XADC提供了DRP和JTAG接口，用于访问XADC的状态和控制寄存器。Zynq中添加了第三个接口，称作PS-XA...]]></description><category></category></item><item><title><![CDATA[学会Zynq（21）TCP轮询机制（polling）示例]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88778125</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88778125</guid><author>FPGADesigner</author><pubDate>Sun, 24 Mar 2019 16:17:11 +0800</pubDate><description><![CDATA[前面我们已经学习了TCP的所有发送、接收和各种回调函数。本文将介绍最后一部分，TCP的轮询机制。
在前面TCP发送Hello World的实例中，我们是在main函数的while循环中每隔1s调用一次数据发送函数。本文的实例将利用轮询机制完成同样的功能。

SDK程序设计
本文根据TCP client模式下发送hello world的程序改编（server模式改动也类似）。主要差别在user_ud...]]></description><category></category></item><item><title><![CDATA[学会Zynq（20）TCP echo服务器（接收回调）]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88777515</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88777515</guid><author>FPGADesigner</author><pubDate>Sun, 24 Mar 2019 15:37:26 +0800</pubDate><description><![CDATA[前两篇我们学习了TCP的发送，本文学习如何处理接收数据。本文使用TCP设计一个echo服务器，开发板将来自所有IP地址和端口的数据原路发送回去，功能和本系列第15篇的UDP echo服务器相同。
本文实例与SDK提供的“lwip echo server”例程相比要简化许多，没有使用DHCP协议。本文主要是学习TCP的接收回调，DHCP的内容会在后面专门讲述。

SDK程序设计
让Zynq工作在TC...]]></description><category></category></item><item><title><![CDATA[学会Zynq（19）TCP发送Hello World（server模式）]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88776615</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88776615</guid><author>FPGADesigner</author><pubDate>Sun, 24 Mar 2019 14:37:48 +0800</pubDate><description><![CDATA[上文介绍了用TCP发送“Hello World”的实例，工作在client模式下。本文实现同样的功能，但让TCP工作在server模式下。把开发板当作服务器，远程主机为客服端访问服务器，实现被动连接。TCP client和TCP server在lwIP中的连接流程和区别可参考本系列前面与lwIP相关的文章。

SDK程序设计
大部分代码和上一个实例相同。main函数的while循环中仍然是根据连接...]]></description><category></category></item><item><title><![CDATA[学会Zynq（18）TCP发送Hello World（client模式）]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88775286</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88775286</guid><author>FPGADesigner</author><pubDate>Sun, 24 Mar 2019 12:03:52 +0800</pubDate><description><![CDATA[TCP的工作机制比UDP要复杂的多。本文介绍用TCP发送“Hello World”的实例，讨论程序设计中几个关键的问题。本文撰写思路假设您已经阅读了本系列前几篇与lwIP、UDP相关的文章，重复性语言不过多描述。本文TCP工作在client模式。TCP内容较多，后面的文章会逐步深入介绍。

SDK程序设计
按照前文方法，新建工程后启用lwIP 1.4.1库，其余配置都保持默认即可（使用RAW AP...]]></description><category></category></item><item><title><![CDATA[学会Zynq（17）pbuf操作函数介绍与示例程序]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88765028</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88765028</guid><author>FPGADesigner</author><pubDate>Sat, 23 Mar 2019 17:42:56 +0800</pubDate><description><![CDATA[从前面几个UDP的程序实例中我们可以体会到pbuf的重要性，对pbuf的灵活操作也是完成程序功能和提高代码效率的关键。本篇总结lwip的pbuf.c中的常用函数并给出示例程序，其中部分函数和string.h文件中提供的传统内存操作函数功能相同。
基于上一篇中的UDP echo服务器设计，主要修改接收回调函数，将收到的数据做一定处理后，用串口打印或网口原路返回的方式查看效果。

1. pbuf_st...]]></description><category></category></item><item><title><![CDATA[学会Zynq（16）UDP echo服务器（接收回调）]]></title><link>https://blog.csdn.net/FPGADesigner/article/details/88751502</link><guid>https://blog.csdn.net/FPGADesigner/article/details/88751502</guid><author>FPGADesigner</author><pubDate>Fri, 22 Mar 2019 21:37:59 +0800</pubDate><description><![CDATA[前两篇我们学习了UDP的发送，本文学习如何处理接收数据。lwIP为UDP接收提供了回调机制，学会回调机制的使用可以为学习更复杂的TCP回调打下基础。
本文使用UDP设计一个echo服务器，开发板将来自所有IP地址和端口的数据原路发送回去，功能和SDK提供的“lwip echo server”例程一样，只不过例程使用的是TCP协议。

SDK程序设计
主要差别体现在user_udp.c文件中，比起前...]]></description><category></category></item></channel></rss>