自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 CentOS 离线环境安装 Python2

此时可以找一台有网的电脑(可以是Linux虚拟机),使用yum管理器的打包命令将Python2的安装包及依赖全部打包成rpm,然后拷贝到离线机器上安装。CentOS离线环境安装Python2,可能在编译源码时因缺少各种依赖而无法编译成功。

2024-12-04 19:18:08 405

转载 stm32硬件加密AES stm32 加密

2024-07-09 21:45:40 133

原创 【超标量】分支预测的方向预测总结

静态分支预测与动态分支预测

2022-07-05 02:42:29 3256 3

原创 解读Linux零拷贝之mmap

文章目录0x01 内核态mmap0x02 用户态mmap0x03 映射I/O内存关闭Cache0x04 利用/dev/mem进行mmap0x01 内核态mmap内核态mmap函数如下,vm_area_struct 结构体记录一片虚存区域,在一定范围内的页将被映射至该区域内。static int rdma_mmap(struct file *fp, struct vm_area_struct *vma)在驱动中只需要为用户空间虚拟地址和物理地址建立新的页表即可完成映射。remap_pfn_rang

2022-04-19 03:39:41 2468 2

原创 【I.MX6ULL】6ull 加载 linux 驱动模块失败

文章目录@[toc]0x01 加载驱动模块失败0x02 解决方法0x01 加载驱动模块失败加载驱动失败描述信息如下,错误信息提示板卡中运行的 linux 内核版本是 4.1.15-g49efdaa ,架构是 ARMv7 ;而编译驱动使用的内核源码版本为 4.1.15 ,架构是 ARMv6 。说明编译驱动使用的内核版本名和架构与板卡中运行的均不一致。root@ALIENTEK-IMX6U:~/get# insmod led.ko[ 1634.442887] led: version magic '4.

2021-12-28 00:02:10 1956 3

原创 【原创】Ubuntu 下使用 NCverilog 仿真 Verilog 工程

文章目录0x01 NCverilog 简介0x02 NCverilog 仿真自动化0x01 NCverilog 简介NCverilog 是国际 EDA 巨头 Cadence 旗下的仿真软件。NCverilog 有 shell 和 GUI 两种版本,GUI 版本的叫做 NClaunch ,本文仅说 shell 版本的。与 Windows 下的常用 EDA 软件 Modelsim/QuestaSim 不同,Linux 下的 EDA 软件通常是仿真和波形查看功能是分离的,比如 Synopsys 旗下

2021-10-30 14:33:18 2445

原创 Cache 设计原理(一)Cache 存在的意义

文章目录0x01 Cache 的意义0x02 局部性原理0x03 Cache 应用实例0x01 Cache 的意义目前,计算机所使用的内存大都为 DRAM/SDRAM,此类存储器访存时间较长,将会引起流水线长时间的停顿,这个时间比起时钟周期是个非常大的数字。当访存指令占据较大一部分时,平均 CPI 会因此而大幅升高。有时 data 和 code 都在同一存储器中,例如初始化C语言环境的过程就需要将 code 段和 data 段(或只有 data 段)从 Flash/SD 卡拷贝到内存中。这个

2021-10-17 13:46:22 1585

原创 【时间同步】IEEE-1588总结

第一章 计算机网络时间同步的意义1.1 网络时间协议简介网络时间协议,即Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务。NTP提供准确时间,就需要有准确的时间来源,这一时间应该是协调世界时(UTC)。

2021-10-13 20:17:05 15572 2

原创 TCL脚本语言总结(一)置换

TCL脚本语言总结(一)置换文章目录TCL脚本语言总结(一)置换@[toc]一、TCL的置换1.1 变量置换1.2 命令置换1.3 转义置换1.3 其他字符一、TCL的置换TCL 解释器把命令分成一个个独立的单词,同时进行必要的置换。置换分为以下三类:● $: 变量置换● []:命令置换● \: 转义置换1.1 变量置换美元号 $ 为变量置换符号,$ 后的符号表示变量名,解释器会将其替换为这个符号中所赋的值。例子如下所示:#!C:\ActiveTcl\bin\tclshse

2021-10-01 15:31:58 1469

原创 【原创】Verilog实现常见数据结构计划(二)栈

