随笔分类 -  2023前的博客 / FPGA

用于学习FPGA的所有实践
摘要:Entity: bram_to_vid File: bram_to_vid.v Diagram Description Company: Fpga Publish Engineer: FP Revision: 0.01 Revision 0.01 - File Created Generics Ge 阅读全文

posted @ 2024-01-21 20:30 绿叶落秋风 阅读(17) 评论(0) 推荐(0)

摘要:Entity: shk_to_bram File: shk_to_bram.v Diagram Description Company: FpgaPublish Engineer: FP Create Date: 2024/01/12 21:19:05 Revision 0.01 - File Cr 阅读全文

posted @ 2024-01-14 00:21 绿叶落秋风 阅读(15) 评论(0) 推荐(0)

摘要:Entity: cyc_to_led File: cyc_to_led.v Diagram Generics Generic name Type Value Description MD_SIM_ABLE 0 sim mode enable WD_LED_LIGHT 27 LED light spa 阅读全文

posted @ 2024-01-09 23:23 绿叶落秋风 阅读(32) 评论(0) 推荐(0)

摘要:FPGA中与时序有关的概念 一、时序分析 时序分析是对整个时序进行分析的操作。作用就是了解设计的时序性能,一般而言就是最大时钟频率。时钟频率越高,设计的工作速度越快(忽略设计实现方法的不同导致的效率提升)。为了提高时钟频率,有一份完整的时序分析报告是必不可少的。 在quartus中的Timeques 阅读全文

posted @ 2020-09-20 12:16 绿叶落秋风 阅读(763) 评论(0) 推荐(0)

摘要:FPGA中的面积优化 一、优化的意义 面积优化,就是在实现预定功能的情况下,使用更小的面积。通过优化,可以使设计能够运行在资源较少的平台上,节约成本,也可以为其他设计提供面积资源。 二、操作符平衡 对于复杂逻辑操作,输入到输出的对称性越好,往往中间逻辑就越少,面积越小。一般优化中,可以将不关注中间信 阅读全文

posted @ 2020-09-12 10:49 绿叶落秋风 阅读(1737) 评论(0) 推荐(0)

摘要:FPGA中的速度优化 一、逻辑设计中的速度概念 逻辑设计速度相关的概念有三个:设计吞吐量、设计延时和设计时序。速度优化策略而言,吞吐量需要提高,延时应该降低,时序应该收敛(时序余量slave越大,收敛越强,移植性越好)。吞吐量提高的方法一般是采用大的并行设计,延时降低的方法则是采用缓存结构或者并行结 阅读全文

posted @ 2020-09-11 09:33 绿叶落秋风 阅读(1631) 评论(0) 推荐(0)

摘要:状态机的常见问题 一、状态机的常见问题 标准的状态机包括摩尔状态机和米勒状态机:摩尔状态机的输出只与当前状态有关,而米勒状态机则和输入和状态都有关。状态机能够稳定工作,但是占用资源过多。在摩尔状态机中的时钟偏斜可能会导致状态转换时会出现过渡状态(状态转化出现时序问题),米勒状态机由于输出异步,更加容 阅读全文

posted @ 2020-09-10 16:23 绿叶落秋风 阅读(1115) 评论(0) 推荐(0)

摘要:基于quartus的高级时序分析 一、派生时钟和异步存储器 派生时钟就是和独立时钟存在频率或者相位关系的时钟,异步存储器就是具有存储读写异步功能的存储器。在时序分析中,这两个部分的静态时序分析是需要设置个别约束的。派生时钟会产生时钟偏斜或者不同频率时序问题,异步存储器则类似latch,存在建立时间和 阅读全文

posted @ 2020-09-09 12:27 绿叶落秋风 阅读(1574) 评论(0) 推荐(0)

摘要:FPGA中的时钟域问题 一、时钟域的定义 所谓时钟域,就是同一个时钟驱动的区域。这里的驱动,是指时钟刷新D触发器的事件,体现在verilog中就是always的边沿触发信号。单一时钟域是FPGA的基本组成部分,但是随着设计规模扩大,多时钟域的设计是必要的。维持庞大的单时钟域对时钟源的要求是极为苛刻的 阅读全文

posted @ 2020-09-08 10:49 绿叶落秋风 阅读(1677) 评论(0) 推荐(0)

摘要:quartus中的时序约束常用方法 一、约束操作 quartus中有三种时序约束方法: 1️⃣Timing Setting 2️⃣Wizards/Timing Wizard 3️⃣Assignment/Assignment Editor 一般来说,前面两种是全局约束,后面一种是个别约束。 先全局,后 阅读全文

