自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GDB (逐步介绍)

GDB 是 GNU Project Debugger 的缩写,是 C 语言(以及 C++ 等其他语言)的强大调试工具。它可以帮助你在 C 语言程序运行时对其进行调试,还可以让你看到程序崩溃时到底发生了什么。GDB 在可执行文件上运行,可执行文件是编译过程中产生的二进制文件。为便于演示,下面的示例在一台规格如下的 Linux 机器上执行。

2024-04-14 11:33:09 647

原创 基于 FPGA 的 DE1-SoC 功率估算器

功耗是当今许多技术都要考虑的重要因素。例如,手机生产商总是谈论他们在电源管理方面的改进,以及如何延长电池的使用寿命。功能与功耗之间的平衡是许多人都在研究的有趣课题。然而,当我们做实验时,我们很少会考虑我们消耗了多少电能,因为我们从来没有受到电能的限制。在本课实验 3 中合成巨型鼓时,我们耗尽了 FPGA 上的所有 DSP 块,并使用了大量 M10K 内存。这种对硬件的大量使用很可能会导致高功耗,我们很想知道有哪些因素会影响 FPGA 的功耗。

2024-04-13 16:10:27 791

原创 基于FPGA的光纤通信系统的实现的优化技巧与方法

FPGA实现的优化技巧和方法。1.跨时钟域数据同步技术;2.高速数据的乒乓缓存技术

2024-03-16 11:31:02 588

原创 基于FPGA的光纤通信系统设计

基于FPGA的光纤通信系统设计接收端控制逻辑、数据解码、检验计算、缓存控制、时钟控制。

2024-03-16 09:46:33 1275

原创 digital_design_and_computer_architecture

Digital Design and Computer Architecture RISC-V Edition 笔记!!!

2024-03-10 14:30:51 182

原创 FPGA 的 DSP:Verilog 中的简单 FIR 滤波器

本项目介绍如何用 Verilog 实现一个带有预生成系数的简单 FIR 滤波器。

2024-03-06 15:19:23 1451

原创 Verilog reg, Verilog wire, SystemVerilog logic. What’s the difference?

