自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 问答 (1)
  • 收藏
  • 关注

原创 电平 标准

TTL(Transistor-Transistor Logic),晶体管-晶体管逻辑电平。工作于TTL接口标准下的数字电路,其内部的有源器件的标准电源供给应为5V。

2025-06-05 12:00:30 181

原创 spi verilog

【代码】spi verilog。

2025-05-24 15:45:20 361

原创 uart verilog 三段式状态机

【代码】uart verilog 三段式状态机。

2025-05-24 13:52:57 677

原创 xdc约束学习

对clk的约束伪时钟路径。

2025-05-19 17:53:55 125

原创 verilog循环仿真

虽然在verilog描述功能时循环要限制使用,但是在tb时这些限制不再需要管,可以在tb时随意使用for循环语句。除了for之外,还有许多循环语句。这个循环不会退出循环阶段。<value>表示循环次数。

2025-05-08 18:02:29 251

原创 Verilog Test Fixture 时钟激励

【代码】Verilog Test Fixture 时钟激励。

2025-05-07 17:30:02 256

原创 Verilog Test Fixture 等待语句

【代码】Verilog Test Fixture 等待语句。

2025-05-07 17:23:49 329

原创 提高设计的自测性

output一些关键信号的值,直接赋值,不要出现状态机。将一些内部的关键信号直接通过芯片的空闲pin脚输出。

2025-04-30 13:37:06 134

原创 提高设计的综合性能

导致设计出现问题的隐患有很多,其中主要是 非法输入 和 环境干扰。记得要约束 keep_hierarchy 防止被优化。一般来说 , RAM 比 FIFO 具有更好的鲁棒性。状态机的鲁棒性就代表FPGA的鲁棒性。对部分FPGA电路重构。指对FPGA从新配置。

2025-04-30 13:25:11 456

原创 UDP用户自定义原语

每个UDP只能有一个output,最多有十个input。端口只能是 1bit的标量,不支持 z , 不能被综合;demo 2输入1输出多路复用器。

2025-04-30 10:02:07 107

原创 原语的使用

原语( primitive ),是FPGA开发环境所提供的一系列逻辑功能单元。往往与FPGA芯片的厂家精密相连,不同厂家的原语往往不能通用。

2025-04-29 17:59:54 539

原创 float int16 相互转换

【代码】float int16 相互转换。

2025-04-24 15:01:34 212

原创 verilog中的约束信息

keep_hierarchy:vivado默认会把设计变成一级一级模块化的调用转换为一个没有子模块的超大模块。rom_extract:检测code中是否有RAM等效功能并转换为RAM。fsm_style:决定是基于 LUT 还是 BRAM 实现有限状态机。ram_extract:检测code中是否有RAM等效功能并转换为RAM。TRUE:保留层级关系并保留到实现(可以实现三模冗余)SOFT:保留层级关系不保留到后续。fsm_extract:他会决定状态机的存在。FALSE:不保留层级关系。

2025-04-22 16:18:10 191

原创 FPGA设计 时空变换

结构调整是提高时序性能的另一种方式,它是在不改变原有组合逻辑功能单元的前提下,通过改变其内部逻辑门之间的连接关系,来达到减少逻辑门级数的目的,进而提高时序。时钟速度决定完成任务需要的时间,规模的大小决定完成任务所需要的空间(资源),因此速度和规模就是FPGA中时间和空间的体现。由于clk的提高,对资源的排列关系的要求就越紧凑,可是资源的膨胀会导致资源占用率的提高,增大布线的难度。化简后的组合逻辑显然会消耗更少的逻辑门,但对于4输入1输出LUT的FPGA而言,对资源的占用没有任何影响。1.1、时空概念简介。

2025-04-22 12:01:13 937

原创 verilog float 乘法 除法 加法 减法

【代码】verilog float mult。

2025-04-19 15:43:23 252

原创 非整数运算分析

对处理的非整数 进行 量级放大(小数点右移),让其变为整数,输出缩小对应的值即可。趋零法:对于正数,采用去尾法;对于负数,采用进一法。四舍五入 去尾法 进一法。

2025-04-19 13:57:41 127

原创 verilog fix32_0 乘法 除法 squareRoot

【代码】verilog mult_fix32。

2025-04-19 12:01:34 129

原创 定点数和浮点数

常见的定点数有两种,第一种是小数点在左边,第二种是小数点在右边(定点小数)。小数点的位置是可以变化的。浮点数是小数点位置可变的一种数据类型,它的表现形式: Q = Y * B的x次方。

2025-04-18 14:15:48 118

原创 Verilog的整数除法

但是这种做法运算一次最多需要256的clk,所以需要减小消耗的实现。

2025-04-15 15:37:42 485

原创 verilog有符号数的乘法