posted @ 2020-09-08 10:32 绿叶落秋风 阅读(6748) 评论(0) 推荐(0)

摘要:时序约束与时序分析 一、基础知识 FPGA设计中的约束主要有时序约束、位置及区域约束和其他约束。位置和区域约束用于实现FPGA设计的端口和资源位置的指导,其他约束则泛指芯片信号和电气标准的约束。时序约束的作用则是使得时序能够满足输入时钟的要求。 时序约束的作用有: (1)提高设计的工作频率 (2)获 阅读全文

posted @ 2020-09-06 15:54 绿叶落秋风 阅读(1399) 评论(0) 推荐(0)

摘要:FPGA的PCB设计 一、FPGA的高速电路板设计 PCB板的设计规模增大,IO传输问题也就出现。为了兼容其他高速模块,必须对PCB的设计进行优化。 1️⃣电源滤波,降低系统噪声2️⃣匹配信号线3️⃣降低并行走线的噪扰4️⃣减小反弹效应5️⃣进行阻抗匹配 为了实现上述要求,可以采用的方法有: (1) 阅读全文

posted @ 2020-09-05 10:32 绿叶落秋风 阅读(1559) 评论(0) 推荐(0)

摘要:AXI4的主机协议代码分析 一、模块分析 (1)端口列表 input wire INIT_AXI_TXN, // Asserts when ERROR is detected output reg ERROR, // Asserts when AXI transactions is complete 阅读全文

posted @ 2020-09-04 10:36 绿叶落秋风 阅读(1663) 评论(0) 推荐(0)

摘要:verilog设计知识集合(2) 1、阻塞与非阻塞 阻塞赋值是存在先后关系的,非阻塞是不存在先后关系的。一般而言,阻塞用于组合逻辑,非阻塞用于时序逻辑(不一定)。阻塞的执行时逐步赋值,非阻塞是同步赋值。 阻塞和C中的赋值语句功能是一致的。为何会存在非阻塞赋值呢?这里主要考虑的是寄存器的状态包含现状态 阅读全文

posted @ 2020-08-23 21:12 绿叶落秋风 阅读(242) 评论(0) 推荐(0)

摘要:verilog设计知识集合 一、基本知识 verilog HDL,verilog硬件描述语言,可从上层到下层一直设计,使用一些列分层的模块来表示极其复杂的数字系统的语言。利用EDA工具将模块转化为网表,再使用FPGA或者ASIC实现具体的电路结构。 另外一门比较出名的是硬件描述语言是VHDL,偏重标 阅读全文

posted @ 2020-08-22 16:43 绿叶落秋风 阅读(692) 评论(0) 推荐(0)

摘要:quartus之LPM_MULT测试 1、基本作用 一个专用的乘法器,可以调用DSP单元的IP,可以提高设计中的运算效率。 2、实际操作 `timescale 1ns/1ns module mult_tb; reg [7:0] a; reg [7:0] b; wire [15:0] r; myip_ 阅读全文

posted @ 2020-08-09 00:09 绿叶落秋风 阅读(1970) 评论(0) 推荐(0)

摘要:verilog之function 1、基本作用 function,就是声明一个函数。与task的区别就是有参数。function的返回值就是函数名(可以设置位宽),输入值任意,均作为输入参数。代码块需符合verilog的语法规则。如放在assign块中的函数需要使用wire变量,always语句中的 阅读全文

posted @ 2020-08-08 14:51 绿叶落秋风 阅读(1948) 评论(0) 推荐(0)

摘要:quartus的IP测试之LPM_DIVIDE 1、基本作用 一个用于除法的IP,可以输入除数、被除数,得到商、余值。 2、基本测试 `timescale 1ns/1ns module divide_tb; reg [7:0]denom; reg [7:0]numer; wire [7:0] quo 阅读全文

posted @ 2020-08-06 23:26 绿叶落秋风 阅读(2920) 评论(0) 推荐(0)

摘要:quartus之LPM_COMPARE测试 1、IP描述 比较器的IP,可以比较两路数据是否相等。相等输出为1,不等输出为0的aeb信号是需要测试的量。 2、基础测试 module compare_top( input [7:0] x1, input [7:0] x2, output result 阅读全文

posted @ 2020-08-05 00:04 绿叶落秋风 阅读(1072) 评论(0) 推荐(0)

摘要:TCL基本语法2 1、format和scan 两个基本的函数,和C语言中的sprintf和scanf的作用基本相同。format将不同类型的数据压缩在字符串中,scan将字符串中的数据提取出来。 set name Jack set age 100 set worker [format "%s is 阅读全文

posted @ 2020-08-04 23:02 绿叶落秋风 阅读(635) 评论(0) 推荐(0)