自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 字(word)、字节(byte)与位(bit)的基本概念

单位大小(位数)对应的实际含义与应用bit1 位最小的数据单位,表示一个二进制值(0或1byte8 位 = 1 字节存储一个字符,计算机存储容量的基本单位。word通常为 16 位、32 位或 64 位计算机 CPU 一次操作的数据单位,与系统架构相关。

2025-01-17 10:52:59 977

原创 什么是同步电路与异步电路?有什么区别

所有的存储单元(触发器、寄存器)都在同一个时钟沿(通常是上升沿,或下降沿)到来时进行数据采样或更新,逻辑操作在时钟沿之间也可能发生,但最终对外输出的“合法状态”只会在时钟沿时刻发生变化。:没有统一的时钟控制,或者其工作过程不依赖同一个全局时钟沿来触发数据更新,而是依靠输入变化或电路内部信号的变化触发后续的逻辑变化。

2025-01-13 17:01:49 319

原创 Verilog手撕代码【1】:检测输入数据中1的个数

【题目】输入为32bit位宽的数据,统计32bit数据中1的个数。

2025-01-05 18:10:15 478

原创 Verilog编写Testbench详细教程【3】:基本结构

激励模块与一般的 Verilog HDL模块没有根本的区别,其特点表现在下面几点。

2025-01-05 18:09:44 1341

原创 Verilog编写Testbench详细教程【2】:`timescale详解

timescale是 Verilog 中用于指定时间单位和时间精度的编译指令。它告诉仿真器如何解释模块中的时间延迟和时间相关的操作。时间单位(time unit)定义了时间延迟的基本单位,而时间精度(time precision)决定了时间值的小数点后位数。

2025-01-03 11:11:08 350

原创 Verilog编写Testbench详细教程【1】:常用系统函数

Verilog 的系统任务和系统函数主要用于仿真。本节介绍常用的系统任务和系统函数。这些系统任务和系统函数提供了各种功能,比如实时显示当前仿真时间($time)、显示信号的值($display$monitor)及控制模拟的执行过程暂停仿真($stop)、结束仿真($finish)等。系统任务和系统函数有以下一些共同的特点:系统任务和系统函数一般以符号“”开头,如$monitor$readmemh等;

2025-01-03 10:40:03 1317

原创 详解VHDL如何编写Testbench

TEXTIO 是 VHDL 标准库 STD 中的一个程序包(package)。LINE类型、TEXT类型以及SIDE类型。另外,还有一个子类型(subtype)WIDTH。此外,在该程序包中还定义了一些访问文件所必须的过程(procedure),如图所示。其中,TEXT为ASCII文件类型。定义成TEXT类型的文件是长度可变的ASCII文件,需要注意的是VHDL’87 和 VHDL’93 在使用文件方面由较大的差异,在编译时注意选择对应的标准。side只能有两种状态,即right和left。

2024-12-26 16:13:37 2370

原创 明解FPGA中LUT原理

当用户通过原理图或者HDL语言描述了一个逻辑电路以后,FPGA软件会自动计算逻辑电路的所有可能结果,并将结果事先写入RAM。这样,每输入一个信号进行逻辑运算就相当于输入一个地址进行查表,找出地址对应的内容,然后将其输出即可。在FPGA中,LUT(查找表,Look-Up Table)是实现组合逻辑功能的基本单元,其本质就是一个RAM。输入的逻辑运算,不管是与或非运算还是异或运算,最多只可能存在。种结果,如下图所示的4输入与门共有16种输出结果。LUT的实现方式如下图。

2024-12-25 15:51:48 530

原创 VHDL基本语句之并行语句

在VHDL中,各种并行语句在结构体中的执行是同步进行的,其执行方式与书写的顺序无关。

2024-12-25 14:12:16 1078

原创 详解VHDL进程内外信号赋值区别

【代码】详解VHDL进程内外信号赋值区别。

2024-12-24 11:53:59 429

原创 搞懂AXI的突发传输(Burst Transmission)

在AXI总线中,突发传输指的是在一个传输事务(Transaction)中连续传输多个数据数据字(Data Beat)。与单次传输相比,突发传输能够显著提高数据传输效率,减少地址握手的开销。多个数据字。

2024-12-24 10:32:19 1635

原创 VHDL基本语句之顺序语句

顺序语句是按照特定顺序执行的语句集合,主要用于描述硬件设计中的控制流程和复杂逻辑。这些语句通常位于过程块(process)、函数(function)、过程(procedure)等结构内部,允许设计者以编程语言类似的方式描述硬件行为。理解和正确使用顺序语句是编写高效、可读且功能正确的VHDL代码的基础。

2024-12-23 17:19:04 1403

原创 VHDL的操作符

操作符(Operators)是VHDL中用于执行特定操作的符号或关键字。操作符可以应用于操作数(Operands),操作数可以是信号、变量、常量、表达式等。操作符的使用使得VHDL代码更简洁、可读性更强,并能够有效地描述硬件行为。

2024-12-23 16:38:44 831

原创 VHDL的标识符

在VHDL中,一个标识符是由字母、数字和下划线()组成的序列。大小写不敏感(Case-Insensitive):VHDL语言不区分大小写,也就是说SignalNamesignalname和SIGNALNAME在VHDL中被视为同一个标识符。必须以字母:标识符的第一个字符必须是字母(A-Z或a-z)。标识符中不可连续使用多个下划线:VHDL标准要求在标识符中不允许出现连续两个或更多的下划线。标识符中除了字母、数字和下划线外不允许其他字符:标点符号、空格和特殊字符(如等)不允许出现在标识符中。

2024-12-22 22:46:42 331

原创 VHDL的数据类型之常量、变量、信号

常量是在VHDL中定义为在设计过程中不可更改的固定值。常量在设计中用于存储那些在整个仿真或综合过程中保持不变的数据,如物理常数、固定配置参数等。constant:关键字,用于定义常量。:常量的名称,通常使用大写字母以区分其他对象。data_type:常量的数据类型,如std_logicinteger等。value:常量的初始值,必须在定义时指定。下面的语句定义了一个常量b,并为其赋初值00100,这4条语句是等价的。Port (-- 时钟周期为50个时间单位。

2024-12-20 14:31:12 1131

原创 【C++】STL查找算法:transform函数

transform用于对执行某种操作,并将结果存储到目标范围中。它常用于对容器中的数据进行转换、计算或映射操作。

2024-12-20 11:16:51 1243

原创 VHDL的数据类型之枚举、数组

数组类型是在VHDL中定义的由相同类型元素组成的有序集合。数组允许设计者以结构化和系统化的方式组织和处理数据,如存储器、寄存器文件、数据总线等。type:关键字,用于定义新类型。array_name:自定义数组类型的名称。:数组的索引范围,可以是downto或to。:数组中元素的数据类型。

2024-12-19 14:25:34 742

原创 【C++】STL遍历算法:for_each函数

for_each常用于遍历容器并对每个元素应用特定的函数或函数对象。要使用for_each。

2024-12-19 09:37:54 2457

原创 VHDL的数据类型之标准逻辑位、标准逻辑矢量

是由多个std_logic类型组成的数组,通常用于表示多比特信号,如数据总线、地址总线等。它允许定义任意位宽的逻辑向量,并支持灵活的位索引方式(downto或to。

2024-12-18 15:57:42 1168

原创 VHDL的数据类型之布尔、位、位矢量、整数

是VHDL中的一种逻辑数据类型,用于表示逻辑真值。

2024-12-18 15:49:28 855

原创 详解VHDL进程内信号赋值机制

VHDL中的所有进程在同一个时钟上升沿几乎同时被触发,并行执行。每个进程在执行时,读取的是(即“旧值”)。使用非阻塞赋值(<=)进行的信号更新不会立即改变信号的值,而是调度这些更新在当前时钟周期结束后(下一个仿真时间步)生效。

2024-12-18 10:36:00 742

原创 三段式状态机

存储当前状态,并在时钟边沿更新状态,为时序逻辑电路基于当前状态和输入信号,计算下一个状态根据当前状态和输入信号,生成输出信号。

2024-12-17 14:39:23 1189

原创 VHDL程序的基本结构

泛型(Generic) 是VHDL中用于参数化设计的机制。通过定义泛型,您可以创建灵活且可重用的模块,这些模块在不同实例化中可以根据需要调整其参数值。泛型通常在实体(Entity)中声明,并在架构(Architecture)中引用。参数化设计:可以根据需要调整模块的特性,如数据宽度、地址深度等。提高代码复用性:相同的模块可以在不同场景下重复使用,只需调整泛型参数。增强设计灵活性:无需为每种配置编写不同的代码,减少冗余。简化维护:修改泛型值即可调整模块特性,无需修改模块内部逻辑。

2024-12-17 10:47:12 834

原创 静态RAM知识汇总与仿真

RAM 发起读,然后读数据有效的周期数这个延迟一般是 1,如果 RAM 输出再因为改善时序寄存一拍,那么 RAM 的读延迟就是 2。上图所示,在读使能为 1且地址有效的情况下(WEA 为 0, ENA 为 1), 下一拍 DOUTA 即为读到的数据,一般来说,读使能和读地址不发生变化, DOUTA 不会发生变化。建议只使用RAM 读有效时的读数据,没有发起读的时候,读数据一般不建议使用,因此此时的读数据依赖于 RAM 模型的特性,有可能是不确定的值。与单端口RAM类似与单端口RAM类似。

2024-12-16 17:15:31 1042

原创 寄存器、触发器、锁存器的区别与联系

寄存器是一个数据存储元件,通常由。

2024-12-16 15:54:20 1644

原创 VHDL例程:1位半加器的数据流描述

so:表示a和b的异或结果。co:表示a与b的与结果。

2024-09-13 11:24:01 363

原创 什么是MCU、MPU、DSP与FPGA

一、MCU1.1 概念微控制单元(Micro-Controller Unit,MCU),是把中央处理器(Central Process Unit;CPU) 的频率与规格适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、DMA、LCD等周边接口都整合在单一芯片上,形成芯片级的计算机。俗称单片机,之所以称之为单片机(Single Chip Microcomputer),是因为不同于其他处理器,它将各种功能外设资源集中到一个芯片上,这个芯片就是一个完整的微型计算机,只

2021-10-08 19:53:15 3611 1

空空如也

空空如也

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

TA关注的人

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