自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二阶RC滤波器

二阶RC低通滤波器是一种常用的电路,用于滤除输入信号中高频部分,只保留低频部分。

2023-10-14 14:57:01 13728 2

原创 补码与有符号数范围判断

先说概念,:一个数在计算机中的二进制表示形式,带符号,最高位是符号位,正数为0,负数为1:因为机器数带符号,直接按照二进制转换的话,得到的数值不一定是存储的真正的数值,所以机器数表示的实际的那个值,叫真值,例如1000 0001的真值 = –000 0001 = –1。:符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。对于8bit数,其取值范围是:[1111 1111 , 0111 1111],也就是[-127 , 127],这个被叫做人脑最容易理解和计算的表示法。

2023-08-30 19:50:17 718 1

原创 IIR滤波器

IIR的特点是:非线性相位、消耗资源少。IIR滤波器的系统函数与差分方程如下所示:由差分方程可知IIR滤波器存在反馈,因此在FPGA设计时要考虑到有限字长效应带来的影响。差分方程中包括两个部分:输入信号x(n)的M节延时网络,相当于FIR的网络结构,实现系统的零点;输出信号y(n)的N节延时网络,作为系统的反馈,实现系统的极点。

2023-08-30 19:48:25 5049

原创 串行FIR滤波器

串行设计,就是在 16 个时钟周期内对 16 个延时数据分时依次进行乘法、加法运算,然后在时钟驱动下输出滤波值。考虑到 FIR 滤波器系数的对称性,计算一个滤波输出值的周期可以减少到 8 个。串行设计时每个周期只进行一次乘法运算,所以设计中只需一个乘法器即可。此时数据需要每 8 个时钟周期有效输入一次,但是为了保证输出信号频率的正确性,工作时钟需要为采样频率的 8 倍,即 400MHz。这种方法的优点是资源耗费少,但是工作频率要求高,数据不能持续输出。

2023-08-25 17:50:13 1417

原创 并行FIR滤波器

由 FIR 滤波器结构可知,阶数为 15 时,FIR 的实现需要 16 个乘法器,15 个加法器和 15 组延时寄存器。输入频率为 7.5 MHz 和 250 KHz 的正弦波混合信号,经过 FIR 滤波器后,高频信号 7.5MHz 被滤除,只保留 250KHz 的信号。FIR 滤波器具有严格的线性相频特性,同时其单位响应是有限长的,因而是稳定的系统。这里选择的 FIR 实现方法是最小二乘法(Least-squares),不同的实现方式滤波效果也不同,对应的滤波器系数也不同。代码以功能实现为目标。

2023-08-10 17:53:34 1320

原创 Verilog | Round_Robin_Arbiter

重写了权重轮询仲裁,添加lock输入信号,表示请求方收到了仲裁许可,在对应的lock拉低之前,仲裁器不可以开启新的仲裁。

2023-07-27 18:39:18 975

原创 Verilog | if语句和case语句

if语句和组合逻辑下的case语句,他们的条件是有优先级的,从上到下优先级递减,每多一个条件就会多消耗一个二选一多路器,很浪费资源;似乎在AISC中综合后,两者其实是没有区别的,最后的综合结果会以逻辑门的形式实现。(关于这一点还希望有经验的大佬能够指教)而对于时序语句中的case,会被综合成n选一多路器,条件没有优先级,占用的资源更少。优先级:if else 结构if的优先级最高;多if 结构最后一个if优先级最高。从可阅读性来看,case语句的阅读性更好,修改时可能也会更加方便。

2023-07-22 16:54:44 1153

原创 Verilog | 多语言交互接口

Verilog中使用编程语言接口)编程语言接口来和C语言程序交互,它提供了一套C语言函数,我们可以调用这些集成函数编写软件C程序。RTL代码编译的时候,这些软件C程序也会集成到仿真环境中。仿真运行后,使用系统任务调用的方式,就可以去访问仿真中的数据结构,也就是说PLI提供一个使得用户自带C函数能够在运行时间访问仿真数据结构的接口。,第一代Verilog PLI。包含一整套C语言函数库,函数定义在verisuer.h文件中,一般称为TF子程序,主要作用是把任务/函数参数传递给C函数。