Verilog reg 和 Verilog wire 之间的区别经常让许多刚开始学习这种语言的程序员感到困惑(我也曾困惑过!后来,当我采用 SystemVerilog 编写 RTL 设计时,我被告知现在一切都可以是 “类型逻辑”。这在一般情况下也行得通,但时不时会遇到关于变量、网和赋值的令人费解的错误信息。于是,我决定找出这些数据类型的确切工作原理,来撰写这篇文章。我翻阅了语言参考手册,搜索了现已失效的 Verilog-2005 标准文件,并上了一堂历史课。

2024-03-06 11:20:27 834

原创 时钟域交叉设计——Clock Domain Crossing Design

任何关于时钟域交叉(CDC)的讨论,都应从对可变性和同步性的基本了解开始。通俗地说,可变性是指一种不稳定的中间状态,在这种状态下,最轻微的干扰也会导致稳定状态的恢复。当应用于数字电路中的触发器时,它指的是触发器的输出可能尚未稳定到最终预期值的状态。触发器进入可变状态的方式之一是其设置或保持时间受到破坏。在异步时钟域交叉(CDC)中,源时钟和目的时钟没有频率关系,来自源域的信号在其驱动的目的触发器的设置或保持时间内发生变化的概率为非零。

2024-03-06 11:13:31 1104

原创 一文讲懂 C++ 内存调试和智能指针

现在,让我们来演示如何使用一种工具来自动检测内存泄漏以及许多其他类型的内存相关错误。我们将使用的工具名为 “它是完全跨平台的,因此无论学生使用何种操作系统或 CPU 架构,它都能在每个学生的电脑上运行。要使用记忆博士,请从网站 ""部分的相关链接下载最新版本,并按照网站 "文档 "部分的相关说明进行安装。添加这些参数后,tasks.json的args你可以选择终端 > 运行编译任务…或按下,使用这些参数编译程序,而无需实际运行它。请注意,虽然程序中有 4 个非常严重的错误,但编译器不会发出任何警告!

2024-03-04 19:35:54 826

原创 第 387 场周赛第一次AK记录

题意- 思路直接看代码代码。

2024-03-04 08:38:53 156

原创 怎么在 Ubuntu 22.04 上使用 SSH

SSH 是一种安全外壳网络协议,用于通过互联网在两台计算机之间进行通信,一台称为客户端计算机,另一台称为主机计算机。openSSH的包可以使用中的默认包来安装。在本文中,apt 包管理器用于在上安装 SSH 服务器。

2024-03-02 15:42:40 1190

原创 Parallel Computing - 一文讲懂并行计算

在本章中,我们将回顾一些有关并行计算的概念。但更加强调 GPU。

2024-03-02 10:58:57 732

原创 Introduction to OpenCL

OpenCL是用于编写跨异构平台执行的程序的框架。例如,它们由CPUGPUDSP和FPGA组成。OpenCL指定了一种用于对这些设备进行编程的编程语言(基于C99)和应用程序编程接口 (API),以控制平台并在计算设备上执行程序。OpenCL为使用基于任务和基于数据的并行性的并行计算提供了标准接口。

2024-02-27 21:28:43 1116

原创 卡尔曼滤波

真实世界中,系统动力模型总是有不确定性的。比如我们想测量一个电阻的阻值,我们假设它是不变的,即阻值不随测量过程而改变。但实际上阻值会随着环境温度的改变而轻微改变。再比如用雷达追踪弹道导弹时,导弹动态模型的不确定性会包含一些随机的加减速。对于飞行器之类的目标,模型不确定性更大,因为飞行员随时可能进行机动。另一方面,当我们用GPS接收机计算一个固定物体的位置时,由于固定物体不会动所以动态模型不确定性为0. 动态模型的不确定性称为 过程噪声。一些文献中也叫模型噪声、驱动噪声、动态噪声或系统噪声。

2024-02-27 14:43:22 269

原创 如何为双向/输入输出端口编写 Verilog Testbench

这篇文章介绍了如何为双向或输入输出端口编写 Verilog 测试平台。这种情况发生在包含双向或输入输出端口(例如 I2C 内核、IO 焊盘、存储器等)的特殊设计中。在这篇文章中,我将举例说明如何为数字 IO 板编写测试平台代码。块 1 是生成测试用例以检查 IO 焊盘的输入/输出功能的主要测试平台。时,IO 板用作输出板。因此,来自输入 I 的信号被传递到双向端口。因此,从输入端口I读取来自双向端口。,用于将 IO 板配置为输入或输出。作为输入 pad,来自双向端口。的输入 I 获取数据的输出。

2024-02-26 16:45:23 402

原创 使用 Verilog 做一个可编程数字延迟定时器 LS7211-7212

延迟定时器的规格可以在这里轻松找到。基本上,延迟定时器有 4 种操作模式:一次性 (OS)、延迟操作 (DO)、延迟释放 (DR)、双延迟 (DD)。输入用于根据延迟定时器规范中给定的方程对延迟进行编程。今天的项目是在 Verilog HDL 中实现可编程数字延迟定时器。完整呈现了延迟定时器的 Verilog 代码。可编程延迟定时器的 Verilog 代码是可综合的,并且可以在 FPGA 上实现。以下是可编程数字延迟定时器 LS7212 的 Verilog 代码。所实现的数字延迟定时器是。

2024-02-26 16:29:56 410

原创 CUDA 编程指南 —— 编程接口之CUDA Runtime

编程模型假设系统由主机和设备组成,每个主机和设备都有自己独立的内存。设备内存概述了用于管理设备内存的运行时函数。进行动态链接的应用程序通常将它们作为应用程序安装包的一部分。引入了页锁定主机内存,需要将内核执行与主机和设备内存之间的数据传输重叠。描述了用于在系统中的各个级别启用异步并发执行的概念和 API。展示了编程模型如何扩展到具有连接到同一主机的多个设备的系统。介绍了运行时提供的各种函数,用于与两个主要图形 API(描述了如何正确检查运行时生成的错误。运行时符号的地址才是安全的。动态链接到应用程序。

2024-02-26 10:00:25 395

原创 CUDA 编程指南 —— 编程接口之使用NVCC编译

CUDAC++ 为熟悉 C++ 编程语言的用户提供了一条简单的途径,可以轻松编写供设备执行的程序。它由 C++ 语言的最小扩展集和运行时库组成。核心语言扩展已在编程模型中引入。它们允许程序员将内核定义为 C++ 函数,并在每次调用该函数时使用一些新语法来指定网格和块维度。所有扩展的完整描述可以在 C++ 语言扩展中找到。包含其中一些扩展的任何源文件都必须使用 nvcc 进行编译,如使用NVCC编译中所述。运行时是在中引入的。

2024-02-26 09:54:27 856

原创 CUDA C++ 编程指南系列教程 —— 编程模型

本章通过概述 CUDA 编程模型背后的主要概念如何在 C++ 中公开来介绍它们。编程接口中给出了 CUDA C++ 的详细描述。本章和下一章中使用的向量加法示例的完整代码可以在 vectorAdd CUDA 示例中找到。

2024-02-25 10:36:18 765

原创 CUDA C++ 编程指南

虽然 CPU 被设计为擅长以尽可能快的速度执行一系列称为线程的操作,并且可以并行执行几十个这样的线程,但 GPU 被设计为擅长并行执行数千个线程(摊销较慢的单线程性能以获得更大的吞吐量)。面临的挑战是开发能够透明地扩展其并行性的应用程序软件,以利用数量不断增加的处理器核心,就像 3D 图形应用程序透明地扩展其并行性到具有广泛不同数量的核心的多核 GPU 一样。多线程程序被划分为彼此独立执行的线程块,因此具有更多多处理器的 GPU 会比具有更少多处理器的 GPU 在更短的时间内自动执行程序。

2024-02-25 10:01:39 1174

原创 更简单地介绍 CUDA

这篇文章是对 CUDA 的超级简单介绍,CUDA 是 NVIDIA 流行的并行计算平台和编程模型。我之前在2013年写过一篇文章《CUDA简单介绍》,多年来一直很受欢迎。但 CUDA 编程变得更加容易,GPU 也变得更快,所以是时候进行更新(甚至更简单)的介绍了。CUDA C++ 只是使用 CUDA 创建大规模并行应用程序的方法之一。它允许您使用强大的 C++ 编程语言来开发由 GPU 上运行的数千个并行线程加速的高性能算法。

2024-02-24 11:20:18 679

原创 Python 常见数据结构

Python 中的数据结构

2024-02-24 10:16:18 664

原创 12 个对开发人员有用的 Python 脚本

众所周知,开发人员的日常工作通常涉及创建和维护小型实用程序脚本。这些脚本是连接系统或构建环境各个方面的粘合剂。虽然这些 Python 脚本可能并不复杂,但维护它们可能会成为一项乏味的苦差事,可能会花费您的时间和金钱。减轻维护负担的一种方法是使用脚本自动化。脚本自动化允许您安排这些任务在特定时间表上运行或响应某些事件而触发,而不是花费时间运行脚本(通常是手动)。本文将介绍 12 个 Python 脚本,这些脚本是根据其通用实用性、易用性以及对工作负载的积极影响而选择的。

2024-02-23 11:53:59 971

原创 怎么画一个 有限状态机

有限状态机对于证明某些问题是可计算的(或不可计算的)是必要的。由于我目前正在学习有关它们的一些知识,我希望能够自动绘制这些有限自动机。我将使用 。该图像是从 gv 文件创建的。我将其另存为 fsm.gv:要创建图形(或非确定性有限状态机的图片),您必须在 Ubuntu Linux 中输入以下命令:Deterministic finite-state machine ¶InstallationOder mit apturl installieren, Link: apt://graphvizDO

2024-02-22 22:20:52 510

原创 一篇文章搞懂 C++ 类的概念

全方面详细介绍了C++类的概念

2024-02-22 16:32:25 719

原创 PYTHON-使用正则表达式进行模式匹配

简单介绍一下Python的正则表达式

2024-02-22 15:22:08 1268

原创 gem5标准库概述

组件包的核心是电路板的概念。例如,存储器设备和处理器可以被添加到板,其中板负责通信,而假设存储器或处理器符合已知的API,则存储器或处理器的设计者不必考虑这一点。与编程语言中的标准库类似,gem5标准库旨在为gem5的用户提供常用的组件、特性和功能,以提高他们的生产力。用户可以在其 Python 配置文件中指定需要特定的 gem5 资源,并且在运行时,该包将检查主机系统上是否有本地副本,如果没有,则下载它。在 gem5 的上下文中,资源是在模拟中或由模拟使用的东西,但不直接用于构建要模拟的系统。

2024-02-21 11:18:07 635

原创 在计算机上设置和使用 KVM

为了使用 gem5 的 KVMCPU 来快进你的模拟,你必须有一个 KVM 兼容的处理器并且在你的机器上安装了 KVM。本页将引导您完成在计算机上启用 KVM 并将其与 gem5 一起使用的过程。注意:以下教程假设 X86 Linux 主机。本教程的各个部分可能不适用于其他体系结构或不同的操作系统。目前,KVM 支持仅适用于 X86 和 ARM 模拟(使用各自的 X86 和 ARM 主机)。

2024-02-21 10:37:10 289

原创 丢失的C语言艺术——结构体打包

在这种情况下,有一些方法可以通过仔细地重新排列结构成员的顺序来显着减少内存使用量。这可以带来巨大的收益 - 在我的例子中,我能够将工作集大小减少大约 40%,使程序能够处理更大的存储库而不会崩溃。

2024-02-21 09:46:31 1201

原创 assert function

/ BAD// GOODassert(x);x++;

2024-02-20 21:48:11 388

原创 运行 Python 脚本 – 如何在终端中执行 Python Shell 命令

操作系统是由一堆程序组成的。它们执行文件处理、内存管理和资源管理等任务,并帮助您的应用程序顺利运行。我们在计算机上所做的所有工作,例如在 Excel 中分析数据或玩游戏,都是通过操作系统来实现的。操作系统程序有两种类型,称为外壳程序和内核程序。内核程序是执行实际任务的程序,例如创建文件或发送中断。Shell 是另一个程序,其工作是获取输入并决定并执行所需的内核程序来完成该工作并显示输出。shell 也称为命令处理器。终端是与 shell 交互的程序,允许我们通过基于文本的命令与其进行通信。

2024-02-20 11:50:43 1236

原创 用 Python 自动化处理无聊的事情

编程最棒的部分就是看到机器做一些有用的事情而获得的胜利。用 Python 将无聊的事情自动化将所有编程视为这些小小的胜利;它让无聊变得有趣。

2024-02-20 11:41:12 7629

原创 笨方法学 C —— 练习17

【代码】笨方法学 C —— 练习17。

2024-02-20 11:25:39 351

原创 C 语言根据输入的参数作为大小动态开辟数组

在C语言中,可以使用动态内存分配函数。需要注意的是,使用动态内存分配后,一定要记得在不需要使用数组时释放分配的内存,以避免内存泄漏问题。函数分配所需大小的内存空间,并将其返回的指针赋给指针变量。指针来访问分配的内存空间,就像访问普通的数组一样。函数释放动态分配的数组内存,以避免内存泄漏。函数获取用户输入的数组大小。

2024-02-20 10:37:58 480

原创 Sora 中的技术

Sora 技术报告-翻译自官网有取舍

2024-02-20 09:54:52 628

原创 Sora (text-to-video model-文本转视频模型)

Sora的维基百科介绍!

2024-02-20 09:33:41 766

原创 堆和栈的内存分配

栈是一个特殊的内存区域,它储存了每个函数的创建的临时变量,它们对于该函数为局部变量。堆更容易解释,因为它就是你电脑中的剩余内存,你可以通过malloc访问它来获取更多内存,OS会使用内部函数为你注册一块内存区域,并且返回指向它的指针。然而C完全不一样,因为它使用了CPU真实的机制来完成工作,这涉及到RAM中的一块叫做栈的区域,以及另外一块叫做堆的区域。理清内存的最简单的方式是遵守这条原则:如果你的变量并不是从malloc中获取的,也不是从一个从malloc获取的函数中获取的,那么它在栈上。

2024-02-19 20:55:35 267

原创 西工大计算机学院复试问题整理

西北工业大学计算机学院考研复试问题整理!!!

2024-02-10 17:00:27 1050

原创 并行计算工具 MPI 简单教程

我们将首先创建两个变量 process_Rank 和 size_Of_Cluster,分别存储每个并行进程的标识符和集群中运行的进程数。这应该为您的环境准备好编译和运行 MPI 代码所需的所有工具。在本教程中,我们将命名我们的代码文件:hello_world_mpi.cpp。在作业脚本中,加载上面用于编译程序的相同编译器和 OpenMPI 选择,并使用 Slurm 运行作业以执行应用程序。现在让我们设置几个 MPI 指令来并行化我们的代码。该函数返回调用该函数的处理器的进程ID。

2024-01-28 17:55:49 674

原创 为什么 FPGA 比 CPU 和 GPU 快?

Why FPGAs are faster than CPUs and GPUs

2024-01-26 15:42:45 4493 1

操作系统自己总结.pdf

西北工业大学 23 年上岸,初试 419,专业课 128。 操作系统自己总结.pdf 更多资料联系 3067458469

2023-04-30

数据结构自己总结.pdf

数据结构自己总结.pdf 更多资料联系 3067458469

2023-04-30

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

TA关注的人

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