- 博客(55)
- 资源 (4)
- 收藏
- 关注
原创 数字IC设计笔试面试题总结(五)
引言 本文主要介绍一些在数字IC面试过程中可能遇到的面试手撕代码题,本文将持续更新。主要内容固定优先级仲裁器及轮询仲裁器参考资料: 仲裁器设计(一) -- Fixed Priority Arbiter 仲裁器设计(二)-- Round Robin Arbiter 轮询仲裁器设计同步FIFO与异步FIFO的设计参考资料: 同步FIFO与异步FIFO的基本原理 同步FIFO的Verilo...
2021-04-12 15:35:45 3397
原创 同步FIFO的Verilog实现
引言 在前面的文章中,我们已经对FIFO的基本设计思路做了简单的介绍,并且对异步FIFO进行了简单的Verilog实现,具体介绍见链接:同步FIFO与异步FIFO的基本原理,异步FIFO的Verilog实现,下面我们基于如前所述的FIFO基本原理,利用Verilog代码对同步FIFO进行了一个简单的代码实现,并进行了简单的仿真测试。1、实现过程 同步FIFO的设计过程中主要有如下几个注意事项:FIFO深度的计算 FIFO满空标志的产生 解决好如上所述的几个问题后...
2021-03-23 20:01:39 4366 6
原创 异步FIFO的Verilog实现
引言 异步FIFO在如跨时钟域传输等很多应用场合具有很广泛的应用,前面我们已经对异步FIFO的基本设计思路做了简单的介绍,具体介绍见链接:同步FIFO与异步FIFO的基本原理,下面我们基于如前所述的异步FIFO基本原理,利用Verilog代码对异步FIFO进行了一个简单的代码实现,并进行了简单的仿真测试。1、实现过程 异步FIFO的设计过程中主要有如下几个注意事项:FIFO深度的计算 FIFO满空标志的产生 FIFO中读写时钟域地址的传递 解决好如上所述的...
2021-03-20 16:28:15 4727 6
原创 数字IC设计笔试面试题总结(四)
引言 本次列举几个典型的数字IC设计中的笔试面试题,仅做分享,有的题没做解答,请各位有好的解答的回复在评论区。题目欢迎各位给出解答,谢谢!
2021-03-17 17:02:29 1535
原创 FPGA时序约束理论(基于Vivado)
引言 FPGA的时序约束是非常重要的,它在FPGA的综合和实现过程中扮演了一个非常重要的角色。最近在公众号中看到了一系列关于FPGA时序约束相关的内容,觉得写的非常好,非常全面,深入浅出地介绍了有关于时序约束相关的理论知识,非常值得我们学习,现分享给大家。建立与保持时间时序路径与时序模型I/O约束时钟周期约束两种时序例外XDC约束优先级致谢 以上内容来自如下图所示的公众号,类容写的非常好,质量非常高,希望大家可以去多多关注他。...
2021-01-06 20:17:50 1881
原创 CMA盲均衡器---从理论仿真到FPGA实现
引言 恒模算法(Constant modulus algorithm:CMA)作为一种信道自适应均衡算法在通信与信号处理领域具有很好的应用潜力和前景。相较于RLS和LMS等其他自适应均衡器而言,CMA不需要训练序列,极大的节省了通信带宽资源,可以有效地滤除信道噪声,获取更好的通信质量。本文针对CMA盲均衡算法进行了理论分析,Matlab仿真和FPGA实现。1、理论分析 在前面的博文中我们对常见的几种MIMO均衡算法(CMA,LMS,RLS)理论进行了详细介绍,这里不...
2020-12-27 16:29:46 8692 15
原创 LMS自适应均衡器---从理论仿真到FPGA实现
引言 最小均方误差算法(LMS)作为一种自适应均衡和滤波算法,在通信与信号处理中具有广泛的应用,可以有效地滤除信道噪声,获取很好的通信质量。本文针对该算法进行了理论分析,Matlab仿真与FPGA实现。1、理论分析 在前面的博文中我们对常见的几种MIMO均衡算法(CMA,LMS,RLS)理论进行了详细介绍,这里不再赘述,见链接:MIMO均衡算法(CMA,LMS,RLS)原理介绍 这里主要介绍一下LMS算法的主要流程:初始化滤波器长度,权值,遗忘因子 ...
2020-12-21 20:20:55 11197 31
原创 混沌图像加密算法原理及matlab实现
引言 混沌作为一种非线性动力学过程,对初始状态具有高度敏感性,且不可预知,是一种天然的物理密码。因此在密码学,随机数产生,保密通信及图像加密领域具有广泛的应用。本文基于最基本的Lorenz混沌系统实现了图像加密,并利用Matlab演示了这一加密和解密过程。1、Lorenz混沌系统原理 一个混沌系统可以由一个微分方程或微分方程组进行表示,我们对这个微分方程或微分方程组进行求解就可以求得相应的混沌序列,一个Lorenz混沌系统可以简单由如下图所示的微分方程组进行表示。...
2020-12-15 19:58:53 14128 13
原创 卷积码编码及维特比译码(Viterbi)算法的原理及其FPGA实现
引言 卷积码是一种信道纠错编码,在通信中具有广泛的应用。在发送端根据生成多项式进行卷积码编码,在接收端根据维特比(Viterbi)译码算法进行译码,能够有效抵抗信道噪声的影响,在误码率门限之下可以对传输过程中发生的突发错误进行纠错。1、编码及译码算法的基本原理卷积码编码 卷积码是一种纠错编码,它将输入的k个信息比特编成n个比特输出,特别适合以串行形式进行传输,时延小。卷积码编码器的一般形式如下图所示。 如下图所示为k=1时的编码框图,k=1也是最常用的一种...
2020-12-09 20:54:46 16710 12
原创 数字IC设计笔试面试题总结(三)
本次给大家介绍一个非常有意思的Verilog编程题,题目描述如下图:这道题主要考察了计数器相关的知识,对逻辑能力要求比较严格,解答如下:module top_module( input clk, input reset, input ena, output pm, output reg[7:0] hh, output reg[7:0] mm, output reg[7:0] ss); always @(posedge clk)b
2020-11-19 21:24:04 4454
转载 同步FIFO与异步FIFO的基本原理
FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。 作用: FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集, 另一端是计算...
2020-11-18 10:49:22 8817 4
原创 Vivado中的Xilinx FFT/IFFT IP核详细使用流程介绍
引言 快速傅里叶变换或反变换(FFT/IFFT)是一种重要的信号分析方法,在各种如图像处理,通信及信号处理等工程领域具有非常重要的应用,因此研究其工程实现具有非常重要的意义。Xilinx公司在Vivado开发工具中提供了FFT/IFFT的 IP核,供开发人员很方便的调用和使用,因此,本文主要对Vivado中的Xilinx FFT/IFFT IP核使用流程展开详细介绍。1、FFT/IFFT IP核的创建 在使用FFT/IFFT IP核之前,需要在Vivado软件中进行创建...
2020-11-15 16:38:19 15430 19
原创 FIR滤波器---从理论仿真到FPGA实现
引言 FIR(Finite Impulse Response)滤波器全称是有限脉冲响应数字滤波器。数字滤波器正日益成长为一种重要的DSP运算,并迅速地取代了传统的模拟滤波器,在通信,信号处理等领域具有广泛的应用。FIR数字滤波器通常只需要采用直接的计算机规范和算法进行设计,而传统的模拟滤波器需要复杂的电路设计流程,相比而言,数字滤波器的设计更为简单,应用更为方便,受到了行业研究和应用人员的青睐。1、FIR滤波器理论简介 带有常系数的FIR滤波器是一种线性时不变(LTI)数字滤波器...
2020-11-10 15:28:23 6540 4
原创 数字IC设计笔试面试题总结(二)
1、边沿检测(实现对信号上升沿或下降沿进行检测)//上升沿检测`timescale 1ns/1psmodule edge_detect( //system signals input clk , input rst_n , input edge_signal , output pulse);reg edge_reg0;reg edge_reg1;always @(posedge clk or negedge rst_n) begin
2020-11-04 15:03:42 3765
原创 Vivado在线调试之集成逻辑分析仪(ILA)的使用
引言 由于在对FPGA进行编程时,当出现问题时,免不了要对内部信号进行一些监测和调试,以找出问题所在并加以解决,本文主要介绍在Vivado平台下如何利用集成逻辑分析仪(ILA)进行在线调试。调试的例子是利用串口通信连续发送0-255这256个数据。具体操作步骤建立工程(建立工程的基本操作在这里就不详细介绍了,按照一般建立工程的操作进行即可) Creat Project->工程命名->选择工程存放路径->选择目标器件->添加源文件->添加测试...
2020-11-03 11:24:17 12840 1
原创 Verilog动态代码生成语句(generate)
引言 在RTL设计中,很多情况下需要编写很多结构相同但参数不同的语句,或者要对一个模块进行多次实例化,这时如果在参数量很大的的情况下,机械的列举就会显得代码很冗余,所以Verilog则提供了generate语句来很方便地解决了这个问题。实例 在这个实例中,我们利用generate语句演示了如何用一位全加器来实现100位串行进位全加器。 1位全加器:module fulladd(input a, input b, ...
2020-10-29 14:15:14 3959
原创 UART串口通信协议的FPGA实现
引言 UART串口通信协议,全称叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART是异步通信,它只需要一根线就可以进行数据的通信。1、基本概念波特率:指每秒传输的bit位数(bit)。一般波特率都会有9600,15200等选项。 起始位:先发出一个逻辑”0”信号,表示传输字符的开始。 数据位:可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。一般情况下都选择8位而...
2020-10-20 21:21:31 5862
原创 FPGA定点数字信号处理技巧(二)
引言 在FPGA定点数字信号处理技巧(一)中,我们主要介绍了FPGA进行小数处理的流程,但对小数进行Qn编码后的具体量化方法没有展开介绍,本文主要围绕Matlab提供的内置量化函数来展开介绍小数定点量化为整数的几种方法。1、Matlab量化函数 在Matlab中提供了专门的量化方法,quantize()量化函数及应用方法如下。% 设置量化器,[15,12]表示总位数位15位,小数位位12位,则整数位为15-12=3位Q = quantizer('mode','fi...
2020-10-15 11:26:23 4273 3
原创 常见笔试面试题之序列检测器
引言 序列检测器用于检测输入数据码流中是否存在特定序列,如果存在则输出1,不存在则输出0。本博文主要介绍在笔试面试题中比较常见的序列检测器的Verilog实现,检测输入数据码流中是否存在10010序列,存在则结果输出为1,不存在则结果输出为0。1、状态转移图 在对一个序列检测器进行RTL描述之前,首先需要将这个序列检测器的状态转移图搞清楚并画出来,然后根据状态转移图来进行RTL描述,本文所描述的状态转移图如下图所示。2、RTL描述 根据节1所述的状...
2020-10-11 16:51:50 6553 2
原创 FPGA定点数字信号处理技巧(一)
引言 在数字信号处理或者其他算法中涉及到的大部分计算都是浮点小数的计算,但是FPGA只能进行整数的计算。因此,我们在考虑数字信号处理或其他算法的FPGA实现时,就不得不寻求在FPGA中进行小数计算的方法。本次博文主要介绍在FPGA中进行高效小数计算的方法和原理。1、浮点小数定点化 由于在FPGA中进行计算时,参与运算的数的位宽都是有限制的,是恒定的,因此需要将参与运算的浮点小数定点化,限制浮点小数的位宽到FPGA中所允许的位宽范围之内。 首先介绍一下一些基本概念...
2020-10-05 21:02:43 6579
原创 MIMO均衡算法(CMA,LMS,RLS)原理介绍
引言 由于MIMO技术在提高信道容量方面具有巨大的潜力,因此已经在无线通信领域和光通信领域得到了广泛的应用。MIMO技术充分的利用了空间这一维度,在应用到无线通信领域中时,发射端和接收端通过多个发射天线和多个接收天线进行通信,但是不同天线的信道由于多径效应导致相互串扰,在接收端需要进行相应的数字信号处理才能将并行传输的不同信道信号给分离出来。在应用到光通信领域中时,通过利用光纤中正交的不同模式或其他空间维度进行通信,但是由于光纤在设计制造中的一些缺陷,会导致携带在不同正交维度上的信号发生相互...
2020-10-03 16:46:40 21445 2
原创 数字PID算法的Verilog实现
引言 本文续前节,继续介绍数字PID算法的Verilog实现,从而实现数字PID算法在FPGA器件上的应用落地。1、代码设计误差计算(error.v)module error( //system signals input clk , // 时钟信号 input rst_n , // 复位信号,低电平有效 input reg signed [9:0] target , // 目标值 input reg signed [9:0] y , ...
2020-09-13 14:26:05 22417 29
原创 数字PID控制算法原理及Matlab仿真
引言 最近碰到一个项目需要用到PID控制算法,于是在网上找了一些资料学习了一下,发现网上对于PID算法的Matlab仿真方面的内容比较少,所以我就把我自己所学习到的内容分享给大家。本次博文主要介绍了位置式和增量式PID控制算法的原理和Matlab的仿真分析。1、模拟PID控制算法 在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器的基本结构如下图所示,G(s)为被控对象的系统传递函数。 ...
2020-09-02 09:46:33 29854 8
原创 sobel图像边缘检测算法的Python及Verilog验证
引言 本文是之前AI加速器项目的一个补充,即之前AI加速器中PL部分的工作。本文主要介绍的是一种sobel图像边缘检测算法的Python及Verilog实现。一、sobel图像边缘检测算法的Python实现 sobel图片边缘检测算法的核心就是图片的卷积操作,我们所用的是如下图所示的一个3*3的卷积核。-1 0 1 -2 0 2 -1 0 1 图片的卷积操作简单来说就是移位相乘然后累加运算,具体资料各位可以上网查...
2020-08-16 16:54:02 6178 1
原创 乒乓RAM基本原理和操作介绍
引言 乒乓操作是一个非常常用的数据流控制处理技巧,乒乓RAM源于乒乓操作的基本原理,本节将对乒乓RAM作一个简单的介绍,也作为平常学习笔记的一个记录,等忘记后可以回来复习复习。主要内容 乒乓RAM的基本结构如下图所示,主要由两个RAM和两个2选一数据选择器组成。 乒乓RAM的处理流程:输入数据流通过数据选择器等时分配到两个RAM数据缓冲区; 在第一个数据缓冲周期,将输入数据流缓存到RAMA; 在第二个数据缓冲周期,将输入数据流缓存到RAMB,同时将RAMA...
2020-08-02 20:09:06 9702
原创 何为相干光通信系统?
引言 相干光通信系统具有非常多的优点,广泛运用在长距离光传送网中。近年来,随着网络流量的爆炸式增长,数据中心对数据传输速度也提出了新的要求,相干光通信在数据中心短距光互连中也体现出来了许许多多的优势,得到了广泛的研究和关注,本文将介绍相干光通信系统的基本组成,三种相干检测方式以及相干光通信中需要运用到的数字信号处理算法。1、相干光通信系统基本结构 如下图所示为相干光通信系统的基本组成。发送端由ECL(外腔激光器),IQ调制器以及用于调制信号产生的AWG(任意波形发生器组成),发送...
2020-08-01 16:30:32 9427
原创 深度神经网络在光通信及数字信号处理领域的应用总结(AI-ODSP)(二)
引言 本次博文是前面博文的延伸,主要内容包括神经网络非线性均衡以及深度学习在光网络层管理中的应用。1、主要内容2、结语 以上只是我目前总结内容的一部分,后续我还会继续总结,然后分享给大家,欢迎大家持续关注。...
2020-07-20 11:24:11 5193
原创 LDPC编译码原理介绍
引言 LDPC编码中文全称叫做低密度奇偶校验码,是众多信道纠错编码中的一种。在系统的信息传输速率小于信道容量时,LDPC编译码技术可以在较高传输速率下将有噪信道下的突发错误尽可能无限减小,从而将系统的传输容量可以无限地逼近香农容限。由于 LDPC码校验矩阵的稀疏性使得相应编码及迭代译码算法复杂度降低,硬件实现较容易,具有很好的应用前景,在业界广受欢迎。本文将从LDPC编译码基本工作流程,校验矩阵的构造方法,硬判决译码方法,置信传播软判决译码方法等四个方面展开介绍。1、LDPC编译码基本工...
2020-07-18 16:43:29 21693 3
原创 常用电路设计之分频器的设计
引言 分频器在实际数字电路设计中是最基础的,也是最重要的。常见的分频器主要有偶数倍分频器,奇数倍分频器,半整数倍分频器,任意小数倍分频器等。1、偶数倍分频器 偶数倍分频器通过计数器可以很简单的实现。基本原理就是如果要进行N倍偶数分频,那么就可以利用待分频的时钟触发计数器,当计数器从0计数到N/2-1的时候,输出时钟翻转一次,并复位计数器,这样循环往复,就可以得到N倍偶数分频,如下图所示就是一个标准的4分频时序图。2、奇数倍分频器 奇数倍分频器通过计数器也很...
2020-07-15 16:05:00 10865
原创 常用电路设计之PRBS伪随机码发生器的设计
一、PRBS伪随机码产生原理 PRBS 伪随机编码是一种专门用于在高速设计中测试高速串行通道传输误码率的一种编码类型。 PRBS伪随机码不仅具有随机序列的一些统计特性和高斯噪声所有的良好的自相关特征,而且具有某种确定的编码规则,同时又便于重复产生和处理,因而在通信领域应用广泛。生成原理是根据本原表达式来生成一段随机码流,本原表达式可以用线性反馈移位寄存器来表示,移位寄存器的长度称为...
2020-07-12 19:40:29 13439 3
转载 Vivado HLS(High-level Synthesis)笔记五:for循环优化
一. 基本性能指标for循环优化的基本概念、对for循环施行流水的优化、for循环的展开以及for循环的循环变量的数据类型是否对结果资源有影响1. 流水线优...
2020-06-13 09:48:30 5084
原创 Vivado HLS数据类型及数据类型转换
引言 Vivado HLS数据类型与C语言的基本数据类型稍微有些不同,由于FPGA所需要的数据类型可能是任意bit的,而C语言则是以8bit为单位的,所以如果继续沿用C语言的数据类型,会在利用C语言开发FPGA时造成资源的极大浪费。1、任意数据类型 任意数据类型的含义指定义的数据类型可以自定义bit位数,如下图: 对于C++语言还提出了定点数据类型,其中各种参数的含义定义如下:2、数据类型转换 Vivado HLS还定义了不同数据类...
2020-05-25 19:40:42 5441
原创 Vivado HLS设计流程及实例演示
引言 Vivado HLS给FPGA设计提供了一种新的方式,可以让软件工程师直接介入FPGA开发,加速了各种算法在FPGA上实现和应用的进程,特别是在如今人工智能大潮流下,Vivado HLS可以加速各种机器学习,深度学习算法在FPGA上的实现,加速算法落地和产业实现。1、传统的RTL设计流程 传统用于FPGA设计的方法都是基于RTL描述的,RTL即基于Verilog/VHDL等硬件描述语言直接对所需要实现的硬件进行描述,然后生成相应的硬件电路,基本流程如下图所示:2、基...
2020-05-23 09:37:25 6603 4
原创 深度神经网络在光通信及数字信号处理领域的应用总结(AI-ODSP)(一)
一、Introduction 本次博文主要介绍深度神经网络在光通信领域的应用,尤其是在光通信相关的数字信号处理中的应用,涵盖概率星座图整形,几何星座图整形以及光纤非线性均衡等方面的内容,所有的数据来源OFC会议或者其他权威期刊,文章来源均已标注,想要深入了解的可以下载原文了解,无法获取原文的也可以通过主页的qq联系我。二、Overview三、Probabilistic Constellation Shaping(PCS)四、Geometric conste...
2020-05-15 20:57:09 6745 2
原创 TensorFlow2.0相关操作介绍(三)
引言 本节续前节,继续讲解TensorFlow2.0的相关操作。4、数学运算+-*/%// 特殊的//运算为整除,如40//7=5。tf.math.log tf.math.log()函数表示以自然对数为底的对数函数,若要将变成以2为底或以10为底的对数函数即可用如下所示的换底公式即可: 如下例:tf.exp,tf.p...
2020-04-21 21:16:01 4095 1
原创 TensorFlow2.0相关操作介绍(二)
引言 本节续前节继续介绍TensorFlow2.0的相关操作。2、TensorFlow2.0的索引与切片基本索引 基本索引的索引方式与list的索引方式类似,对一个张量的每个维度进行索引对应一个[],如下例。Numpy类型的索引方式 当一个张量的维度较多的时候,要对张量进行索引时还是采取基本索引的方式就很难敲繁杂的[],这时就可以引入Num...
2020-04-18 15:25:36 3738
原创 TensorFlow2.0相关操作介绍(一)
引言 本次博文的主要内容是系统介绍TensorFlow2.0的相关操作,主要采用实例的形式进行介绍,以便初学者可以很快的了解和使用TensorFlow2.0框架。1、创建Tensor Tensor是TensorFlow2.0中的基本数据类型,数据的运算和处理都是基于Tensor数据类型进行的。tf.zeros tf.zeros主要用于产生0矩阵...
2020-04-14 21:39:37 3801
原创 手写数字识别问题实战
1、何为手写数字识别问题? 手写数字识别即将如下图所示的各种各样的手写体阿拉伯数字识别出来的一个过程,这个问题已经被研究的很成熟了,也有人搜集和整理了手写数字的数据集-mnist。2、如何解决手写数字识别问题? 在本次的手写数字识别问题中我们运用到了前面所讲的线性回归模型,通过利用多层的线性回归,并引入非线性因素relu进行训练,训练好模型后进行测试,整个模型...
2020-04-02 11:04:46 4900
原创 机器学习之线性回归问题分析及实战(附python源代码)
1、何为线性回归? 线性回归从直观上讲就是寻找一线性函数(一次函数)来尽可能拟合一离散数据序列,使求得的线性函数能够直观正确的反映离散数据序列的变化规律。2、如何求线性回归函数?step1:在求线性回归函数之前,需要建立一个评价函数来评价线性函数对数据序列的拟合效果,在这成为loss函数,公式如 下所示: ...
2020-03-31 15:02:17 4677
AXI总线中文详解.pdf
2021-03-17
数字通信系统中位同步时钟提取的改进设计_段惠敏
2018-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人