2023-07-20 09:30:15 642

原创 Makefile

CC:c编译器的名称,默认值为cc。cpp c预编译器的名称默认值为$(CC) -E。

2023-07-11 13:27:32 381

原创 低功耗设计

2023-07-02 15:59:54 716

原创 Verilog | 除法--试商法

采用试商法实现除法运算,对于32位的除法,需要至少32个时钟周期才能得到除法结果。下面是试商法的一般过程。设被除数是m,除数是n,商保存在s中,被除数的位数是k,其计算步骤如下(为了便于说明,在此处将所有数据的最低位称为第1位,而不称为第0位)。1、取出被除数的最高位m[k],使用被除数的最高位减去除数n,如果结果大于等于0,则商的s[k]为1,反之为0。2、如果上一步得出的结果是0,表示当前的被减数小于除数,则取出被除数剩下的值的最高位m[k-1],与当前被减数组合做为下一轮的被减数;

2023-06-23 15:11:02 2168

原创 Verilog | 基4 booth乘法器

基4booth乘法器,Verilog实现

2023-06-18 14:27:07 2173 1

原创 乘法器介绍

介绍了几种基本的乘法器结构,分析了他们的特点和优缺点,最后附上基2booth乘法器的代码,Verilog实现

2023-06-08 21:45:00 3995

原创 简单移位器结构介绍

其实是一个复杂的多路开关电路,根据不同控制信号,将输入左移或右移或不变。多位的移位可以简单串联这样的单元实现,但移位位数多时,该方法过于复杂,不实用并且速度很慢。由晶体管阵列构成,行数等于数据字长,列数等于最大移位宽度。桶形移位器实现为传输管的单个阵列,而对数移位器采用分级的方法。移位值分解为几个2的指数值。log2​M。

2023-05-31 18:45:00 2599

原创 加法器种类介绍

总结了几种加法器结构

2023-05-30 19:00:00 3725 1

原创 Verilog | FIFO简单实现

FIFO( First Input First Output)简单说就是指先进先出,也是缓存机制的一种,下面是我总结的 FIFO 的三大用途:1)提高传输效率,增加 DDR 带宽的利用率。比如我们有 4 路视频数据缓存到 DDR 中去,比较笨的方法是,每个通道视频数据对应一颗 DDR。现在对于 DDR 来说非常浪费,因为现在的 DDR3 可以跑 1600Mbps DDR4 可以跑到2400Mbps,如果你还是把一路视频数据对应一颗 DDR 显然严重浪费了带宽。

2023-05-25 22:00:00 2629

原创 跨时钟域数据同步

跨时钟信号直接传输在信号跳变时违背本地时钟域的时序要求(建立时间约束,保持时间约束),容易产生亚稳态,无法确定亚稳态何时结束以及结束时保持在何种状态上。

2023-05-20 18:18:52 2571

原创 Linux中.bashrc文件是什么?

我们的函数将首先使用mkdir以名称“ directory_name”创建目录,然后使用cd进入“ directory_name”。作为用户,如果您经常使用别名,则可以将其保存在.bashrc文件中,而不是每次打开终端时都定义别名。使用source命令刷新bashrc文件后,您的bash提示符将发生变化,如下图所示。.bashrc**的内容以定义函数,命令别名和自定义bash。现在,我可以使用wmi命令,终端将以whoami的身份运行它。这里值得一提的是,“别名”,“ =”和“命令”之间不应有空格。

2023-05-11 20:55:07 4249

原创 VCS常用命令

vcs命令手册,英文原版下载:https://download.csdn.net/download/qq_45776815/87718397?spm=1001.2014.3001.5501

2023-04-25 21:40:05 4407

原创 Modelsim10.7仿真报错

