![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FPGA
文章平均质量分 78
疯狂的码泰君
代码不是信仰,又有什么可以成为信仰呢!哦,还有鲁能泰山!!!
展开
-
基于 FPGA 的 DE1-SoC 功率估算器
功耗是当今许多技术都要考虑的重要因素。例如,手机生产商总是谈论他们在电源管理方面的改进,以及如何延长电池的使用寿命。功能与功耗之间的平衡是许多人都在研究的有趣课题。然而,当我们做实验时,我们很少会考虑我们消耗了多少电能,因为我们从来没有受到电能的限制。在本课实验 3 中合成巨型鼓时,我们耗尽了 FPGA 上的所有 DSP 块,并使用了大量 M10K 内存。这种对硬件的大量使用很可能会导致高功耗,我们很想知道有哪些因素会影响 FPGA 的功耗。原创 2024-04-13 16:10:27 · 840 阅读 · 0 评论 -
基于FPGA的光纤通信系统的实现的优化技巧与方法
FPGA实现的优化技巧和方法。1.跨时钟域数据同步技术;2.高速数据的乒乓缓存技术原创 2024-03-16 11:31:02 · 637 阅读 · 0 评论 -
基于FPGA的光纤通信系统设计
基于FPGA的光纤通信系统设计接收端控制逻辑、数据解码、检验计算、缓存控制、时钟控制。原创 2024-03-16 09:46:33 · 1373 阅读 · 0 评论 -
digital_design_and_computer_architecture
Digital Design and Computer Architecture RISC-V Edition 笔记!!!原创 2024-03-10 14:30:51 · 208 阅读 · 0 评论 -
FPGA 的 DSP:Verilog 中的简单 FIR 滤波器
本项目介绍如何用 Verilog 实现一个带有预生成系数的简单 FIR 滤波器。原创 2024-03-06 15:19:23 · 1755 阅读 · 0 评论 -
Verilog reg, Verilog wire, SystemVerilog logic. What’s the difference?
Verilog reg 和 Verilog wire 之间的区别经常让许多刚开始学习这种语言的程序员感到困惑(我也曾困惑过!后来,当我采用 SystemVerilog 编写 RTL 设计时,我被告知现在一切都可以是 “类型逻辑”。这在一般情况下也行得通,但时不时会遇到关于变量、网和赋值的令人费解的错误信息。于是,我决定找出这些数据类型的确切工作原理,来撰写这篇文章。我翻阅了语言参考手册,搜索了现已失效的 Verilog-2005 标准文件,并上了一堂历史课。原创 2024-03-06 11:20:27 · 843 阅读 · 0 评论 -
时钟域交叉设计——Clock Domain Crossing Design
任何关于时钟域交叉(CDC)的讨论,都应从对可变性和同步性的基本了解开始。通俗地说,可变性是指一种不稳定的中间状态,在这种状态下,最轻微的干扰也会导致稳定状态的恢复。当应用于数字电路中的触发器时,它指的是触发器的输出可能尚未稳定到最终预期值的状态。触发器进入可变状态的方式之一是其设置或保持时间受到破坏。在异步时钟域交叉(CDC)中,源时钟和目的时钟没有频率关系,来自源域的信号在其驱动的目的触发器的设置或保持时间内发生变化的概率为非零。原创 2024-03-06 11:13:31 · 1154 阅读 · 0 评论 -
卡尔曼滤波
真实世界中,系统动力模型总是有不确定性的。比如我们想测量一个电阻的阻值,我们假设它是不变的,即阻值不随测量过程而改变。但实际上阻值会随着环境温度的改变而轻微改变。再比如用雷达追踪弹道导弹时,导弹动态模型的不确定性会包含一些随机的加减速。对于飞行器之类的目标,模型不确定性更大,因为飞行员随时可能进行机动。另一方面,当我们用GPS接收机计算一个固定物体的位置时,由于固定物体不会动所以动态模型不确定性为0. 动态模型的不确定性称为 过程噪声。一些文献中也叫模型噪声、驱动噪声、动态噪声或系统噪声。原创 2024-02-27 14:43:22 · 279 阅读 · 0 评论 -
如何为双向/输入输出端口编写 Verilog Testbench
这篇文章介绍了如何为双向或输入输出端口编写 Verilog 测试平台。这种情况发生在包含双向或输入输出端口(例如 I2C 内核、IO 焊盘、存储器等)的特殊设计中。在这篇文章中,我将举例说明如何为数字 IO 板编写测试平台代码。块 1 是生成测试用例以检查 IO 焊盘的输入/输出功能的主要测试平台。时,IO 板用作输出板。因此,来自输入 I 的信号被传递到双向端口。因此,从输入端口I读取来自双向端口。,用于将 IO 板配置为输入或输出。作为输入 pad,来自双向端口。的输入 I 获取数据的输出。原创 2024-02-26 16:45:23 · 465 阅读 · 0 评论 -
使用 Verilog 做一个可编程数字延迟定时器 LS7211-7212
延迟定时器的规格可以在这里轻松找到。基本上,延迟定时器有 4 种操作模式:一次性 (OS)、延迟操作 (DO)、延迟释放 (DR)、双延迟 (DD)。输入用于根据延迟定时器规范中给定的方程对延迟进行编程。今天的项目是在 Verilog HDL 中实现可编程数字延迟定时器。完整呈现了延迟定时器的 Verilog 代码。可编程延迟定时器的 Verilog 代码是可综合的,并且可以在 FPGA 上实现。以下是可编程数字延迟定时器 LS7212 的 Verilog 代码。所实现的数字延迟定时器是。原创 2024-02-26 16:29:56 · 496 阅读 · 0 评论 -
为什么 FPGA 比 CPU 和 GPU 快?
Why FPGAs are faster than CPUs and GPUs原创 2024-01-26 15:42:45 · 4609 阅读 · 1 评论 -
什么是 FPGA(现场可编程门阵列)?
现场可编程门阵列 (FPGA) 是一种半导体器件,由与可编程互连相结合的可配置逻辑块 (CLB) 网格构成。本文介绍了什么是FPGA?FPGA的作用和用途原创 2024-01-24 10:18:19 · 1187 阅读 · 0 评论 -
Verilog 和 System Verilog 的区别
System verilog 是 verilog 的扩展,它添加了许多功能和增强功能,以促进复杂的数字系统设计。2005年,系统verilog被指定为verilog的超集,并进行了一些补充,并成为IEEE标准1800,并于2012年升级为IEEE 1800-2012。系统 verilog 构建在动态的类级测试平台上。原创 2024-01-12 11:28:10 · 1212 阅读 · 0 评论 -
加快verilog 仿真工具 —— Verilator 用法
加速Verilog项目仿真速度,比vivado要快得多原创 2023-11-29 21:52:53 · 1897 阅读 · 0 评论 -
Asynchronous FIFO and synchronous FIFO
在异步 FIFO 的情况下,写指针与写时钟域对齐,而读指针与读时钟域对齐。示例:当写时钟域的二进制值 wr_ptr = 4’b1101 通过 2FF 同步器传输时,读时钟域的 wr_ptr 值可能会接收为 4’b1111 或任何其他不可接受的值。因此,写指针和读指针都需要首先转换为其相应域中的等效格雷码,然后将它们传递到相反的域。满的情况意味着 FIFO 中的每个槽都被占用,但是 w_ptr 和 r_ptr 将再次具有相同的值。FIFO 的深度: FIFO 中的槽数或行数称为 FIFO 的深度。原创 2024-01-11 16:18:37 · 1015 阅读 · 0 评论 -
Verilog 高级教程笔记——持续更新中
Verilog 高级教程——Verilog的一些高级用法原创 2024-01-09 21:08:40 · 1576 阅读 · 0 评论 -
Verilog 中可综合和不可综合的结构——Synthesizable and Non-Synthesizable Verilog constructs
Verilog 中可综合和不可综合的结构。原创 2024-01-09 20:58:00 · 488 阅读 · 0 评论 -
FPGA 查找表的用途和内部功能
FPGA 系列彼此不同的特征之一是它们的逻辑资源。例如,Spartan-II FPGA (PDF) 的每个 CLB 由两个片组成,每个片有两个 LUT。Spartan 6 (PDF) 有两个切片(slices),每个切片有四个 LUT。在内部,LUT 由 1 位存储单元(可编程以保存“0”或“1”)和一组多路复用器组成。这些 SRAM 位中的一个值将在 LUT 的输出处可用,具体取决于馈送到多路复用器的控制线的值。LUT 可用的输入数量决定了其大小。一般来说,具有 n 个输入的 LUT 由2n2^n。原创 2024-01-04 10:34:49 · 1794 阅读 · 0 评论 -
FPGA 底层资源相关介绍
芯片的主要资源分为以下几个方面:Slice逻辑资源Slice Logic Distributionregister寄存器Memory存储器DSP资源IO和GTClocking时钟Primitives原语Black Boxes黑盒子Instantiated NetLists实例化网络原创 2023-12-29 10:32:20 · 1048 阅读 · 0 评论 -
N1ghtBreeze ZYNQ与一般FPGA的区别
之前刚开始学FPGA的时候用的是基于spartan的FPGA开发板,当上手ZYNQ后一直以为ZYNQ就是在资源上做了升级,我所要做的工作无非是把开发工具从ISE升级到VIVADO罢了,后来发现自己还是过于天真了,很多事都有存在的意思,上手之后便发现ZYNQ和之前的板子有区别。转载 2023-12-29 08:56:31 · 34 阅读 · 0 评论 -
Python 脚本学习记录
1。原创 2023-07-31 18:14:24 · 54 阅读 · 0 评论 -
Verilog 学习之路(三)——牛客刷题篇
移位可以通过位截取操作和位拼接操作实现:a_tem[7:0]表示截取a_tem的低7位,{a_tem[7:0],a}表示把a_tem[7:0]和新输入的数值a拼接,a位于低位。序列缓存对比法,则是将九个时刻的数据缓存,作为一个数组,每个时刻的输入位于数组的末尾,数组其它元素左移,把最早输入的数据移出。序列缓存对比法,则是将八个时刻的数据缓存,作为一个数组,每个时刻的输入位于数组的末尾,数组其它元素左移,把最早输入的数据移出。然后将数组和目标序列对比,如果数组和目标序列相等,则说明出现目标序列。原创 2023-07-24 23:38:29 · 794 阅读 · 0 评论 -
Verilog 学习之路二——基础学习总结(摘取自菜鸟教程)
time_unit 表示时间单位,time_precision 表示时间精度,它们均是由数字以及单位 s(秒),ms(毫秒),us(微妙),ns(纳秒),ps(皮秒)和 fs(飞秒)组成。时间精度可以和时间单位一样,但是时间精度大小不能超过时间单位大小,例如下面例子中,输出端 Z 会延迟 5.21ns 输出 A&B 的结果。这样,可以把一个较大的系统,细化成多个小系统,从时间、工作量上分配给更多的人员去设计,从而提高了设计速度,缩短了开发周期。与 initial 语句相反,always 语句是重复执行的。原创 2023-07-20 22:13:04 · 1200 阅读 · 0 评论 -
Verilog 学习之路
在常见的用法中,通常在组合逻辑中使用 = 赋值操作符,而在时序逻辑(如 always @(posedge clk))中使用原创 2023-07-14 17:52:16 · 1926 阅读 · 0 评论