- 博客(40)
- 收藏
- 关注
原创 Linux环境下将MATLAB代码转换为可执行文件
通过以上步骤,可在Linux系统中实现MATLAB代码的编译与部署。注意不同MATLAB版本可能存在命令差异,建议参考官方文档调整操作。• 若目标机器无MATLAB环境,需后续部署。:组件技术文件(需与可执行文件一同分发):自动生成的运行脚本(含MCR路径配置)• 确保MATLAB已安装且包含。:Linux可执行文件(无扩展名)),且文件名与函数名一致。命令生成可执行文件(以。
2025-03-17 17:07:04
714
原创 【SpinalHDL】Scala/SpinalHDL联合编程之实例化
在构造阶段,使用 Scala 数据类型来参数化硬件设计。硬件信号(如 Bool)只能在硬件描述内部使用,表示硬件运行时的信号,不应用于控制硬件的生成。避免在 Scala 控制流中使用硬件信号,以防止产生不可预测的行为和层次结构问题。希望这能帮助你理解为什么不能使用 Bool 作为构造函数的参数,以及在 SpinalHDL 中如何正确地参数化硬件设计。
2024-09-16 15:45:27
1598
5
原创 【SpinalHDL】Scala编程之伴生对象
Scala中的伴生对象是指和在同一个文件中声明的,并且和类同名的对象。),这意味着这个类中的方法可以工作,因为它可以访问它的伴生对象中的字段: printFilename HiddenFilename。伴生对象中的方法就像一个工厂方法,Scala的语法糖允许你使用上面的语法,不用关键字就能创建新的类实例: apply new。为了演示这个功能是如何工作的,下面是一个类名和它的伴生对象中的方法: Personapply。伴生对象提供的功能远不止这些,我们将在本课剩下的内容中演示它的几个最重要的功能。
2024-09-16 11:36:55
1163
原创 【FPGA】HDMI参数信息汇总
文章列举已知大部分个人电脑屏幕尺寸信息,主要包括720p 1080p 2k 1440p 4k 5k以及8k屏幕。屏幕水平一行包括同步脉冲、后沿间隔、活跃像素、前沿间隔;屏幕垂直包括同步脉冲、后沿间隔、活跃行数、前沿间隔。
2024-08-25 20:42:19
1553
原创 【python】pytest可选项
pytest是 Python 中常用的测试框架,它提供了许多命令行可选项(options)来增强测试功能和控制测试流程。下面是pytest。
2024-08-20 11:33:28
726
原创 【python】python模板Jinja2
Jinja2 是一个现代的、设计优雅的 Python 模板引擎。它被广泛用于生成动态网页内容,但它也可以用于其他文本生成任务。本文将详细介绍如何在使用 Jinja2 库,并通过丰富的示例演示其强大的功能。
2024-07-18 19:54:51
1386
原创 【python】python装饰器
Python装饰器(Decorator)是一种设计模式,允许你在不修改函数代码的前提下,增强或修改函数的功能。装饰器本质上是一个高阶函数,它接收一个函数作为参数,并返回一个增强后的函数。下面我们详细介绍Python装饰器的概念、使用场景及实现方法。
2024-07-16 19:50:57
1199
原创 【SpinalHDL】Scala编程中的class及case class
本篇文章仅简单介绍在spinalhdl编程中遇到的比较常见的2中类定义方式:class及case class。对于不太了解JAVA或Scala编码又开始学习SpinalHDL的人进行入门介绍。在 SpinalHDL 中,case class 和 class 都是用来定义数据结构或对象的关键字,它们在某些方面相似,但也有一些显著的差异。
2024-04-14 22:15:31
1582
1
原创 【SpinalHDL】Scala编程中的var及val
虽然val声明的变量在赋值后不可再修改,但在硬件描述语言中,时序逻辑通常是通过连续赋值或者组合逻辑来实现的,而不是通过对变量的重新赋值来实现的。在这个例子中,reg是一个val声明的变量,但它的值在时钟的上升沿处被赋值为dataIn,这种赋值操作与val的不可变特性并不矛盾,因为赋值操作不是修改变量的值,而是生成硬件逻辑来实现寄存器行为。举个例子,如果您想实现一个时钟边沿触发的寄存器,可以使用Reg来声明寄存器,并在时钟的上升沿或下降沿处进行赋值操作。这样即使使用val声明,也不会影响到时序逻辑的开发。
2024-04-11 18:58:11
1252
原创 【Cocotb】cocotbext-axi拓展库
用于Cocotb的AXI接口模块,GitHub仓库:介绍AXI、AXI lite和AXIStream仿真模型安装文档和使用示例请参阅tests目录、和以获取使用这些模块的完整测试台。
2024-01-14 19:01:14
1956
原创 【SpinalHDL】代码生成功能
在学习SpinalHDL学习的时候,大部分人可能已经掌握了一种或多种IC设计语言,例如verilog、vhdl或system verilog等。在最开始学习新的语言时,个人习惯是比较新语言代码与原来熟悉的语言代码相比较,这就用了SpinalHDL中非常常用的代码生成功能。SpinalHDL从语言层次上来看是数字设计抽象语言,相比与verilog/vhdl/system verilog等语言更具抽象化,在实际使用过程中也是更多的利用SpinalHDL编写程序后转化为以上语言。本篇文章主要讲解如何将编写的S
2023-09-23 17:04:36
791
转载 【makefile】跟我一起写 Makefile
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不得不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。
2023-08-27 20:21:34
844
原创 【SpinalHDL】结构语句
简单介绍在SpinalHDL编程中使用到的结构语句,主要包括赋值语句、选择语句,由于SpinalHDL中没有循环语句,这里在不介绍。
2023-05-10 13:45:39
738
原创 【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
1192
原创 【AMBA】ARM总线-APB/AHB/AXI介绍
什么是总线?首先,在学习AMBA总线之前,我们先对总线下一个定义。根据维基百科的定义:总线(Bus)是指计算机组件间规范化的交换数据(data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。根据chatgpt的解释:总线(Bus)是计算机中用于传输数据、地址和控制信号的一组共享的物理电线或逻辑路径。通过总线,不同的组件和设备可以相互通讯,并进行数据交换。计算机系统中的总线可以分为多种类型,如地址总线、数据总线、控制总线等,它们都有各自的作用和特点。
2023-05-02 09:20:28
4639
原创 【SpinalHDL】组件Component和包Bundle
在SpinalHDL中,Component和Bundle都是用于定义硬件模块的关键词,但它们的用途和作用略有不同。
2023-04-30 20:53:46
766
原创 【SpinalHDL】Windows10系统搭建SpinalHDL 开发环境
本文主要记载如何从零开始在win平台搭建SpinalHDL开发环境并跑通第一个spinal project demo。
2023-03-22 22:30:07
4269
18
原创 【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
670
原创 【SpinalHDL】java.io.IOException: Cannot run program “sh.exe“问题解决
【Spinal】java.io.IOException: Cannot run program “sh.exe“问题解决
2023-03-21 12:35:37
1196
1
原创 【Linux】Mint20.3系统安装Anaconda环境
Anaconda是非常方便的python开发IDE环境,其中不仅包含了很多常用python库还有Spyder运行环境。Mint系统是近些年非常受欢迎的linux系统,易上手已操作特性使其普及非常快。本篇介绍在Mint20.3系统安装Anaconda环境。
2022-12-18 10:29:38
440
原创 【FPGA】Mint20.3系统安装VCS2018环境
mint系统是目前新手入手linux系统最为容易的系统版本,其界面与Windows系统高度重合。vcs是IC开发常用的系统仿真工具,但vcs工具的安装是一个很头疼的事情,本篇展现在mint20.3系统安装vcs2018的全过程。
2022-12-17 12:34:30
1206
转载 【Verilog】条件编译指令
一般情况下,C语言中的每一行代码都要参加编译。但有时候出于对程序代码优化的考虑,希望只对其中一部分内容进行编译,此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译(conditional compile)。条件编译允许只编译源文件中满足条件的程序段,使生成的目标程序较短,从而减少了内存的开销,并提高程序的效率,可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。
2022-12-15 12:47:21
2144
3
转载 【Verilog】时间尺度预编译指令
timescale指令我相信大家应该都不陌生,或多或少都见过,可能绝大部分人都能运用,但其实这个常用指令用起来还是有一些需要注意的。`timescale是Verilog语法中的一条预编译指令,通常用来指定仿真中时间的单位与精度。
2022-12-14 19:28:33
3624
原创 【Linux】VMware虚拟机安装Linux Mint系统
虚拟机软件:VMware Workstation ProMint系统镜像:linuxmint-20.3-cinnamon-64bit.iso。
2022-12-11 15:20:00
4346
1
原创 【Linux】定时任务crontab/at
在linux系统中定时任务常用两个命令crontab及at命令,两者区别在于crontab用于设置循环定时任务,即每隔一定时间或固定时间后启动对应任务命令;at用于设置一次性定时任务,在任务完成后定时任务即删除。
2022-12-09 22:13:18
1714
原创 【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
4391
原创 【FPGA】I2C协议
I2C 即 Inter-Integrated Circuit(集成电路总线),是由 Philips 半导体公司(现在的 NXP 半导体公司)在八十年代初设计出来的一种简单、双向、二线制总线标准。多用于主机和从机在数据量不大且传输距离短的场合下的主从通信。主机启动总线,并产生时钟用于传送数据,此时任何接收数据的器件均被认为是从机。I2C 总线由数据线 SDA 和时钟线 SCL 构成通信线路,既可用于发送数据,也可接收数据。
2022-11-28 21:47:35
3147
原创 【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
3179
原创 【python】numpy随机抽样
numpy.random 模块对 Python 内置的 random 进行了补充,增加了一些用于高效生成多种概率分布的样本值的函数,如正态分布、泊松分布等。
2022-09-13 14:42:57
4603
原创 【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
895
原创 【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
27809
3
原创 【Linux】VIM使用
第一节 Vim常用操作Vim没有菜单,只有命令。Vim的工作模式有三种:第一种:命令模式 vi/vim+文件名 进入命令模式 不可以输入文字,只能识别命令插入命令:a:在光标所在字符后插入i:在光标所在字符前插入o:在光标下插入新行A:在光标所在行尾插入I:在光标所在行行首插入O:在光标上插入新行第二种:插入模式 按i/a/o进入,可以继续输入文字,按Esc退出第三种:编辑模式 在命令模式下按:,即可进入 编辑模式 可以输入编辑命令 比如:保存并退出,加行号定位命令::set
2022-04-14 22:29:43
236
LwIP协议栈的设计与实现-中文译稿
2023-01-04
ug896-vivado-ip中文说明
2023-01-04
xilinx原语的使用方法
2022-12-19
FPGA至简设计原理与应用
2022-12-18
AMBA AXI and ACE Protocol Specification AXI3/AXI4/AXI4-Lite ACE
2022-12-18
AMBA 4 AXI4-Stream Protocol version1.0
2022-12-18
CAN协议英文原版BOSCH CAN协议2.0
2022-12-18
802.3协议2018年英文原版,详细介绍IEEE Standard for Ethernet
2022-12-18
4线DDR SPI协议 1,概要 2,协议信号线 3,工作模式 4,传输 5,字节流协议 6,写操作 7,读操作 8,文件
2022-12-18
windows10系统安装modelsim2020.4,双击exe文件没有任何反应
2024-05-04
优快云自己主页的文章无法显示
2023-05-04
pycharm/vscode编码差异导致乱码问题
2023-03-16
git submodule update报错
2023-02-01
vcs+verdi联合仿真编译问题
2023-01-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人