不要使用-novopt,10.7之前的版本可以这样,但10.7似乎不行。为了避免模块端口被优化掉,使用vsim -voptargs=+acc就可以了。把之前老版本的modelsim换掉了,新的装好仿真发现有点小毛病,记录以下。显然并不是这里的问题,后来看到有说是由于软件安装路径中存在空格,尝试修改。使用modelsim10.7仿真时出现错误,编译通过但报以下错误。重新仿真,修改优化选项,信号显示出来可以查看仿真。重新仿真,端口被优化掉了,看不到波形。导致的,就取消了仿真优化。取消后出现了新的错误。

2023-04-23 18:53:42 3062 1

原创 IC 术语

ADC Analog to Digital Convert 模拟信号到数字信号的转换电路AHB Advanced High Performance Bus ARM公司推出的AMBA总线规范之一,主要用于高性能模块(如CPU、DMA和DSP等)之间的连接APR Auto place and route 自动布局布线,是数字后端版图实现的主要流程ARM Acorn RISC Machine 英国ARM公司,手机或者移动芯片中常用的CPU处理器,现在低功耗设计中基本都采用ARM CPUASIC Appl

2023-04-20 19:43:43 808

原创 FPGA | 延迟模型

实际逻辑元器件和它们之间的传输路径都会存在延迟。没有声明的路径会使用分布延迟,分布延迟也没有声明的话,将使用零延迟。如果路径延迟和分布延迟同时声明,将选择最大的延迟作为路径延迟。所以,大多数逻辑门单元库中的延迟信息,都是以路径延迟的方式给出的。可以定义的延迟路径个数为 1 个,2 个,3 个,6 个, 12 个,其他数量的延迟值都是错误的。分布延迟需要给电路中每个独立的元件进行延迟定义,不同的路径有不同的延时,如下图所示。门延迟(上升延迟、下降延迟、关断延迟)的数值也可以通过路径延迟的方法来描述。

2023-04-20 19:31:43 1653

原创 Verilog | 轮询仲裁

当多个源和用户需要共享同一资源时,需要某种仲裁形式,使得所有用户基于一定的规则或算法得到获取或访问共享资源的机会。第一种方法是为每个用户分配一个变量,该变量决定了在一个轮询周期内该用户能够得到许可(被授权)的次数。该变量是可以通过软件编程进行修改的,因此其轮询权重也可以相应调整。例如,有三个用户,agent0权重为3、agentl权重为2、agent2权重为1。在一个轮询周期中,agent0最大可以得到3次许可,agent1可以得到2次许可,agent22可以得到1次许可。

2023-04-13 19:24:41 2926

原创 Verilog | 二进制与格雷码

格雷码是一个叫弗兰克·格雷的人在 1953 年发明的,最初用于通信。格雷码是一种循环二进制码或者叫作反射二进制码。格雷码的特点是从一个数变为相邻的一个数时,只有一个数据位发生跳变,由于这种特点,就可以。

2023-04-13 19:16:26 1296

原创 FPGA与ASIC的区别

根据该电路性能的要求(限制),在一个由制造商提供的包含众多结构、功能、性能均已知的逻辑元件的单元库的支持下,寻找出一个门级逻辑网络结构的最佳实现方案,形成门级电路网表netlist;(1)了解数字IC设计:在VLSI时代,数字IC设计是VLSI设计的根本所在(更大的规模、更好的性能、更低的功耗、超深亚微米(VDSM)工艺技术:对互连问题的关注)优化与映射:对已有的初始电路进行分析,去掉电路中的冗余单元,并对不满足限制条件的路径进行优化,然后将优化之后的电路映射到由制造商提供的工艺库上。

2023-04-13 19:11:06 1302

原创 FPGA设计

