Starry丶
FPGA从业人员,ICer
展开
-
标准总线接口协议
本专栏收录了FPGA&IC设计中常见的接口,以及相关的接口设计,正在更新。原创 2022-03-17 22:28:06 · 2730 阅读 · 0 评论 -
TCP/IP - IP
IP 网际互连协议(Internet Protocol)根据「IP地址」将数据传输到指定的目标主机,是一种 「不可靠」的 「端到端」的数据包 「传输服务」所有的 TCP、UDP 及 ICMP 帧都以 IP 数据报格式传输。IP 协议位于以太网 MAC 帧格式的数据段。原创 2024-09-18 19:50:52 · 676 阅读 · 0 评论 -
ICMP
回见对ICMP协议作介绍ICMP(Internet Control Message Protocol)Internet控制报文协议,是一种面向无连接的协议。功能是检错而不是纠错;它将出错的报文返回给发送方的设备,发送方根据ICMP报文确定「错误类型」,从而更好的重发错误的数据包。例如 IP 数据无法访问目标、IP 路由器无法按当前的传输速率转发数据包、路由器处理数据包产生错误等情况时,会自动发送 ICMP 消息。由于ICMP也是承载在IP之中的,所以将其放在传输层。原创 2024-09-16 10:45:02 · 718 阅读 · 0 评论 -
TCP/IP - TCP
回见对TCP/IP协议簇传输层作介绍。原创 2024-09-12 22:00:30 · 631 阅读 · 0 评论 -
AXI GPIO IP
本文简单介绍一下Xilinx AXI GPIO IP的使用。原创 2024-09-05 19:33:33 · 257 阅读 · 0 评论 -
TCP/IP 报文传输过程
原文回到强烈推荐下面博客,详细阐述了TCP/IP协议概念和传输过程。原创 2024-09-02 14:10:04 · 496 阅读 · 0 评论 -
PCIe - DMA Sequence
介绍PCIe拓扑结构下的DMA流程,实际上RC充当的就是DMA Controller的角色。原创 2024-08-25 14:38:09 · 254 阅读 · 0 评论 -
PCIe - Memory Mapped IO
Memorty Mapped的意思是将所有PCIe设备Memory Space、I/O Space和Configuration Space全部映射到Host内存中。BAR空间:各PCIe设备自身(应用层)的Memory Space和 IO Space则是通过BAR寄存器映射到Host内存中,大小取决于BAR。4KB配置空间:用于标识PCIe协议功能相关的寄存器,包括BDF、MPS、PM、MSI等功能。个Function,每个Function都有一个4KB的Configuration Space(原创 2024-08-03 16:37:20 · 239 阅读 · 0 评论 -
PCIe - MSI/MSI-X Capability Structures
原文地址。原创 2024-08-03 11:53:22 · 614 阅读 · 0 评论 -
高速外设互连接口(Peripheral Component Interconnect express, PCIe)- Device/Link Control Register
原文地址Capbility空间采用链表结构,每个能力寄存器存储着下一个能力寄存器的地址,第一个能力寄存器的地址为Header Space的0x34 Capbility Pointer。系统软件从头空间的Capbility Pointer寄存器开始,按着链表遍历,不断判断Capbility ID直到找到所需的寄存器。例如下图。原创 2024-07-31 20:38:59 · 173 阅读 · 0 评论 -
Ethernet
以太网(Ethernet)是指遵守 IEEE 802.3 标准组成的局域网通信标准, IEEE 802.3 标准规定的主要是OSI参考模型中的物理层(PHY)和数据链路层中的介质访问控制子层(MAC)。IEEE 还有其它局域网标准,如 IEEE 802.11 是无线局域网,俗称 Wi-Fi。IEEE802.15 是个人域网,即蓝牙技术,其中的 802.15.4 标准则是 ZigBee 技术。原创 2024-07-28 20:55:51 · 357 阅读 · 0 评论 -
TCP/IP
目录1.2. OSI(Open System Interconnect)网络与路由交换菜鸟FPGA以太网专题1.2. OSI(Open System Interconnect)原创 2024-07-23 21:00:33 · 356 阅读 · 0 评论 -
高清多媒体接口(High Definition Multimedia Interface, HDMI)
对HDMI接口作读书笔记,多数内容来自其他博客HDMI是一个可在单一接口结合无压缩高清视频,多声道环绕音频,和智能命令数据的数字接口。HDMI连接高清设备极为简单,同时对最新的产品功能提供一致和高性能效的传输。原创 2024-06-04 23:56:54 · 338 阅读 · 0 评论 -
PCIe - Configuration Space Header
原文地址。原创 2024-05-16 21:59:57 · 282 阅读 · 0 评论 -
高速外设互连接口(Peripheral Component Interconnect express, PCIe)- Layering
原文地址PCIe总线的分层结构如下,包括应用层(Device Core)、事务层(Transaction Layer)、数据链路层(Data Link Layer)、物理层(Physical Layer)。各层级的功能如下:● 应用层(Device Core):根据用户协议形成报文● 事务层(Transaction Layer):发端将应用层发来的报文头加上帧头Header、尾加上ECRC(End-to-end CRC),形成(Transaction Layer Packet,TLP)发送给链路层。原创 2024-05-16 21:58:18 · 331 阅读 · 0 评论 -
高速外设互连接口(Peripheral Component Interconnect express, PCIe)
目录1. Introduction2. Transaction Layer3. Data Link Layer4. Physical Layer1. Introduction2. Transaction Layer3. Data Link Layer4. Physical Layer原创 2024-04-28 19:46:54 · 703 阅读 · 0 评论 -
7 Series Devices Memory Interface Solution - Memory Controller Block
继续介绍Vivado的Memory Interface Generator(MIG)IP核中Memory Controller Block部分内容通过Native Interface接口将来自User Interface Block的请求存入一个逻辑队列中,这些请求可以重新排列以优化吞吐和延迟。再通过MC/PHY Interface接口与PHY层交互。该模块对应于源码的_mc.v。原创 2023-10-10 13:43:12 · 320 阅读 · 0 评论 -
7 Series Devices Memory Interface Solution
本文借助Xilinx Vivado 7系列FPGA的Memory Interface Generator(MIG)IP核,对DDR控制器进行介绍。原创 2023-09-12 16:49:20 · 1386 阅读 · 0 评论 -
8B/10B Transmission Code
介绍8B/10B编码的原理及相关数据流。原创 2023-09-05 17:12:48 · 490 阅读 · 0 评论 -
7 Series/UltraScale FPGAs GT Transceivers
本博客为Xilinx 7系列FPGA的千兆比特高速收发器(Gigabit Transceiver, GT)介绍。原创 2023-09-04 16:21:02 · 3633 阅读 · 2 评论 -
Aurora 8B/10B - Clock and Reset
此处沿用Duplex Normal Reset Sequences时序图,只不过gt_reset和reset一开始就都拉高,持续128 user_clk+1s后gt_reset拉低,之后reset再拉高0.1s再拉低。这里就有个问题,hard_err导致的自动复位和用户通过reset和gt_reset的手动复位是什么关系?芯片复位时gt_reset和reset均为高电平,之后一定是gt_reset先拉低,reset后拉低。如果工作中用户需要手动复位,则核和GT复位时序如下图所示。本节介绍上电和复位时序。原创 2023-09-01 11:11:07 · 527 阅读 · 0 评论 -
Aurora 8B/10B
本篇blog将介绍由xilinx开发的Aurora 8B/10B链路层协议,并介绍aurora ip使用。原创 2023-08-18 20:36:49 · 1877 阅读 · 0 评论 -
双数据率四线外设接口(Double Transfer Rate Quad Peripheral Interface, DTR QPI)
DTR QPI原创 2022-10-18 22:36:48 · 750 阅读 · 0 评论 -
高级可拓展接口 4.0 - 流(Advanced eXtensible Interface 4 - Stream, AXI4-Stream)
AMBA中最重要的片内总线,适用于高性能、高带宽、高工作频率、低延迟系统,也是基于多主多从的架构与事务传输。AXI的特性包括:● 单通道体系,即控制通道与数据通道相互分离,可分别独立控制和优化。并且各通道传输方向单一,减少延迟。● 支持字节选通、非对齐数据访问● 只给出第一地址,亦可完成burst传输● 基于传输ID实现乱序传输● 允许电平同步。原创 2022-09-21 21:07:21 · 1119 阅读 · 0 评论 -
基于APB与I2C的多主多从架构设计 - Function Description
APB_I2C原创 2022-09-03 21:31:09 · 1621 阅读 · 0 评论 -
基于APB与I2C的多主多从架构设计
注意I2C中SDA发送的数据均是在发送FIFO上取得的,每取一个数据发送一次,所以APB的paddr要是FIFO的地址而不是某个i2c slave某个寄存器的地址!注意master要输出SCL但是并不能单独拉一个新的模块baud_clock_gen,这是因为I2C不是基于沿进行驱动和采样数据的,而是基于电平,后文会讲到。实现多主多从的I2C总线架构,波特率选择为 1Mbps,使用7bit寻址,具备通用广播、SCL同步、SDA仲裁功能。● 每个i2c设备的寄存器地址如下。● 实现3主3从的I2C总线架构。..原创 2022-08-31 21:54:43 · 2833 阅读 · 1 评论 -
集成电路总线(Inter-Integrated Circuit, I2C)
I2C介绍原创 2022-08-24 16:59:50 · 1627 阅读 · 0 评论 -
AXI_Round_Robin_Arbiter 设计 - AW、W通道部分
还是基于状态机,思路是收到了一包AW通道的数据,记录下它的len,然后根据len和awid收相应的AXI Master的W通道数据,保证AW通道和W通道顺序一致。那权重怎么变化呢?此处想的是每AW和W通道完成一次收数,权重变化一次。注意要保证AW接受和W接收必须来自同一个AXI Master等待某个AW通道与AXI Slave握手完成,即可转入下一状态● 根据req输出grant此处的req其实就是各AXI Master的awvalid组成的多bit数据,而grant就是仲裁的结果。注意在WAIT_AW时状原创 2022-06-22 21:26:14 · 1543 阅读 · 1 评论 -
AXI_Bus_Matrix_4x4 设计 - 逻辑设计部分
先想好再写代码解码器的思路很简单,将AXI信息交互分为读写两种。写控制AW通道依赖于AWADDR的高2bit,即AWSEL来片选Slave。写数据W通道其实也依赖于AWADDR的高2bit,因为只有这样才能把匹配的写控制和写数据正确的送入某个Slave。写反馈B通道同理。同理,读控制AR通道依赖于ARSEL,读反馈R通道也依赖于ARSEL。代码如下2. axi_round_robin_arbiter此处我们基于轮询的策略实现仲裁器经典的轮询仲裁IP输入只有req、输出只有grant,但对于AXI而言,是原创 2022-06-21 17:31:02 · 1663 阅读 · 0 评论 -
AXI_Bus_Matrix_4x4 设计
Signal Source Width(bits) Description AWID Master AWID_WIDTH 写事务ID AWADDR Master原创 2022-06-15 23:37:33 · 3209 阅读 · 1 评论 -
AXI2APB_bridge 设计
此处研究AHB Slave到 APB master的桥接器,实现接口转化,例如下图之后是参数描述原创 2022-06-15 23:36:01 · 3496 阅读 · 2 评论 -
AXI2Standard_handshake_bridge 设计
此处研究AXI到标准握手的桥接器,实现接口转化,例如下图是的,AHB2HANDSHAKE桥是作为AHB slave呈现的,由此可以得出桥接器的输入输出之后是参数描述原创 2022-06-15 23:34:34 · 1460 阅读 · 0 评论 -
APB2standard_handshake_bridge 设计
由于SoC的外围设备,例如USART、SPI、I2C等板级慢速通信接口,以及外围存储设备如RAM等,都是通过APB进行总线通信的。而上述这些设备的常用接口并不是基于APB,所以就需要一个APB到标准握手的桥接器,实现接口转化,例如下图是的,APB2HANDSHAKE桥是作为APB slave呈现的,由此可以得出桥接器的输入输出之后是参数描述按照状态机的思路,可将传输过程按照APB的状态机分为IDLE、SETUP和ACCESS。如果是写操作,就比较简单,只需在ACCESS阶段pwdata就是wdata、pad原创 2022-06-10 23:38:39 · 688 阅读 · 0 评论 -
AHB_Bus_Matrix_3x3 设计
当多个AHB master与多个AHB slave进行通信时,就可以使用一个基于AHB协议的bus matrix实现互联。例如根据之前的描述,一主多从系统需要decoder对Master的HADDR进行解码以对不同的Slave进行片选,同时Slave读取的数据也需要MUX根据片选结果返回给Master。此处 bus matrix设计就将decoder与MUX合并为decoder,并为每一个Master配一个decoder。对于每一个Slave来说,同一时间可能有多个Master对其进行访问,因此需要arbi原创 2022-06-10 23:36:30 · 3964 阅读 · 1 评论 -
AHB2APB_bridge 设计
此处研究AHB Slave到 APB master的桥接器,实现接口转化,例如下图之后是参数描述原创 2022-06-10 23:34:51 · 1898 阅读 · 0 评论 -
AHB2Standard_handshake_bridge 设计
AHB协议毕竟与FIFO、RAM等读写协议不一样,而AHB是SoC系统片内常用的高速接口,所以就需要将AHB的时序转化为标准的握手时序,此处研究AHB到标准握手的桥接器,实现接口转化。例如下图是的,AHB2HANDSHAKE桥是作为AHB slave呈现的,由此可以得出桥接器的输入输出之后是参数描述从上图可以看出,AHB2HANDSHAKE模块是作为AHB slave出现的,所以要从AHB Slave角度进行设计。依然是按照状态机的思路。如果是状态机的思路,AHB协议中HTRANS有四种状态、HBURST有原创 2022-06-10 23:33:10 · 772 阅读 · 0 评论 -
高级可拓展接口(Advanced eXtensible Interface, AXI)
适用于高性能、高带宽、高工作频率、低延迟系统,也可基于多主多从的架构。AXI的特性包括:● 控制通道与数据通道相互独立,类似于DMA● 支持字节选通● 只给出第一地址,亦可完成burst传输● 支持乱序传输● 允许电平同步先讲一个master、一个slave之间是如何通信的。AXI将master与slave之间的控制信息和数据信息划分为五个通道进行传输,这五个通道之间是时序独立,这五个通道分别表示:读控制通道AR、读数据通道R、写控制通道AW、写数据通道W、写反馈通道B如下图这五个通道都是基于valid &原创 2022-06-07 23:17:05 · 2778 阅读 · 0 评论 -
AHB到标准握手时序桥 - 逻辑设计部分
AHB协议毕竟与FIFO、RAM等读写协议不一样,而AHB是SoC系统片内常用的高速接口,所以就需要将AHB的时序转化为标准的握手时序,例如下图本文介绍整个设计的逻辑从上图可以看出,AHB2HANDSHAKE模块是作为AHB slave出现的,所以要从AHB Slave角度进行设计。依然是按照状态机的思路。如果是状态机的思路,AHB协议中HTRANS有四种状态、HBURST有八种状态,我们使用哪一个呢?还是自己写状态机?本文的实现思路是基于HTRANS的IDLE、BUSY、NONSEQ和SEQ四种状态进行设原创 2022-06-04 15:28:11 · 1974 阅读 · 2 评论 -
基于AHB_Bus_Matrix与AHB2APB Bridge 的多主多从 架构设计
这次基于AHB与APB的协议,设计一个片内各组件互联的架构原创 2022-05-31 23:16:02 · 3180 阅读 · 0 评论 -
USART - Design Flow
目录1. baud_clk_gen1.1. 代码2. usart_tx3. usart_rx4. usart5. uart_tb逻辑设计部分可以参照uart进行设计,但是还是那句话——设计好再写代码!设计好再写代码!着急写代码是吧,着急写就白想活着!1. baud_clk_gen这个就单纯的根据波特率分频出一个sck时钟,不解释!1.1. 代码module baud_clk_gen#( parameter BAUD_RATE = 12500000, parameter PCLK_FREQ =原创 2022-05-25 23:22:20 · 733 阅读 · 0 评论