自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 FWFT-FIFO的同步和异步verilog代码

上面是同步FWFT-FIFO的verilog手写代码,这种FIFO的一般用于低延时场景,优点是读使能与读数据是同步输出的,没有时延。上面是异步FWFT-FIFO的verilog代码,这种FIFO的一般用于低延时场景,优点是读使能与读数据是同步输出的,没有时延。以上的两份代码均非原创,原创大佬另有其人。代码片不保证无BUG,只是在这里分享给各位借鉴与使用。

2023-12-02 16:42:28 908

原创 System verilog从Testbench中dump出所需要的数据代码

当Burst_Out_Valid为高时,将Burst_Out_Data的数据写入文件并换行,紧接着Burst_Out_Data_Quality信号也做相同的处理。这就是上面的代码块中每行代码的详细解释,基本的dump信息和处理方式都有了,可以直接使用,也可以根据情况进行修改。以wb的操作形式打开DUMP路径下dump_ch0_deinterleaver_out.txt文件;定义好信号所处的路径位置以及替换的宏定义名字 —— CHO_DEINTERLEAVER;将指针指向该文件的开头;

2023-10-23 11:46:34 227

原创 用VMware运行linux CentOS7时,Network中没有wired选项,只有VPN的情况解决方案

毫无征兆,平时使用正常的CentOS7在今天打开后发现无法连接到网络,wired图标也莫名的消失,并且在打开网络设置,也没有对wired的设置模块,这种问题很有可能是之前对云端之类的源进行操纵以及主机上挂梯子等一系列情况综合才会出现的。

2023-07-18 16:48:33 2402 2

原创 PCIE通信接口使用笔记

PCIE通信接口

2023-04-12 17:55:54 5965 1

原创 浅析SPI在FPGA中的应用

SPI(Serial Peripheral Interface)接口是一种同步串行通信接口,广泛应用于数字系统中,包括FPGA中。

2023-04-07 13:50:20 1414

原创 数字逻辑理论——组合电路

数字逻辑理论

2023-01-20 16:30:09 3082

原创 数字逻辑理论——从卡诺图到门电路

数字逻辑理论

2023-01-20 15:30:37 2077

原创 基于UVM方法的一种数据与参照数据文件对比监控打印System Verilog代码

UVM验证学,SV代码

2022-09-24 15:10:08 400

原创 5GNR UpLink子载波选择后补偿问题

无线通讯物理层DDC

2022-07-21 14:50:27 1386

原创 Linux环境verilog编译器报错

verilog编译报错案例解决

2022-04-08 11:05:03 1895

原创 随笔记录——一种跟fft算法相关的校验算法

fft——快速傅里叶变换算法这个算法是流传非常广的一个算法,我在RRU文章里已经很详细的介绍过他的原理了,这里就是详细叙述。直接切入!说一说为什么要进行校验:其实并不是说所有用fft的都会要用到对fft数据的校验,但是在fpga或者其他的环境下,当你最初的input信号经过一层层的传递,来到fft这个模块的时候,fft的输入信号已经不是你当初给的数据那样了,而且你输入的数据也已经是没有相应的详细信息了,当数据量达到一定的程度,如果说改动了原有的运行环境之后出现了错误的话,你可能会需要非常多的时间去deb

2022-03-27 21:33:43 908

原创 常用指令备忘录

putty 修改password 指令:yp passwordvnc 端口申请指令:vncserver geometry 2000x1800(分辨率)

2022-03-24 17:19:54 2964

原创 异步跨时钟域转换

Asynchronous Clock Conversion两种情形:Situation 1:主时钟频率245.76MHz,脉冲A由主时钟产生。采样时钟为122.88MHz,需要在采样时钟下正确采集脉冲A。采用打两拍传递的方法进行采样。Situation 2:主时钟频率122.88MHz,脉冲A由主时钟产生。采样时钟为245.76MHz,需要在采样时钟下正确采集脉冲A。通过采集脉冲沿的方法来进行采样。代码块:'timescale 1ns/1psmodule ACC_mode1(clka,

2021-11-29 17:12:59 602

原创 RRU原理详解以及eCPRI+Low-Phy(一篇文章让你搞懂RRU---呕心沥血之作)