1. 面积与速度的平衡与互换这里的面积指一个设计消耗FPGA/CPLD的逻辑资源的数量,对于FPGA可以用消耗的FF(触发器)和LUT(查找表)来衡量,更一般的衡量方式可以用设计所占的等价逻辑门数。面积和速度这两个指标贯穿FPGA/CPLD设计的时钟,是设计质量的评价的终极标准 —— 面积和速度是一对对立统一的矛盾体。要求一个同时具备设计面积最小、运行频率最高是不现实的。更科学的设计目标应该是在满足设计时序要求(包括对设计频率的要求)的前提下,占用最小的芯片面积。或者在所规定的面积下,是设计的时序余量更大、

2023-04-12 21:11:46 613

原创 Verilog | 公约数与公倍数

最小公倍数可以通过两个数的乘积除以两个数的最小公约数得到。乘法是容易计算的,所以问题变成如何求解最大公约数。可以采用辗转相减法求解,例如 :两个自然数35和14,用大数减去小数,(35,14)->(21,14)->(7,14),此时,7小于14,要做一次交换,把14作为被减数,即(14,7)->(7,7),再做一次相减,结果为0,这样也就求出了最大公约数7。

2023-04-12 21:05:44 302

原创 高扇出的危害及优化

扇出过高也就是也就意味了负载电容过大,电路原理基础告诉咱们,负载电容越大,充放电速度越慢,电平跳变所需要的时间增加,即驱动能力下降,时序更加紧张。面对高扇出的情况,后端工具通常会通过插入buffer增加驱动能力,然后插入buff又会增加延时,造成时序紧张。高扇出的情况通常意味着负载end_point分布在block的各个位置。

2023-04-12 20:45:00 1320

原创 Verilog | 负数补码与状态机

摩尔(Moore)状态机:当前输出只与当前状态有关米利(Mealy)状态机:当前输出不仅与当前状态有关,还与当前输入有关。

2023-04-08 20:39:02 417

原创 有符号加法运算