文章目录一、栈的 C 语言实现1.1 顺序栈的结构定义1.2 顺序栈的初始化1.3 顺序栈的写入1.4 顺序栈的读出二、栈的 Verilog 实现2.1 Verilog 实现代码2.2 仿真测试一、栈的 C 语言实现1.1 顺序栈的结构定义data为栈中每个元素的数据值;top为栈顶的指针,在计算机体系中也称作 sp 指针。/* 数据结构定义 */typedef struct{ int data[MAXSIZE]; // 栈数据空间 int top;

2021-09-24 18:00:35 1805 1

原创 【Sublime】Ubuntu下为 Sublime 配置 Verilog 语法检查插件

文章目录一、SublimeLinter 插件介绍二、SublimeLinter 在Linux下的配置安装配套的 iverilog配置插件一、SublimeLinter 插件介绍SublimeLinter 在我之前的一篇博客中有过介绍,并提供了语法检查插件 SublimeLinter-contrib-iverilog 在 Windows 下的安装方法。链接点击此处→【Sublime】Sublime Text3 的一些提高生产力的 Verilog 插件二、SublimeLinter 在Linux下的配置.

2021-07-06 19:41:30 1140

原创 Linux 下 iverilog 的自动化仿真

Linux 下 iverilog 的自动化仿真文章目录Linux 下 iverilog 的自动化仿真一、介绍二、安装步骤三、iverilog 使用test.vadd.v四、自动化仿真Makefile执行一、介绍iverilog :Icarus Verilog是一个轻量级的verilog仿真工具,以编译器的形式工作, 将以verilog编写的源代码编译为某种目标格式.。如果要进行仿真的话, 它可以生成一个叫做vvp的中间格式. 这个格式可以由其所附带的vvp命令执行。GTKwave:一款免费的波形

2021-07-05 20:57:03 2805 2

原创 【原创】流水线处理对比实例

一、引言本文以8输入与门为例,展示在 Vivado 下对纯8输入与门的组合逻辑链和两级流水线处理后的8输入与门 的静态时序分析(STA)报告,来直观地体现流水线技术在数字设计中的重要性。二、纯8输入与门组合逻辑链Verilog代码如下:`timescale 1ns / 1nsmodule test ( input clk , // Clock input rst_n, // Asynchronous reset active low input a ...

2021-03-07 01:45:26 2851 6

原创 【Sublime】Sublime Text3 的一些提高生产力的 Verilog 插件

一、引言相对于Vivado和Quartus自带的编辑器,用 Sublime 编写 Verilog 比较方便快捷。下面推荐几个提高开发 Verilog 生产力的插件。二、插件推荐1、SnippetMakerSnippetMaker 插件提供 snippet 文件的快捷生成和打包操作,用于快速实现自定义代码块。① 首先在编辑器中编写想要打包的代码块,并且选中。② 按 ctrl+shift+P ,并输入 make ,选择下图光标所示的选项。③ 在下方控制台中输入触发代码块的提示符

2021-02-22 19:11:23 5156 14

原创 【懒人专用】Python实现Modelsim独立仿真Vivado工程的自动化脚本

引言 有两种方法可以使用 Modelsim 对 Vivado 工程进行仿真,即级联仿真和独立仿真。 级联仿真就是通过设置使 Vivado 调出 Modelsim 仿真界面并启动仿真,这种方法的好处是当使用 IP时不用自己添加 Xilinx 的 IP库;缺点是仿真效率极低,每次修改代码后需要综合,然后在 Vivado 中调出Modelsim 进行仿真,并且考虑到 Vivado 的优化问题,其综合速度远没有 Modelsim 快。 独立仿真是在 Modelsim ...

2021-02-10 20:39:32 4843 5

原创 【原创】Verilog实现常见数据结构计划(一)顺序线性表

引言数据结构不仅仅是一门软件基础课,同时也是一门硬件基础课,可以说是数字设计的入门课。数据结构里详细介绍了链表、队列、堆栈、哈希等基本底层操作,这些底层操作在一些高级语言中都被封装好了,但是在做硬件设计时都是需要考虑的,如内存分配和存储问题,在硬件设计中是没有编译器来帮我们完成的,都需要一步一步设计来完成。这里将分几期来演示使用Verilog实现常用数据结构的操作,本文实现Verilog实现顺序线性表的插入操作。一、顺序线性表顺序表的定义也是用一段地址连续的存储单元一次存储线性表的数据元素,而

2021-02-05 23:50:44 2395 2

原创 【新手向】Verilog中 判断语句 的执行时序总结

一、时序逻辑有两个always块,一个作为计数器使寄存器cnt自加,另一个判断cnt的值并作出响应。always块中的时序逻辑电路基本拓扑如下图所示,由两个触发器级联构成。上述两个always块的过程都是在同步时钟下进行的时序逻辑电路。由触发器的特性可知,在时序电路1中判断时序电路2的状态值,判断的永远是时序电路2的上一个时钟周期所对应的值。所以可以由此结论推断各判断语句对应的触发时间。(cnt初始等于0,flag高电平表示事件触发,低电平表示未触发。)if(cnt==N).

2021-01-18 17:07:16 5468 2

原创 【原创】Xilinx 同步FIFO IP核时序仿真说明(附testbench代码)

引言最近在研究硬件tcp/ip协议栈,需要用到同步FIFO缓存电脑发来的以太网数据。以前用的Altera家的芯片,还没仔细研究过Xilinx的同步FIFO IP核的时序,为了避免以后采坑,简单分析一下其操作时序。软件环境:Vivado 2019.2仿真环境:Vivado Simulator官方手册:PG057一、时序分析大家知道一个数据从一个触发器输入端传输到另一个触发器输出端需要两个时钟周期,那么写进FIFO的第一个数据是wr_en上升沿时的数据还是wr_en上升沿后的下一个数据呢?查看一下

2021-01-13 19:48:42 4933

原创 【原创】Xilinx_7Series_MIG控制器驱动DDR3

一、项目说明:平台:XC7K325T板卡DDR3:两片MT41J256M16TW-107,共1GB,数据总线32bit环境:Vivado 2019.2IP:Memory Interface Generator(MIG 7 Series)官方手册:ug586 (7Series Devices Memory Interface Solutions v4.2)二、DDR3本调试使用了两片镁光的 MT41J256M16TW-107 DDR3芯片:单片数据总线为16bit、深度32M、8个Ban...

2020-11-20 22:27:51 11640 3

原创 【原创】Xilinx 的 RAM IP核调用与仿真(一)

Xilinx 的 RAM IP核分为三种:单口RAM(Single Port RAM)、伪双口RAM(Simple Dual Port RAM) 和真双口RAM(True Dual Port RAM)。上图为单口RAM;拥有一组地址线、一组读数据线和一组写数据线,且读写操作共用同一个时钟,在同一时刻要么写数据要么读数据。上图为伪双口RAM;拥有一组写数据线和一组读数据线,且两个数据总线各配一组地址总线 ,读和写端各有一个时钟(类似于FIFO),内存空间共享,可以同时读写。...

2020-11-14 02:36:00 9753 3

原创 【原创】异步FIFO设计原理详解 (含RTL代码和Testbench代码)

FIFO在硬件上是一种地址依次自增的Single Dul RAM,按读数据和写数据工作的时钟域是否相同分为同步FIFO和异步FIFO,其中同步FIFO是指读时钟和写时钟为同步时钟,常用于数据缓存和数据位宽转换;异步FIFO通常情况下是指读时钟和写时钟频率有差异,即由两个异步时钟驱动的FIFO,由于读写操作是独立的,故常用于多比特数据跨时钟域处理。本文仅讨论异步FIFO的设计。 因为FIFO的硬件本质是一块Single Dul RAM,无论它的内部结构和原理如何复杂,最核心的...

2020-11-08 16:17:02 33818 37

原创 【原创】Verilog编写 “1101 序列检测器

序列检测器是时序数字电路中非常常见的设计之一。它的主要功能是将一个指定的序列从数字码流中识别出来。这里给出一个“1101”序列检测器的Verilog实现和Testbench代码。★设计目标:“1101”序列检测器★EDA:Quartus 15.0★仿真软件:Modelsim 10.1c本序列检测器共有4个bit位,每个bit占用一个状态,再加上开始和结束状态,故使用格雷码定义6个状态:// 序列检测器 状态编码(格雷码)localparam SEQ_IDLE = 3'b000;lo

2020-10-18 15:18:30 16306 2

原创 【原创】详解Verilog一段式状态机实现按键消抖(含打包成IP核教程)

玩过单片机的都知道,机械按键在按下和松开的一段时间内会在高低电平间来回振荡数次。为了准确可靠地检测按键是否被触发,则需要对按键按下和松开的过程进行消抖处理。 ...

2020-10-17 15:19:27 1794

原创 【信号与系统】卷积积分及计算方法详解

本人在第一次学习信号与系统、数字信号处理以及考研信号专业课的复习阶段中,总是记不住卷积积分的计算方法,开贴一张,记录计算方法,以免日后遗忘。冲激响应 冲激响应就是对一个LTI系统输入冲激函数作为激励信号时,系统所产生的零状态响应(Yzs)。一个系统的冲激响应表征了这个系统的特征。由于冲激信号只在t=0时刻对系统产生作用,所以在t>0时刻后系统再没有激励信号输入,且冲激信号会引起系...

2020-04-30 01:42:29 35529 5

原创 【原创】通俗解释高速AD采集中数据的缓存

        电子萌新一枚。眼下即将进入期末考试周了,复习之余想了想之前一直被我搁置的问题:“示波器中高速ADC采集的数据到底是如何被不失真(不丢失数据)地处理和显示?”由于网上大多都是关于高速采集的高级处理和应用,几乎没有找到关于高速数据缓存的基本介绍,所以打算开一贴,简单通俗地谈一谈高速AD采集到的数据是如何不失真地被应用的,也算是照顾一下自己阿尔兹海默症般的记忆力......     ...

2018-12-19 04:18:01 3805 1

转载 csdn积分获取攻略

下载积分攻略:1. 个人设置里进行手机绑定CSDN账户 奖励50分 (右上角设置-账户安全-手机绑定)2. 完成任务送若干分积分      http://task.csdn.net/3. 上传有效资源获取积分(上传非法,广告资源用户,将被扣除一定积分,严重者封号)。   · 上传自己设分资源被下载,下载量×资源分,100分封顶。   · 上传0分资源被下载,下载量×系统奖励1分,100封...

2018-10-19 00:46:12 154

【封装库】STM32F407库函数,配置外设超简单

该库函数为1.0版本,包含大多数外设功能,且配置简单,仅需一个函数即可完成外设配置,比官方固件库更为方便简洁。

2019-01-31

空空如也

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

TA关注的人

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