RRU原理详解,光口子系统+Low-PhyCPRI与eCPRICPRI协议eCPRI协议O-RANLow-PhyMIMO多天线技术OFDM正交频分复用技术FFT与IFFTMIMO技术的实现数据通道数字混频(Mixer)FIR滤波器关于RRU系统的框架与基本原理CPRI与eCPRICPRI协议接口标准:1、上行中,CPRI支持I和Q各4到10位的采样宽度;在下行中,支持I和Q各8到20位的采样宽度。2、在用户面(L1)支持的传输速率至少为200Kbit/s,另外协议规定控制面每AxC(天线

2021-11-05 10:50:42 30117 11

原创 通信原理(第六版)读书笔记

一、通信基本概念模拟信号:也叫连续信号,指信号的某一参量连续变化,或者在某一取值范围内可以取无穷多个值,不一定在时间上连续。数字信号:也称离散信号,指信号的某一参量离散变化,或者在某一取值范围内只能取有限多个值,不一定在时间上离散。数字通信系统模型:...

2021-10-13 14:08:22 901

原创 随笔记录——关于数据对比出错的情况

一、当数据有的小1,有的相等的时候,可以考虑是不是round处理没有做;另一方面来看,当做了round处理的数据总是大1或者相等时就要考虑是不是不需要做这个round。二、有符号数进行运算的时候需要时刻注意负数…………台风来了,后面再写...

2021-10-12 18:15:24 275

原创 Verilog中给有数值信号前加负号出现错误的问题

比如这个图片中的代码,当时是按照这个算法中的2047 - X去写的代码,原本下面的那行是这样写的:next_cos_phase = - phase_acc[21:11];最后跑出来数据错误,错误位很小,就是最后一位上下错1的样子,但是信号前加负号相当于取补码,计算的时候是取反加1的,这个时候的代码就相当于用 2048 - X 了,所以数据对比错误,此时要对应上需要减去取补码时加的这个1就可以了。...

2021-09-29 10:53:06 600

原创 LTE通讯基础知识

LTE(Long Term Evolution,长期演进):由3GPP主导制定的无线通信标准。IEEE对宽带无线制式物理层(PHY)和媒介接入控制层(MAC)制定了标准。一、概要对于无线的空口资源:空间资源指天线单元;频率资源指载波、频点资源;时间资源指时隙。这些都属于硬资源,因为不可再生。码资源就不一样了。理论上,相互正交的码可以在同一个空间、频率、时间资源上区分出不同的信道来。这样,只要码足够长,同一空间、频率、时间可以支持无穷多个相互正交的信道。码资源是一种软资源,但是码不宜过长,否则计算复杂

2021-09-06 16:51:58 6528

原创 随笔记录 — 关于DEBUG和饱和处理(saturation)与四舍五入(Round)处理方式

关于DEBUG和饱和处理DEBUG饱和处理RoundDEBUGDEBUG也就是平时所说的调试,我最近发现有一些刚开始学习FPGA或者Verilog的人完全不懂的如何去DEBUG,所以在这里写一下一个DEBUG的思路。首先代码是肯定写完了之后才会有DEBUG的,为什么要DEBUG?因为你发现你的仿真跟你所预期或者需要的波形不一样。Windows的话,可以在EDA或者仿真软件上看到错误的地方,但是在Linux下的话,可能就是下图这样:会有一些提示,无论是Windows还是Linux,这里提供一个做DE

2021-08-13 17:53:35 922

转载 Makefile学习笔记(三)

本文基于博主陈皓文章读后所做的笔记,欢迎跳至原文链接:https://blog.csdn.net/haoel/article/details/2886.这里的Makefile是基于Linux下GNU的make。Makefile学习笔记(三)

2021-08-12 17:45:12 366

原创 Makefile学习笔记(二)

本文基于博主陈皓文章读后所做的笔记,欢迎跳至原文链接:[https://blog.csdn.net/haoel/article/details/2886]这里的Makefile是基于Linux下GNU的make。Makefile学习笔记(二)1、Makefile里有什么2、Makefile的文件名3、引用其他的Makefile4、环境变量MAKEFILES5、make的工作方式6、书写规则一、规则举例二、语法规则三、在规则中使用通配符四、文件搜索五、伪目标六、多目标七、静态模式1、Makefile.

2021-08-06 14:01:41 243

原创 Makefile学习笔记(一)

本文基于博主陈皓文章读后所做的笔记,欢迎跳至原文链接:https://blog.csdn.net/haoel/article/details/2886这里的Makefile是基于Linux下GNU的make。1、Makefile规则Makefile的规则或者说架构大致可以写成下面这样:target … : prerequisites …command……其中target后面接的是目标文件,可以是Object文件也可以是执行文件。还可以是一个标签类的(Label)。prerequisit.

2021-08-05 17:51:56 168

原创 串口模块总结

上图串口传输的时序图。串口传输数据都是一帧数据 11 位。其中第0位为起始位,1-7位为数据位,第九位为校验位,第十位是停止位。在串口的总线上“高电平”是默认的状态,当一帧数据的开始传输必须先拉低电平,这就是第 0 位的作用。第 0 位过后就是 8 个数据位,这八个数据位才是一帧数据中最有意义的东西。最后的两位是校验位和停止位,作用如同命名般一样,基本上是没有重要意义。串口传输还有另一个重要参数就是“波特率”。很多朋友都误解“波特率”是串口传输的传输速度,这样的理解在宏观上是无误。但是在微观上“波特率.

2021-04-20 11:26:16 2993

原创 DDR3原理总结

DDR SDRAM 全称为 Double Data Rate SDRAM,中文名为“双倍数据流 SDRAM”。DDR SDRAM 在原有的 SDRAM 的基础上改进而来。也正因为如此,DDR 能够凭借着转产成本优势来打败昔日的对手 RDRAM,成为当今的主流。本文只着重讲 DDR 的原理和 DDR SDRAM 相对于传统 SDRAM(又称 SDR SDRAM)的不同。SDRAM:同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM)是有一个

2021-04-08 10:43:50 2681

原创 Xilinx FPGA开发实用经验学习(二)

1、JTAG电路的原理与设计先说一下JTAG(Joint Test Action Group)。标准的JTAG接口是4线接口,TMS、TCK、TDI以及TDO,分别为模式选择、时钟、数据输入以及输出信号线。JTAG电路的功能模块如下图所示:JTAG接口常用于实现ISP(In-System Programmable),对Flash等器件进行编程。JTAG边界扫描电路又称为Boundary Sean Test(BST),一般采用4线接口(5线接口中有一个接口为主复位信号),也可以通过PC的RS232接口

2021-04-05 19:25:13 1954

原创 Xilinx FPGA开发实用经验学习(一)

1、同步RS触发器RS触发器分为同步触发器和异步触发器,二者的区别在于同步触发器有一个时钟端clk,只有在时钟端的信号沿时,触发器的输出才会发生变化。下面是Verilog代码:module sy_rs_ff(clk,r,s,q,qb) input clk,r,s; output q,qb; reg q; assign qb = ~ q; always @ (posedge clk) begin case ({r,s}) 2'b00 : q <= q; 2'b01 : q

2021-03-27 20:37:09 913

原创 Allegro 17.4 PCB设计流程与经验

Cadence allegro 17.4 Editor设计入门可能遇到的问题写一下从第一步开始的每个步骤所遇到问题或者BUG吧(暂不涉及原理图)首先从原理图的网表开始吧,原理图画好之后可以生成网表到文件夹,暂时叫他allegro(默认名字)吧。然后到Editor了,打开软件,新建一个工程文件,然后使用向导新建工程,在向导里面可以设置很多东西,比如最小线宽、最小线距、封装元件的距离等,还有板子的大小、布局布线的区域限制等。向导设置完之后,就会出现3个线框(有可能会出现两个),如果是两个线框的话,你可

2021-03-18 17:22:22 5341

原创 简单的内部时钟开关LED灯Verilog代码

FPGA的设计中通常使用计数器来计时,对于采用200Mhz的系统时钟,一个时钟周期是5ns,那么表示一秒需要200000000个时钟周期,如果一个时钟周期计数器累加一次,那么计数器从0到199999999正好是200000000个周期,就是1秒的时钟。(时间仅供参考,具体可以根据所需要的时间来修改参数,~~虽然我改的时候发现很困难,并且需要大量的时间~~ )首先需要定义一个32位的定时器,最大可以表示4294967295,十六进制就是FFFFFFFF,如果计数器到最大值,可以表示21.474836475

2020-12-04 14:52:15 820

转载 FPGA 串口通信——通用模块

FPGA串口通信前面写的串口通信模块,没有通用性,这里写一个可以通用的串口模块,但凡以后需要串口通信的,就可以直接拿过来用。串口接收模块信号名称I/O位数功能描述clkI1系统时钟50MHzrst_nI1系统复位rs232_txI1串口串行数据发送数据口baud_setI3波特率选择信号data_byteO8并行数据输出rx_doneO1接收1字节数据完成标志代码:UART_Byte_Rx.v//--

2020-09-07 13:50:39 519

转载 I2C接口EEPROM实验

本实验通过I2C master控制器去控制I2C接口的EEPROM的读写。代码来源 opencores`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Design Name: // Module Name: I2C_EEPROM// Project Name: ///////////////////////////////////

2020-08-20 14:08:26 1150

原创 四位并行乘法器Verilog

上图是4位并行乘法器的电路结构图设计代码`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2020/08/07 13:53:37// Design Name: // Module Name: and_2// Project Name: 定义二输入与.

2020-08-07 15:43:20 3335 5

原创 总线仲裁器电路的设计与验证Verilog

共享总线是一种常见的总线结构,多个总线上的设备拥有共同的地址线和数据线。当-一个总线设备希望占据总线进行数据收发操作时,需要通过属于自己的areq信号向仲裁器发出申请,只有得到仲裁器的许可(对应的agnt置1 )时才能进行数据收发操作,没有得到许可的总线设备不能发起数据操作,否则将会出现多个设备同时驱动总线的错误。下图是有两个总线设备的总线仲裁器电路,areqO 和areq1以及agnt0和agnt1分别是master1和master2的请求和确认信号,rid是仲裁方式选择信号。当多个总线设备同时发出请求时

2020-07-29 14:08:32 2713

原创 静态定时分析、时钟域与同步化设计

静态定时分析的基本方法是什么?时钟本身的不理想主要表现在哪些方面,在静态定时分析时是如何处理的?Ans:静态定时分析的基本方法:1、确定延迟路径起点:模块的输入脚、寄存器或触发器的时钟脚。2、确定延迟路径的终点:模块的输出脚、寄存器或触发器的输入引脚。3、任意两个存在直接或间接逻辑连接关系的起点和终点之间都可以构成一条延迟路径,对所有延迟路径的延迟量进行累加,最大延迟路径决定了系统的最高工作时钟频率。不理想主要表现在时钟抖动上,这时候需要将最大时钟抖动参数作为延迟的一部分进行考虑。在AFIFO的

2020-07-28 17:03:02 204

原创 二进制转格雷码的Verilog代码

十进制数自然二进制数格雷码000000000100010001200100011300110010401000110501010111601100101701110100810001100910011101101010111111101111101211001010131101101114111010011511111000格雷...

2020-07-28 13:25:03 818

原创 Verilog同步FIFO的电路设计

先入先出(FIFO:First In First Out)存储器是一种常用的数据缓冲器件,它没有外部读写地址线,使用起来非常简单,但缺点是只能顺序写入数据,顺序读出数据,其数据读写顺序由内部读写指针自动控制确定。同步FIFO外部连接关系图FIFO内部电路结构图设计代码`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company:

2020-07-27 14:24:07 842

原创 Verilog数码显示器00~99循环计数器电路

采用2位7段数码显示器设计一个00~99循环计数器电路。输入包括一个时钟输入端和一个低电平复位端,复位时输出88,两个输出分别控制高位和低位数码显示器。7位数码管显示器的结构图如下:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2020/07/24

2020-07-24 13:22:38 8472 9

原创 简易自动售货机控制电路

设计电路有两个投币口(1元和5角),货物2元一件,不设找零。out表示是否提供货物。设计代码`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2020/07/23 11:30:37// Design Name: // Module Name: Test

2020-07-24 09:59:02 3351

原创 Verilog按比例控制产生随机数

产生0~100之间的随机数,其中小于50的数的比例为80%。`timescale 1ns / 1psmodule Test1533;reg [3:0] range;//reg [9:0] data1;reg [9:0] data;reg big;initial begin repeat(100) begin #10; range={$random}%10; if(range<8) big=1;

2020-07-24 09:46:06 2078

原创 Verilog 0到99循环计数器

设计一个2位十进制的循环计数器,从0到99,然后再回到0.输出为out0和out1,分别表示十进制数的高位和低位。设计代码`timescale 1ns / 1psmodule Test1030(clk,rst,out0,out1,data);input clk;input rst;output [3:0] out0;output [3:0] out1;output [7:0] data;reg [3:0] out0;reg [3:0] out1;wire [7:0] data;alw

2020-07-23 11:25:46 9103 1

原创 简易交通灯控制器Verilog

设计一个简单的交通灯控制器,他有5个状态,每个状态都具有可独立编程确定的时间参数(parameter),假设时钟频率为50Hz(如果仿真时间太长可以做适当的比例修改)。路口交通灯示意图设计代码`timescale 1ns / 1psmodule Test1530(clk,reset,red1,yellow1,green1,red2,yellow2,green2);input clk;input reset;output red1,yellow1,green1;reg red1,yello

2020-07-23 10:24:50 6436 5

UART代码.docx

基于黑金开发板,设计了一套基于FPGA的UART接口,与IIC、SPI 等接口一样,都属于串行通信接口,但是UART只有数据线收和发,并无时钟线,故为异步串行通信接口,可以实现全双工通信;在嵌入式系统中,常用与控制系统与外设通信,包括控制器与控制器,控制器与终端设备。线路简单,成本低,传输距离远,但传输速度慢。

2020-08-03

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除