(因为得到的结果是补码,需要转化为原码后再输出。转换方法:判断符号位,如果符号位为0,表明是一个正数,则直接输出(正数原码和补码相等)。如果符号位是1,表明是一个负数,需要符号位不变,有效位取反加一后再输出(补码变原码)。(因为得到的结果是补码,需要转化为原码后再输出。转换方法:判断符号位,如果符号位为0,表明是一个正数,则直接输出(正数原码和补码相等)。如果符号位是1,表明是一个负数,需要符号位不变,有效位取反加一后再输出(补码变原码)。step4:扩展符号位到输出结果的位宽,然后直接进行运算。

2023-04-08 20:32:28 871

原创 Verilog | 加法器实现

全加器是指对输入的两个二进制数相加(A与B)同时会输入一个低位传来的进位(Ci-1),得到和数(SUM)和进位(Ci);一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。常用二进制四位全加器74LS283。

2023-03-28 17:28:48 1456

原创 建立时间和保持时间约束

就是时钟触发事件来临之前,数据需要保持稳定的最小时间,以便数据能够被时钟正确的采样。就是时钟触发事件来临之后,数据需要保持稳定的最小时间,以便数据能够被电路准确的传输。建立时间和保持时间的由来:G1~G4 与非门是维持阻塞电路,G5~G6 组成 RS 触发器。时钟直接作用在 G2/G3 门上,时钟为低时 G2/G3 通道关闭,为高时通道打开,进行数据的采样传输。但数据传输到 G2/G3 门之前,会经过 G4/G1 与非门,将引入时间延迟。

2023-03-27 21:44:12 1487 1

原创 Verilog | 看门狗

也称看门狗定时器,是常见于系统的一种外设;看门狗似乎就是一条看门的狗,如果系统一切正常则看门狗不叫,如果程序不正常,则看门狗则会将程序咬死(即程序强制复位)。

2023-03-27 21:26:24 2410

原创 FPGA | 亚稳态小结

亚稳态是触发器的一个固有特性,正常工作时,触发器经历较短的亚稳态时间,随后会正确输出;而出现亚稳态时,触发器经历较长的亚稳态时间,最终输出稳定的值,但是输出值的是无法保证其正确性,可能是1也可能是0。如果触发器的输入电压采样时间过短,即时序不够,则触发器需要花很长时间来实现输出逻辑达到标准电平,也就是说,电路处于中间态的时间变长,使得电路“反应”迟钝,这就是“亚稳态”。触发器的输出会产生毛刺,或者暂时保持在不稳定状态而且需要很长时间才能回到稳定状态;

2023-03-25 12:19:44 232

原创 FPGA | BRAM和DRAM

1.BRAM是使用FPGA中的整块双口RAM资源2.DRAM是FPGA中的查找表(LUT)拼凑出来的,要占用逻辑资源。3.物理上看,BRAM 是单纯的存储资源,但是要一块一块的用,不像DRAM 想要多少bit都可以。4.DRAM可以是纯组合逻辑,即给出地址马上出数据,BRAM是有时钟的。

2023-03-22 19:39:43 2160

原创 FPGA | 可综合性设计

Verilog 主要用于数字电路设计的描述,但不是所有的描述方式都可以被综合成实际的硬件电路。例如一些用于仿真验证的关键字,属于仿真验证语言,只能在仿真时使用,不能被综合成电路,如系统任务 $dsiplay, initial 语句等。所以使用 Verilog 设计数字电路时,一定要注意电路的可综合性。testbench 可以随心所欲,只要能构造出需要的仿真激励条件即可。下面是一些记录所有综合工具都支持的结构所有综合工具都不支持的结构综合工具可能支持的结构。

2023-03-19 14:48:59 419

原创 Verilog | 分频电路实现

简单总结了一些分频电路的知识。分频电路也分为多种,包括偶数分频、奇数分频和小数分频。从实现方式上来讲,可以使用计数器或者是触发器实现。

2023-03-14 22:31:11 2703 2

原创 Verilog | 4位数值比较器

4位数值比较器,门级电路表示,使用两种方法实现

2023-03-08 21:43:13 4784

原创 Verilog | 维特比译码

Viterbi 算法是基于卷积码网络图的最大似然译码算法,根据已经接收到的信息,得到最接近编码码字的一种译码码字。一般采用汉明距离作为判决指标。具有最小汉明距离和的路径就是译码的最大路径,该路径被称作幸存路径。Viterbi 译码算法步骤如下:① 在时刻 l=L-1 之前,计算每一个状态单个路径分支度量。时刻 l=L-1 时,网络图充满状态,路径存储器 PM 和路径度量存储器 MM 在时刻 0 到时刻 L-1 进行初始化。

2023-03-07 22:51:00 4295 3

原创 Verilog | 卷积码实现

以(n,k,m)或者(n,k,L)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积编码器的k元组的级数,称m+1= L为编码约束度m称为约束长度。与分组码不同,卷积码编码生成的n元组元不仅与当前输入的k元组有关,还与前面m-1个输入的k元组有关,编码过程中互相关联的码元个数为n*m。和普通的卷积编码相比,咬尾的方案最大的优点是克服了编码时的码率损失,并且适合迭代译码,不过付出的代价是译码复杂度的增加。其中最重要的就是网络图。

2023-03-07 22:46:48 2286

spi仿真工程,verilog实现

spi简单仿真,vivado工程,包含rtl文件和tb文件。SPI 接口是 Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(MasterSlave)架构;支持多 slave 模式应用,一般仅支持单 Master。时钟由 Master 控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后 (MSBfirst);SPI 接口有 2 根单向数据线,为全双工通信,由于在传输数据的同时也传输了时钟信号,所以是同步传输协议,目前应用中的数据速率可达几 Mbps 的水平。 ———————————————— 版权声明:本文为CSDN博主「初雪白了头」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_45776815/article/details/128927169

2023-10-31

vcs命令手册,英文原版

vcs命令手册,英文原版

2023-04-23

IIC接口的Verilog实现及仿真

IIC接口的Verilog实现及仿真,通过对虚拟eeprom进行读写实验,可以正确进行读写。内涵eeprom、IIC及IIC控制的verilog代码

2022-11-28

空空如也

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

TA关注的人

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