自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【TOP】学习总结

自己学习总结目录,记录自己学习内容,不断更新中。

2022-12-16 18:36:48 119

原创 【python】python模板Jinja2

Jinja2 是一个现代的、设计优雅的 Python 模板引擎。它被广泛用于生成动态网页内容,但它也可以用于其他文本生成任务。本文将详细介绍如何在使用 Jinja2 库,并通过丰富的示例演示其强大的功能。

2024-07-18 19:54:51 680

原创 【python】python装饰器

Python装饰器(Decorator)是一种设计模式,允许你在不修改函数代码的前提下,增强或修改函数的功能。装饰器本质上是一个高阶函数,它接收一个函数作为参数,并返回一个增强后的函数。下面我们详细介绍Python装饰器的概念、使用场景及实现方法。

2024-07-16 19:50:57 862

原创 【SpinalHDL】Scala编程中的class及case class

本篇文章仅简单介绍在spinalhdl编程中遇到的比较常见的2中类定义方式:class及case class。对于不太了解JAVA或Scala编码又开始学习SpinalHDL的人进行入门介绍。在 SpinalHDL 中,case class 和 class 都是用来定义数据结构或对象的关键字,它们在某些方面相似,但也有一些显著的差异。

2024-04-14 22:15:31 1165 1

原创 【SpinalHDL】Scala编程中的var及val

虽然val声明的变量在赋值后不可再修改,但在硬件描述语言中,时序逻辑通常是通过连续赋值或者组合逻辑来实现的,而不是通过对变量的重新赋值来实现的。在这个例子中,reg是一个val声明的变量,但它的值在时钟的上升沿处被赋值为dataIn,这种赋值操作与val的不可变特性并不矛盾,因为赋值操作不是修改变量的值,而是生成硬件逻辑来实现寄存器行为。举个例子,如果您想实现一个时钟边沿触发的寄存器,可以使用Reg来声明寄存器,并在时钟的上升沿或下降沿处进行赋值操作。这样即使使用val声明,也不会影响到时序逻辑的开发。

2024-04-11 18:58:11 1046

原创 【Cocotb】cocotbext-axi拓展库

用于Cocotb的AXI接口模块,GitHub仓库:介绍AXI、AXI lite和AXIStream仿真模型安装文档和使用示例请参阅tests目录、和以获取使用这些模块的完整测试台。

2024-01-14 19:01:14 1392

原创 【SpinalHDL】代码生成功能

在学习SpinalHDL学习的时候,大部分人可能已经掌握了一种或多种IC设计语言,例如verilog、vhdl或system verilog等。在最开始学习新的语言时,个人习惯是比较新语言代码与原来熟悉的语言代码相比较,这就用了SpinalHDL中非常常用的代码生成功能。SpinalHDL从语言层次上来看是数字设计抽象语言,相比与verilog/vhdl/system verilog等语言更具抽象化,在实际使用过程中也是更多的利用SpinalHDL编写程序后转化为以上语言。本篇文章主要讲解如何将编写的S

2023-09-23 17:04:36 367

转载 【makefile】跟我一起写 Makefile

什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不得不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。

2023-08-27 20:21:34 363

原创 【SpinalHDL】结构语句

简单介绍在SpinalHDL编程中使用到的结构语句,主要包括赋值语句、选择语句,由于SpinalHDL中没有循环语句,这里在不介绍。

2023-05-10 13:45:39 477 1

原创 【SBT】getting org.scala-sbt sbt 1.8.2 (this may take some time)...问题解决

在windows环境搭建scala环境需要用到sbt,在安装完sbt后首次使用下载sbt应用程序时长时间卡在这一步,网上有两种解决方式:1. 网络代理;网络代理方式尝试了很多次,均不成功。国内镜像方式同样网上出现了大量帖子列举国内镜像网站,要不然是已过期网站,要不然无法访问。1. 我的sbt安装路径为:D:\Program Files\SpinalHDL\sbt。路径切换到scala project路径,路径下存在build.sbt文件。3.C:/sbt/properties文件修改为国内镜像。

2023-05-09 17:34:23 874

原创 【AMBA】ARM总线-APB/AHB/AXI介绍

