Verilog
文章平均质量分 50
芯益求新
这个作者很懒,什么都没留下…
展开
-
数字IC设计笔试面试题总结(五)
引言 本文主要介绍一些在数字IC面试过程中可能遇到的面试手撕代码题,本文将持续更新。主要内容固定优先级仲裁器及轮询仲裁器参考资料: 仲裁器设计(一) -- Fixed Priority Arbiter 仲裁器设计(二)-- Round Robin Arbiter 轮询仲裁器设计同步FIFO与异步FIFO的设计参考资料: 同步FIFO与异步FIFO的基本原理 同步FIFO的Verilo...原创 2021-04-12 15:35:45 · 3509 阅读 · 0 评论 -
同步FIFO的Verilog实现
引言 在前面的文章中,我们已经对FIFO的基本设计思路做了简单的介绍,并且对异步FIFO进行了简单的Verilog实现,具体介绍见链接:同步FIFO与异步FIFO的基本原理,异步FIFO的Verilog实现,下面我们基于如前所述的FIFO基本原理,利用Verilog代码对同步FIFO进行了一个简单的代码实现,并进行了简单的仿真测试。1、实现过程 同步FIFO的设计过程中主要有如下几个注意事项:FIFO深度的计算 FIFO满空标志的产生 解决好如上所述的几个问题后...原创 2021-03-23 20:01:39 · 4521 阅读 · 6 评论 -
异步FIFO的Verilog实现
引言 异步FIFO在如跨时钟域传输等很多应用场合具有很广泛的应用,前面我们已经对异步FIFO的基本设计思路做了简单的介绍,具体介绍见链接:同步FIFO与异步FIFO的基本原理,下面我们基于如前所述的异步FIFO基本原理,利用Verilog代码对异步FIFO进行了一个简单的代码实现,并进行了简单的仿真测试。1、实现过程 异步FIFO的设计过程中主要有如下几个注意事项:FIFO深度的计算 FIFO满空标志的产生 FIFO中读写时钟域地址的传递 解决好如上所述的...原创 2021-03-20 16:28:15 · 4956 阅读 · 6 评论 -
数字IC设计笔试面试题总结(四)
引言 本次列举几个典型的数字IC设计中的笔试面试题,仅做分享,有的题没做解答,请各位有好的解答的回复在评论区。题目欢迎各位给出解答,谢谢!原创 2021-03-17 17:02:29 · 1579 阅读 · 0 评论 -
FPGA时序约束理论(基于Vivado)
引言 FPGA的时序约束是非常重要的,它在FPGA的综合和实现过程中扮演了一个非常重要的角色。最近在公众号中看到了一系列关于FPGA时序约束相关的内容,觉得写的非常好,非常全面,深入浅出地介绍了有关于时序约束相关的理论知识,非常值得我们学习,现分享给大家。建立与保持时间时序路径与时序模型I/O约束时钟周期约束两种时序例外XDC约束优先级致谢 以上内容来自如下图所示的公众号,类容写的非常好,质量非常高,希望大家可以去多多关注他。...原创 2021-01-06 20:17:50 · 1939 阅读 · 0 评论 -
CMA盲均衡器---从理论仿真到FPGA实现
引言 恒模算法(Constant modulus algorithm:CMA)作为一种信道自适应均衡算法在通信与信号处理领域具有很好的应用潜力和前景。相较于RLS和LMS等其他自适应均衡器而言,CMA不需要训练序列,极大的节省了通信带宽资源,可以有效地滤除信道噪声,获取更好的通信质量。本文针对CMA盲均衡算法进行了理论分析,Matlab仿真和FPGA实现。1、理论分析 在前面的博文中我们对常见的几种MIMO均衡算法(CMA,LMS,RLS)理论进行了详细介绍,这里不...原创 2020-12-27 16:29:46 · 9605 阅读 · 15 评论 -
LMS自适应均衡器---从理论仿真到FPGA实现
引言 最小均方误差算法(LMS)作为一种自适应均衡和滤波算法,在通信与信号处理中具有广泛的应用,可以有效地滤除信道噪声,获取很好的通信质量。本文针对该算法进行了理论分析,Matlab仿真与FPGA实现。1、理论分析 在前面的博文中我们对常见的几种MIMO均衡算法(CMA,LMS,RLS)理论进行了详细介绍,这里不再赘述,见链接:MIMO均衡算法(CMA,LMS,RLS)原理介绍 这里主要介绍一下LMS算法的主要流程:初始化滤波器长度,权值,遗忘因子 ...原创 2020-12-21 20:20:55 · 12629 阅读 · 31 评论 -
卷积码编码及维特比译码(Viterbi)算法的原理及其FPGA实现
引言 卷积码是一种信道纠错编码,在通信中具有广泛的应用。在发送端根据生成多项式进行卷积码编码,在接收端根据维特比(Viterbi)译码算法进行译码,能够有效抵抗信道噪声的影响,在误码率门限之下可以对传输过程中发生的突发错误进行纠错。1、编码及译码算法的基本原理卷积码编码 卷积码是一种纠错编码,它将输入的k个信息比特编成n个比特输出,特别适合以串行形式进行传输,时延小。卷积码编码器的一般形式如下图所示。 如下图所示为k=1时的编码框图,k=1也是最常用的一种...原创 2020-12-09 20:54:46 · 17455 阅读 · 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 · 4487 阅读 · 0 评论 -
同步FIFO与异步FIFO的基本原理
FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。 作用: FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集, 另一端是计算...转载 2020-11-18 10:49:22 · 9214 阅读 · 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 · 16044 阅读 · 19 评论 -
FIR滤波器---从理论仿真到FPGA实现
引言 FIR(Finite Impulse Response)滤波器全称是有限脉冲响应数字滤波器。数字滤波器正日益成长为一种重要的DSP运算,并迅速地取代了传统的模拟滤波器,在通信,信号处理等领域具有广泛的应用。FIR数字滤波器通常只需要采用直接的计算机规范和算法进行设计,而传统的模拟滤波器需要复杂的电路设计流程,相比而言,数字滤波器的设计更为简单,应用更为方便,受到了行业研究和应用人员的青睐。1、FIR滤波器理论简介 带有常系数的FIR滤波器是一种线性时不变(LTI)数字滤波器...原创 2020-11-10 15:28:23 · 7009 阅读 · 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 · 3806 阅读 · 0 评论 -
Verilog动态代码生成语句(generate)
引言 在RTL设计中,很多情况下需要编写很多结构相同但参数不同的语句,或者要对一个模块进行多次实例化,这时如果在参数量很大的的情况下,机械的列举就会显得代码很冗余,所以Verilog则提供了generate语句来很方便地解决了这个问题。实例 在这个实例中,我们利用generate语句演示了如何用一位全加器来实现100位串行进位全加器。 1位全加器:module fulladd(input a, input b, ...原创 2020-10-29 14:15:14 · 4029 阅读 · 0 评论 -
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 · 5942 阅读 · 0 评论 -
有限状态机(FSM)的深入理解
吧vvv转载 2020-07-19 17:01:15 · 5208 阅读 · 0 评论 -
常用电路设计之CRC校验码产生器的设计
一、CRC校验码的产生原理 循环冗余编码(CRC)是二进制通信系统中一种常用的差错检测方法,它是通过在原始数据后面添加冗余校验码来实现检测差错的目的。CRC编码的基本原理就是:CRC可由原始数据流的二进制去除以一称作为生成多项式的常数,将得到的商抛弃,余数加到原始数据流二进制数的后面得到,在接收端,用接收的数据再去除以该生成多项式,如果余数为0则校验通过,否则校验不通过。 ...原创 2019-11-24 13:53:50 · 6898 阅读 · 3 评论 -
常用电路设计之PRBS伪随机码发生器的设计
一、PRBS伪随机码产生原理 PRBS 伪随机编码是一种专门用于在高速设计中测试高速串行通道传输误码率的一种编码类型。 PRBS伪随机码不仅具有随机序列的一些统计特性和高斯噪声所有的良好的自相关特征,而且具有某种确定的编码规则,同时又便于重复产生和处理,因而在通信领域应用广泛。生成原理是根据本原表达式来生成一段随机码流,本原表达式可以用线性反馈移位寄存器来表示,移位寄存器的长度称为...原创 2020-07-12 19:40:29 · 14192 阅读 · 3 评论 -
常用电路设计之分频器的设计
引言 分频器在实际数字电路设计中是最基础的,也是最重要的。常见的分频器主要有偶数倍分频器,奇数倍分频器,半整数倍分频器,任意小数倍分频器等。1、偶数倍分频器 偶数倍分频器通过计数器可以很简单的实现。基本原理就是如果要进行N倍偶数分频,那么就可以利用待分频的时钟触发计数器,当计数器从0计数到N/2-1的时候,输出时钟翻转一次,并复位计数器,这样循环往复,就可以得到N倍偶数分频,如下图所示就是一个标准的4分频时序图。2、奇数倍分频器 奇数倍分频器通过计数器也很...原创 2020-07-15 16:05:00 · 11366 阅读 · 0 评论 -
常见笔试面试题之序列检测器
引言 序列检测器用于检测输入数据码流中是否存在特定序列,如果存在则输出1,不存在则输出0。本博文主要介绍在笔试面试题中比较常见的序列检测器的Verilog实现,检测输入数据码流中是否存在10010序列,存在则结果输出为1,不存在则结果输出为0。1、状态转移图 在对一个序列检测器进行RTL描述之前,首先需要将这个序列检测器的状态转移图搞清楚并画出来,然后根据状态转移图来进行RTL描述,本文所描述的状态转移图如下图所示。2、RTL描述 根据节1所述的状...原创 2020-10-11 16:51:50 · 6764 阅读 · 2 评论