经常会出现高吞吐的数据处理类型,组合逻辑实现延迟较大,需要用流水线思路.对于低速要求的乘法器,可以简单的使用 * 实现。可变系数乘法实现方式-----基于减性分解。4、补码乘法之 “ 正被乘数 ” 乘以 “ 正乘数 ”5、补码乘法之 “ 负被乘数 ” 乘以 “ 正乘数 ”6、补码乘法之 “ 正被乘数 ” 乘以 “ 负乘数 ”7、补码乘法之 “ 负被乘数 ” 乘以 “ 负乘数 ”2、基于无符号乘法器的原码乘法器。3、基于无符号乘法器的补码乘法器。9、补码乘法之BOOTH乘法器。8、补码乘法之加性分解乘法器。

2025-04-08 13:37:08 660

原创 共同语言

它是一种以数字电路为主的集成芯片,属于可编程器件的一种。指表示十进制数码的4位二进制编码中,每一位都有一定的权值,例如 8421码(自然码)和2421码。比较器:完成两个输入数据大小的比较,输出三个端口( a>b a =b a<b )多路复用器( 多路选择器 )MUX:完成数据通道的复用,节省数据通道的个数。1、随着计算机的普及和可编程芯片的发展,使修改一个数字系统的功能变得简单。异或门( 有一个为1 为 1 ,没有为1或者输入都为 1 为 0 )数字信号如果用函数来表示,是一个离散的函数。

2025-04-06 11:16:26 197

原创 数制——FPGA

in_data /5 约等于 in_data * ( 0.125 + 0.0625 + 0.0156 )与定点数相比,虽然浮点数的表示范围更广,更高精度的实数,然而在FPGA中进行浮点数的运算需要占用成倍的硬件资源。反码:正数的反码表示 与原码表示一致,负数的反码表示 除符号位,其他位全都取反。单精度浮点数的格式: 符号位+指数+尾数 [1] [8] [23] 符号位,指数(E),尾数(M)补码:正数的补码表示 与原码表示一致,负数的补码等于在反码在最低位加1。除法运算:使用移位来实现乘除。

2025-03-27 16:11:14 366

原创 vivado IP学习 divider

IP:这个IP输出结果64位,32位整数部分,32位小数部分 tb code波形

2025-03-25 17:38:48 249

原创 vivado中 运算IP的学习

1、加法模块 2、乘法模块 3、除法模块 4、滤波器模块

2025-03-25 17:34:21 266

原创 systemverilog过程语句和子程序

verilog中函数和任务很明显的区别是:任务可以消耗时间而函数不可以。函数中不能有 #100 这类的延时语句和 @( posedge clk ) 以及 wait( realy ) 这类阻塞语句。systemverilog从c和c++中引入许多操作符和语句。可以在for中定义循环参数,作用仅限于for中。1、 去除子程序中的begin end。1、 程序的参数的声明。3、 高级的参数类型。2、 参数的方向。

2025-03-25 15:14:17 235

原创 verilog 编译命令