什么是总线?首先,在学习AMBA总线之前,我们先对总线下一个定义。根据维基百科的定义:总线(Bus)是指计算机组件间规范化的交换数据(data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。根据chatgpt的解释:总线(Bus)是计算机中用于传输数据、地址和控制信号的一组共享的物理电线或逻辑路径。通过总线,不同的组件和设备可以相互通讯,并进行数据交换。计算机系统中的总线可以分为多种类型,如地址总线、数据总线、控制总线等,它们都有各自的作用和特点。

2023-05-02 09:20:28 3708

原创 【SpinalHDL】组件Component和包Bundle

在SpinalHDL中,Component和Bundle都是用于定义硬件模块的关键词,但它们的用途和作用略有不同。

2023-04-30 20:53:46 524

原创 【SpinalHDL】Windows10系统搭建SpinalHDL 开发环境

本文主要记载如何从零开始在win平台搭建SpinalHDL开发环境并跑通第一个spinal project demo。

2023-03-22 22:30:07 2480 12

原创 【SpinalHDL】verilatorScript.sh: line 1: verilator_bin.exe: command not found

verilatorScript.sh: line 1: verilator_bin.exe: command not found

2023-03-22 22:22:21 387

原创 【SpinalHDL】java.io.IOException: Cannot run program “sh.exe“问题解决

【Spinal】java.io.IOException: Cannot run program “sh.exe“问题解决

2023-03-21 12:35:37 910 1

原创 【FPGA】Synopsys vcs2018仿真问题汇总

vsc仿真问题汇总

2023-01-08 22:02:25 1403

原创 【python】IPython的使用技巧整理

IPython常用实用技巧总结归纳

2022-12-30 13:44:52 2115

原创 【Linux】Mint20.3系统安装Anaconda环境

Anaconda是非常方便的python开发IDE环境,其中不仅包含了很多常用python库还有Spyder运行环境。Mint系统是近些年非常受欢迎的linux系统,易上手已操作特性使其普及非常快。本篇介绍在Mint20.3系统安装Anaconda环境。

2022-12-18 10:29:38 346

原创 【FPGA】Mint20.3系统安装VCS2018环境

mint系统是目前新手入手linux系统最为容易的系统版本,其界面与Windows系统高度重合。vcs是IC开发常用的系统仿真工具,但vcs工具的安装是一个很头疼的事情,本篇展现在mint20.3系统安装vcs2018的全过程。

2022-12-17 12:34:30 975

转载 【Verilog】参数化设计指令

verilog编码参数化设计

2022-12-15 19:11:19 545

转载 【Verilog】条件编译指令

一般情况下,C语言中的每一行代码都要参加编译。但有时候出于对程序代码优化的考虑,希望只对其中一部分内容进行编译,此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译(conditional compile)。条件编译允许只编译源文件中满足条件的程序段,使生成的目标程序较短,从而减少了内存的开销,并提高程序的效率,可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。

2022-12-15 12:47:21 1603 2

转载 【Verilog】时间尺度预编译指令

timescale指令我相信大家应该都不陌生,或多或少都见过,可能绝大部分人都能运用,但其实这个常用指令用起来还是有一些需要注意的。`timescale是Verilog语法中的一条预编译指令,通常用来指定仿真中时间的单位与精度。

2022-12-14 19:28:33 2596

原创 【Linux】VMware虚拟机安装Linux Mint系统

虚拟机软件:VMware Workstation ProMint系统镜像:linuxmint-20.3-cinnamon-64bit.iso。

2022-12-11 15:20:00 3104 1

原创 【Linux】定时任务crontab/at

在linux系统中定时任务常用两个命令crontab及at命令,两者区别在于crontab用于设置循环定时任务,即每隔一定时间或固定时间后启动对应任务命令;at用于设置一次性定时任务,在任务完成后定时任务即删除。

2022-12-09 22:13:18 1587

原创 【FPGA】SPI协议

SPI(Serial Perripheral Interface, 串行外围设备接口)是 Motorola 公司推出的一种同步串行接口技术。SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处理控制单元 (MCU) 上叫作同步串行端口(Synchronous Serial Port) 的模块(Module)来实现的, 它允许 MCU 以全双工的同步串行方式, 与各种外围设备进行高速数据通信。SPI接口主要应用在EEPROM、FLASH、实时时钟,AD转换器以及数字信号处理器和数字信

2022-12-02 22:44:09 3953

原创 【FPGA】I2C协议

I2C 即 Inter-Integrated Circuit(集成电路总线),是由 Philips 半导体公司(现在的 NXP 半导体公司)在八十年代初设计出来的一种简单、双向、二线制总线标准。多用于主机和从机在数据量不大且传输距离短的场合下的主从通信。主机启动总线,并产生时钟用于传送数据,此时任何接收数据的器件均被认为是从机。I2C 总线由数据线 SDA 和时钟线 SCL 构成通信线路,既可用于发送数据,也可接收数据。

2022-11-28 21:47:35 2455

原创 【Linux】通配符及正则表达式grep、sed

grep(greprint out the line),全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。

2022-11-24 16:50:01 2691

原创 【FPGA】UART协议

FPGA相关UART串口相关知识

2022-11-20 19:49:11 735

原创 【python】numpy随机抽样

numpy.random 模块对 Python 内置的 random 进行了补充,增加了一些用于高效生成多种概率分布的样本值的函数,如正态分布、泊松分布等。

2022-09-13 14:42:57 4405

原创 【Linux】shell中$( )、${ }、$(( ))的区别

1、$( )命令在bash中,$( )与` `(反引号,Esc下面)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。[root@localhost ~]# echo today is $(date "+%Y-%m-%d")today is 2017-11-07[root@localhost ~]# echo today is `date "+%Y-%m-%d"`today is 2017-11-07

2022-05-14 19:48:32 686

原创 常用IDE正则表达式

notepad++、vscode、pycharm等常用IDE正则表达式整理

2022-05-08 10:56:34 775

原创 【FPGA】RGMII接口

1、RGMII 接口概要以太网的通信离不开物理层 PHY 芯片的支持,以太网 MAC 和 PHY 之间有一个接口,常用的接口有MII、 RMII、 GMII、 RGMII 等。MII(Medium Independent Interface, 媒体独立接口): MII 支持 10Mbps 和 100Mbps 的操作,数据位宽为 4 位在 100Mbps 传输速率下,时钟频率为 25Mhz 在 10Mbps 传输速率下,时钟频率为 2.5MhzRMII(Reduced MII): RMII 是 M

2022-04-29 21:57:04 26436 3

原创 【FPGA】Questasim使用入门指导

QuestaSim工具使用1

2022-04-23 22:08:47 3294 3

原创 【FPGA】Xilinx原语

Xilinx原语使用方法

2022-04-23 10:46:37 2139

原创 【Linux】VIM使用

第一节 Vim常用操作Vim没有菜单,只有命令。Vim的工作模式有三种:第一种:命令模式 vi/vim+文件名 进入命令模式 不可以输入文字,只能识别命令插入命令:a:在光标所在字符后插入i:在光标所在字符前插入o:在光标下插入新行A:在光标所在行尾插入I:在光标所在行行首插入O:在光标上插入新行第二种:插入模式 按i/a/o进入,可以继续输入文字,按Esc退出第三种:编辑模式 在命令模式下按:,即可进入 编辑模式 可以输入编辑命令 比如:保存并退出,加行号定位命令::set

2022-04-14 22:29:43 161

LwIP协议栈的设计与实现-中文译稿

LwIP 是 TCP/IP 协议栈的一个实现。它的目的是减少内存使用率和代码大小,使 LwIP 适 用于资源受限系统比如嵌入式系统。为了减少处理和内存需求,LwIP 使用不需要任何数据 复制的经过裁剪的 API。 本文描述了 LwIP 的设计与实现。描述了在协议栈实现中以及像内存与缓冲管理这样的 子系统中使用的算法和数据结构。本文还包括 LwIP 的参考手册以及使用 LwIP 的代码例子。

2023-01-04

ug896-vivado-ip中文说明

赛灵思 Vivado Design Suite 可提供围绕 IP 的设计流程,支持您将来自各种设计的 IP 模块添加到自己的设计中。此环 境的核心是可扩展的 IP 目录 (IP catalog),其中包含赛灵思提供的即插即用 IP。 IP catalog 可通过添加以下内容来加以 扩展: • 来自 System Generator for DSP 设计的模块 (源自 Simulink 算法的 MATLAB)。 • Vivado 高层次综合 (HLS) 设计 (C/C++ 算法) • 第三方 IP • 使用 Vivado IP 封装器工具封装为 IP 的设计

2023-01-04

xilinx原语的使用方法

原语,其英文名字为 Primitive,是 Xilinx 针对其器件特征开发的一系列常用模块的名字,用户可以将其看成 Xilinx 公司为用户提供的库函数,类似于 C++中的“cout”等关键字,是芯片中的基本元件,代表 FPGA中实际拥有的硬件逻辑单元,如 LUT,D 触发器,RAM 等,相当于软件中的机器语言。在实现过程中的翻译步骤时,要将所有的设计单元都转译为目标器件中的基本元件,否则就是不可实现的。原语在设计中可以直接例化使用,是最直接的代码输入方式,其和 HDL 语言的关系,类似于汇编语言和 C 语言的关系。 Xilinx 公司提供的原语,涵盖了FPGA开发的常用领域,但只有相应配置的硬件才能执行相应的原语,并不是所有的原语都可以在任何一款芯片上运行。在Verilog 中使用原语非常简单,将其作为模块名直接例化即可。本节以Virtex-4平台介绍各类原语,因为该系列的原语类型是最全面的。其它系列芯片原语的使用方法是类似的。

2022-12-19

FPGA至简设计原理与应用

FPGA 的全称为Field-Programmable Gate Array,即现场可编程门阵列。在开始学习FPGA 之前,同学们首先应该清楚地了解FPGA 的概念,明白FPGA 到底是什么东西,可以用来做什么。FPGA 是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。简而言之,FPGA 就是一个可以通过编程来改变内部结构的芯片。 直观来说,FPGA 就是一个可以“改变”内部结构的芯片,而让这个芯片来实现怎样的功能,就需要通过编程即设计硬件描述语言,经过EDA 工具编译、综合、布局布线成后转换为可烧录的文件,最终加载到FPGA 器件中去,改变FPGA 内部的连线,最终完成所实现的功能。此时的FPGA 就可以认为是用来实现具体功能的一个粗糙的芯片。

2022-12-18

AMBA AXI and ACE Protocol Specification AXI3/AXI4/AXI4-Lite ACE

This preface introduces the AMBA AXI and ACE Protocol Specification. It contains the following sections: • About this specification on page x • Using this specification on page xi • Conventions on page xiii • Additional reading on page xv • Feedback on page xvi. About this specification This specification describes: • the AMBA 3 AXI protocol release referred to as AXI3 • the AMBA 4 AXI protocol releases referred to as AXI4 and AXI4-Lite • the AMBA 4 protocol releases referred to as ACE and ACE-L

2022-12-18

AMBA 4 AXI4-Stream Protocol version1.0

This preface introduces the AMBA 4 AXI4-Stream Protocol Specification. It contains the following sections: • About this book on page ix • Feedback on page xii. About this book This book is for AMBA 4 AXI4-Stream Protocol Specification. Intended audience This book is written for hardware and software engineers who want to become familiar with the Advanced Microcontroller Bus Architecture (AMBA) and engineers who design systems and modules that are compatible with the AMBA 4 AXI4-Stream protocol.

2022-12-18

CAN协议英文原版BOSCH CAN协议2.0

The acceptance and introduction of serial communication to more and more applications has led to requirements that the assignment of message identifiers to communication functions be standardized for certain applications. These applications can be realized with CAN more comfortably, if the address range that originally has been defined by 11 identifier bits is enlarged CAN implementations that are designed according to part A of this or according to previous CAN Specifications, and CAN implement

2022-12-18

802.3协议2018年英文原版,详细介绍IEEE Standard for Ethernet

802.3协议2018年英文原版,详细介绍IEEE Standard for Ethernet

2022-12-18

4线DDR SPI协议 1,概要 2,协议信号线 3,工作模式 4,传输 5,字节流协议 6,写操作 7,读操作 8,文件

4线DDR SPI协议 1,概要 2,协议信号线 3,工作模式 4,传输 5,字节流协议 6,写操作 7,读操作 8,文件

2022-12-18

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

TA关注的人

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