1、 `celldefine 和 `endcelldefine。3、 `define 和 `undef。这两个 命令 用于标记模块为单元模块,他们表示包含模块定义。该命令用于对隐含网表(没有被说明的连线)指定网表类型。`undef用于取消前面定义的 宏。会将所有的编译命令置为默认值。

2025-03-24 15:22:09 288

原创 19 数码管的动态显示

BCD ( Binary coded Decimal ):二进制转十进制,使用四位二进制表示一位十进制数,是一种二进制数字编码形式,用二进制编码十进制代码。根据 权值 的有无 分为 有权码 和 无权码。八段数码管 是一个 “ 8 ” 字型数码管,分为八段,a b c d e f g dp,其中dp为小数点。每一段为一个发光二极管,这样的 8 段称为 段选信号。1、实验目标:让六位数码管 从 0 开始记数,每 0.1s 加 1 ,一直加到999_999,达到999_999之后重新开始从 0 计数。

2025-03-23 22:00:21 219

原创 基于 FPGA的HLS技术与应用

英特尔FPGA

2025-03-21 22:59:13 436

原创 SystemVerilog 数据类型

32bit的有符号数 integer ,64bit的无符号数 time 或者是 浮点数 real.若干变量可以被一起放在定宽数组里,所有的存储都是静态的,意味着所有变量在tb的时候都是存活的。相比于四状态数据类型(0,1,x,z),SV 引入的双状态数据类型有利于提高仿真器的性能并减少内存。变量可以是单bit或者是多bit的无符号数 reg [7:0] m,verilog有两种基本的数据类型:变量和线网,他们各自都可以有四种取值:0 1 z x;2.1、 定宽数组的声明和初始化。

2025-03-21 13:23:07 634

原创 hls for的约束

vivado 2023.2 升级改变部分命令。pipeline:逐一执行。unroll:并行执行。

2025-03-13 15:24:03 93

原创 功能仿真

独立的并行电路:若并行的电路之间是相互独立的,同时开始多件事情和逐个执行是完全一样的。硬件电路运行,只要一上电,就一直运行,但是tb是离散的,所以需要注意实际运行情况和仿真结果的不同。串行模拟并行仿真主要分为两种情况:独立的并行电路 有关联的并行电路。有关联的并行电路运行,需要注意执行的顺序。1.6、 仿真时间与物理时间。1.1、 串行模拟并行思路分析。1.3、 组合逻辑仿真原理。1.4、 时序逻辑仿真原理。

2025-03-11 16:25:29 224

原创 matlab IEEE754转float

【代码】matlab IEEE754转float。

2025-03-10 16:25:35 102

原创 时序分析

英文名 :clock to output period ,是指 时钟有效到达reg开始,端口Q得到D端口的采样时间。建立时间余量 = T(su) - 建立时间要求。建立时间要求指的是 想要寄存器如期的工作,在有效时钟到来之前,数据稳定的时间。建立时间:setup time,它是指有效的边沿信号到来之前,输入端口数据保持稳定的时间。保持时间:hold time ,是指在有效时钟边沿之后,端口数据保持稳定不变的时间。1.2、 保持时间 T(hold)1.1、 建立时间 T(su)

2025-03-10 16:10:29 608

原创 matlab 生成 coe文件

【代码】matlab 生成 coe文件。

2025-03-10 13:14:56 163

原创 开关级建模

CMOS有pmos和nmos 拼接而成。1.6、 开关中的延迟说明。1.2、 cmos开关。1.1、 mos开关。1.3、 双向开关。1.4、 电源和地。1.5、 阻抗开关。

2025-03-10 09:55:14 216

原创 时序和延时

全连接 :*> ( in 和 out 两两连接 )verilog有三种类型的延迟模型:分布延迟 、 集总延迟 、 路径延迟(pin to pin)可以查阅数据手册直接获得标准组件的引脚到引脚的延迟(路径延迟)。分布延迟是在每个独立元件的基础上进行定义的。集总延迟是在每个独立模块的基础上定义的。2.1、 specify块。1.1、 分布延迟。1.2、 集总延迟。1.3、 路径延迟。

2025-03-08 15:49:18 279

原创 实用建模技术

值变转储文件(Value conversion dump :VCD)是一个ASCLL文件,包含仿真时间,范围与信号的定义以及仿真过程中的信号变化。2. force release: 该结构目前被认为是很糟糕的编码风格,建议禁用。2、 写文件:fdisplay fmonitor fwrite fstrobe。1. assign 和 deassign:该结构目前被认为是很糟糕的编码风格,建议禁用。5、 选通显示:strobe。defparam改写。

2025-03-08 11:47:14 737

原创 任务和函数

任务在本质上是静态的,任务中 所有的 声明项的地址空间是静态分配的,同时并发执行的多个任务共享这些内存,因此,两个任务同时调用结果可能是错误的。为了避免这个问题,需要加。4、没有output或者inout。1、不含有 延迟、时序、控制结构。automatic关键字。这样的任务也被称为 自动任务,每次调用,地址都是动态配置的。2、只有一个返回值。3、至少有一个输入。5、没有非阻塞语句。automatic 关键词。automatic 关键词。

2025-03-08 10:00:51 234

原创 行为级建模

基于延迟的时序控制、基于事件的时序控制、电平敏感的时序控制。->received_data 表示事件的触发。第一种阻塞赋值会产生竞争的情况,a = b b = a 执行的先后取决与仿真器。当 count_enable为 1 的时候执行,为0的时候仿真会不执行后面的语句,会停顿下来。常规事件控制、命名事件控制、or事件控制、电平敏感时序控制。第二种非阻塞赋值避免了竞争,达到了 交换 a b 的效果。2、延迟 是相对于前面那条语句的完成时间。并行块:所有语句一起执行。顺序块:语句按照顺序执行。

2025-03-07 16:34:06 262

原创 数据流建模

RTL(register transfer level):寄存器传输级,是指数据流建模和行为级建模的结合。指定赋值延迟的三种方法:普通赋值延迟 隐式赋值延迟 线网声明延迟。2、连续赋值语句总是处于激活状态,可以立刻执行运算、逻辑综合:借助于计算机辅导的设计工具,自动的将电路的数据流设计转换为门级机构。1、连续赋值语句的 左 值 不能是 reg。如果操作数的一位为 x ,那么运算结构全为 x。4、可以控制对线网赋予新值的时间。连续赋值语句是verilog的基本语句,它等价于门级描述。

2025-03-06 11:12:37 308

空空如也

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

TA关注的人

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