自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 从零开始写riscv cpu十之最长路径时序优化(乘法代码优化)

两种写法在 7 系列 FPGA 上的综合结果是确定可推的——DSP48E1 的乘法位宽是 25×18,任何超过这个位宽的乘法都会被拆成"DSP 级联链 + 部分拼接逻辑",拆法由操作数位宽唯一决定。

2026-07-27 12:43:00 364

原创 vivado使用那些事之优化时序利用implemention实现策略

Report Options Strategy 决定"跑完后给你看什么报告";Options Strategy 决定"用什么样的算法把你的设计布进芯片里"。两者是。

2026-07-24 19:40:36 333

原创 从零开始设计riscv cpu九之降低LUT使用量语法技巧

复位分支的真正代价不是它自己生成的电路,而是它剥夺了综合器把表映射成 RAM 的权利。删掉它、用initial赋初值(FPGA 比特流配置时免费写入),选择权就回来了。

2026-07-24 14:44:50 772

原创 从零开始设计riscv cpu之八

于是每条分支会收敛到更适合它的预测器——规律性依赖全局历史的分支信 gshare,自身规律强的分支信 bimodal。两家预测相同时,选谁都对、选谁都错,这次结果不含任何"谁更好"的信息;——循环计数类分支(局部规律强)收敛到 bimodal,路径相关分支(受前面分支影响)收敛到 gshare,整个预测器对不同类型的程序都有良好的适应性。最高位就是预测结果,低位提供"抗抖动"能力——单次结果不会立刻翻转预测。同样的思想放到锦标赛上:选择器要"预测"的不是跳不跳,而是。看错,然后根据实际跳没跳更新。

2026-07-23 20:23:54 451

原创 从零开始设计riscv cpu记录之七

恰好为 0,被当成已训练的分支,跳转到一个完全错误的目标地址。——取指直接跳回地址 0。而复位向量就在低地址,等于。,查到未初始化的项都会"命中",然后拿到。:一个从未被训练过的分支,因为。为 0 的 PC 都会。

2026-07-23 15:46:15 331

原创 vivado使用那些事之使用过约束技巧提高频率

提前把"水分"挤掉,给布线阶段预留 5~20% 的余量。

2026-07-23 13:40:18 334

原创 从零开始设计riscv cpu记录之六

是 IF 阶段的推测性下一 PC,表示 IF 想取下一条指令,但是只有前端允许推进时才能生效,所以。并不是把原跳转优先级降低,而是在 hold 与 PC+4 之间新增了一个预测层。是 EX 阶段已经确认的实际跳转结果,不是预测。是 EX 已确认预测错误后的真实恢复,完全等价于原来的。,所以真实跳转与 hold 通常不会同时有效。,仍必须高于 hold;

2026-07-20 14:57:40 427

原创 coremark移植坑之INITIAL冲突导致失败

RAM 内容为空,仿真失败 ❌。之后再加载程序,避免竞争。

2026-07-20 11:17:02 315

原创 coremark移植坑之-nostartfiles -nostdlib参数

> 想象你买了一套毛坯房(裸机芯片),里面什么都没有——没有地板、没有水电、没有天然气。现在你想直接搬进去住(运行 CoreMark 程序)。就像拎包入住精装公寓,你什么都不用操心:如果直接按正常方式编译,链接器会尝试调用精装公寓的基础设施,结果当然是崩溃——因为毛坯房里没有这些管道接口。> 入口点错误> 默认启动文件 会尝试调用操作系统接口(如 Linux 的 ),但裸机没有操作系统,CPU 上电后直接跳到 函数地址,根本找不到这些入口。> 标准库函数悬空> 想往 输出,但裸机没有终端; 想向

2026-07-19 21:06:31 357

原创 FPGA部署卷积神经网络识别MINST图片

输入图片:

2026-07-19 13:05:12 405

原创 CoreMark 移植

就是一座桥——桥这边是 CoreMark 那套与平台无关的纯 C 算法,桥那边是你手头的具体芯片(STM32、RISC-V等等)。是唯一的"定制件"。在不同的芯片上运行,改这一份就行。startup.s 上电搬运(.data 进 RAM,.bss 清零,栈就位)),它们各自为政,不知道自己的最终住址。就是靠这些符号才知道"搬多少、搬到哪、清零到哪"。,用汇编写的,因为这时候 C 的运行环境还没搭好。它像一位凌晨四点的物业管家,在住户(是这座桥的主体工程。编译器生成的是一堆零散的目标文件(

2026-07-14 15:43:21 220

原创 vivado使用那些事之综合策略

就像公司突然财大气粗,同样的活雇两个人干,LUT 和 FF 咔咔暴涨,但关键路径瞬间畅通——就是老板抠门,让一个人干三份活,LUT 是省了,但信号绕来绕去累到虚脱,时序直接摆烂。工具能做的,不过是在"面积-速度"这个跷跷板上,帮你把屁股挪到相对舒服的位置罢了。:专门针对进位链(Carry Chain)的优化策略,调整进位链的使用阈值。:先用默认策略跑通流程,建立基线,再根据资源或时序瓶颈切换其他策略。:执行激进的通用面积优化,尽可能减少 LUT、FF 等资源占用。:牺牲优化质量以换取最短综合时间。

2026-07-13 21:34:32 456

原创 从零开始设计riscv cpu记录之五

两个 64 位数相乘,取高 32 位,就是。

2026-07-10 20:59:24 289

原创 从零开始设计riscv cpu记录之四

后边的逻辑end。

2026-07-08 21:13:59 380

原创 从零开始设计riscv cpu记录之三

区别就在这里,万一0号寄存器中不是0,就出错了。所以,采用强制输出是正确的。两个读端口,读采用组合逻辑。一个写端口,写采用时序逻辑。两种写法的区别在于,而上面给出的代码是要。

2026-07-08 18:03:17 248

原创 RIDECORE学习记录之二

BHR(Branch History Register,分支历史寄存器)记录最近一段时间分支“跳/不跳”的历史。PHT(Pattern History Table,模式历史表)表中每个项是2-bit 饱和计数器,用来给出 Taken / Not Taken 预测。PC取当前分支指令地址中的一部分位,与 BHR 一起生成索引。存放分支源地址和目标地址,用来在预测跳转时给出预测目标地址。用一话总结:Gshare = BHR + PHT + PC异或索引 + BTB。

2026-06-30 14:52:08 536

原创 RIDECORE学习记录之一

0.项目根目录文件/目录说明README.md项目说明文档,包含工具链安装、使用方法等LICENSE开源许可证.gitignoreGit 忽略规则doc/项目文档目录src/源代码目录(FPGA 设计与测试)toolchain/辅助工具链目录doc/ — 文档目录文件说明英文版详细设计文档(建议优先阅读)日文版设计文档所支持的 RISC-V 指令子集说明仓库文件结构说明文档src/fpga/ — 核心 RTL 源代码该目录包含约 50 个 Verilog 文件,实现了完整的乱序超标量处理器。

2026-06-29 14:02:54 361

原创 从零开始设计riscv cpu记录之二

目前写的代码,是最简单的基本的思路,后期再慢慢添加控制逻辑,逐步完善。

2026-06-29 11:43:41 67

原创 tinyriscv学习记录之五

阅读代码,熟悉的感觉又出现了:反复咀嚼,难以下咽。和阅读div.v的代码时候一样,看代码找不到突破口的话,那么突破口就是不熟悉试商法的原理,我想在clint.v也是一样。如果清楚中断处理的过程,那么clint.v的代码也就能看明白。所以,还是先搞懂中断处理的流程,弄清需要中断需要做哪些事。这时不会走 mepc -> mstatus -> mcause 这一套进入中断流程, 而是进入:S_CSR_MSTATUS_MRET。在RISC-V 这种架构里,中断/异常处理和 CSR 寄存器分不开的。

2026-06-29 10:49:29 336

原创 从零开始设计riscv cpu记录之一

的职责是“译码 + 准备操作数”,不是“最终执行并写回结果”。的职责是“根据操作数和指令类型生成执行结果”。一旦开了这个口子,你的写回数据来源会开始分散,或直通某路结果”的规则,就能处理很多指令。也走统一通路,那么 EX 级只要做一次“结论:flush的优先级更高。所以应该执行flush。的职责就会慢慢变重。

2026-06-27 17:32:01 739

原创 tinyriscv学习记录之四

的 CPU 现场,才能安全地查看、修改和单步控制处理器。时要暂停整条流水线,是因为调试器需要一个。

2026-06-24 23:29:20 324

原创 tinyriscv学习记录之三

这两句在同一拍,在同一个时钟周期里,minuend 和 dividend_r 看到的都是“旧值”。除法模块,顾名思义,就是做除法运算的呗。概念很简单,接口也很明了,接收来自ex模块的除数、被除数等数据,算就是了,没啥难点。除法模块的代码反复咀嚼,难以下咽的感觉,对于刚入门verilog的我不太友好。但就是到了自己去动手实现写代码的时候,手高眼低,写不出来代码,虽然原理很简单。试商法是说,每次移入一位被除数的最高位,然后和除数作差,够就商1,不够商0。所以就有,除法运算会至少32周期,因为被除数是32位的。

2026-06-23 16:20:30 445

原创 tinyriscv学习记录之二

首先明确ex.v是组合逻辑,输出会随着输入改变而改变。ex.v的输入主要是id_ex.v,这是一个时序逻辑,会在时钟上升沿改变输出,也就是ex.v的输入。所以说,ex.v随着id_ex.v在时钟上升沿改变。ex.v不给div结果写入地址的前提是ex.v能自己在div计算期间(大约33个周期)保存写入寄存器地址,但是ex.v并不能保存计算结果地址。所以,在除法运算期间,id_ex.v会把传给ex.v的inst变为nop指令,所以,ex,v中存不住除法计算结果要写回的寄存器。

2026-06-20 13:05:55 237

原创 tinyriscv学习手记之一

if (!endendendmodulehold_en 并不是传统意义上的"保持当前值",而是"插入气泡"——当流水线某级需要暂停时,向后级传递一个预定义的默认值(通常是 NOP 或无效标记),而不是让上游的 din 继续往下传。

2026-06-19 22:20:58 284

原创 从零开始动手做Verilog实验--04--11阶FIR滤波器

1.FIR滤波器(Finite Impulse Response Filter)的中文名叫做有限长单位冲激响应滤波器2.它的作用就是对输入的数字信号进行“加工”,比如滤除不需要的噪音,或者提取特定频率的信号。3.看代码更简单。

2026-05-12 14:29:58 294

原创 从零开始动手做Verilog实验--03--自动售卖机

本文实现了一个自动售货机的Verilog HDL设计,接受0.5美元和1美元纸币,商品定价1.5美元。设计采用有限状态机控制,包含空闲、半美元、一美元等5种状态。代码实现了投币、找零和出货功能,并通过仿真验证了基本投币流程。仿真结果显示系统能正确响应0.5美元投币操作,状态转换符合预期。该设计为自动售货机提供了基础的数字电路实现方案。

2026-05-11 23:17:06 122

原创 从零开始动手做Verilog实验--02--模为60的BCD加法器

本文介绍了一个模为60的BCD加法器设计,该电路用于六十进制计数,计数范围为0-59。文章包含Verilog实现代码和测试仿真,重点分析了计数器的两个关键功能:59后归零跳变和加载数据功能。仿真结果显示,计数器在59后能正确归零并产生进位信号,同时成功实现了数据加载功能。该设计采用8位输出(高4位为十位,低4位为个位),通过时钟信号控制计数过程,具有复位、加载和进位功能,适用于需要六十进制计数的应用场景。

2026-05-11 18:03:53 440

原创 从零开始做Verilog实验--01--4位计数器

本文介绍了Verilog实验的第一天内容,目标是掌握FPGA开发。实验实现了一个4位计数器模块counter4.v,包含时钟(clk)、复位(rst)输入和计数器(cnt)输出。测试文件counter4_tb.v通过时钟翻转和复位信号控制进行仿真验证,仿真结果显示计数器在220ns时成功计数为1,延长仿真时间后计数增加。实验成功验证了计数器模块的基本功能,为后续FPGA开发奠定了基础。

2026-05-11 16:32:14 309

原创 图的表示方法

节点 A 有 3 个邻居,节点 B 有 100 个邻居 → 无法像图像那样用“3×3 卷积核”统一处理。图的节点顺序可以任意打乱,但图的语义不变 → 传统神经网络(依赖输入顺序)无法直接处理。图中的节点没有天然的 (x, y, z) 坐标(可视化布局 ≠ 真实位置)。因为深度学习模型无法直接处理“图”这种非欧几里得、不规则的结构数据,两个节点之间的“距离”是最短路径长度(跳数),而不是欧氏距离。在社交网络中,“朋友的朋友”可能比地理上更近的人更“相关”。你不能说“节点 A 在节点 B 的正东方向”。

2025-12-24 22:04:47 403

原创 图数据挖掘

从这些复杂的连接关系中提取有价值的信息,而不仅仅是分析孤立的数据点。也就是,图数据挖掘 = 从“关系”中挖“知识”。图数据挖掘也叫做图数据机器学习。

2025-12-24 21:49:09 526

原创 数据挖掘14

知识抽取就是把“杂乱的文字”变成“结构化的知识”,让机器不仅能“读”,还能“懂”。原始句子:“特斯拉CEO埃隆·马斯克于2022年收购了推特。知识抽取结果:埃隆·马斯克(人物)特斯拉(组织)推特(组织)2022年(时间)(埃隆·马斯克, 担任, 特斯拉CEO)(埃隆·马斯克, 收购, 推特)事件类型:企业收购买家:埃隆·马斯克被收购方:推特时间:2022年。

2025-12-20 10:57:20 360

原创 数据挖掘13

过多的无关或冗余特征会增加模型复杂度,使模型“记住”训练数据中的噪声,从而在新数据上泛化能力变差。举个例子:如果你要预测一个人是否会贷款违约,那么“信用记录”很重要,“头发颜色”就不重要。保留它们不仅无益,反而有害。比如“年龄”还是“年龄”,不会变成“标准化后的年龄”或“年龄平方”。所以特征子集选择会优先保留那些和任务目标相关的特征。例如:同时包含“年龄”和“出生年份”是冗余的。特征越少,模型训练所需的时间和内存就越少。特征越少,越容易理解模型是如何做出决策的。特征的原始意义保持不变,容易理解和解释。

2025-12-20 10:53:26 316

原创 数据挖掘11

从原有的数据中删除不重要或不相关的属性,或者对属性重组来减少属性的个数。

2025-12-19 14:23:45 354

原创 数据挖掘12

首先,通过人工定义或学习类别的语义属性(如形状、颜色等),将类别映射到属性空间。然后,模型学习从输入数据到属性向量的映射。最后根据属性匹配来识别新类别。给定一张图片,如何提取区分其中目标类型的特征,即形成目标的表示。

2025-12-19 10:03:37 1019

原创 数据挖掘09

条件随机场(Conditional Random Field, CRF) 是一种用于建模序列标注或结构化预测问题的判别式概率图模型。

2025-12-18 15:15:35 151

原创 【炒股学习】集合竞价

9.15 - 9.20对于普通人来说没有意义。9:25 是集合竞价结束的时间,此时已经确定了当天的开盘价。9:25–9:30 的挂单不影响开盘价(因为开盘价在9:25就定好了)。这5分钟只是让你“提前排队”,等9:30一到,就能快人一步参与交易。

2025-12-18 13:30:46 616

原创 数据挖掘10

*循环神经网络(Recurrent Neural Network, RNN)**是一种专门用于处理序列数据的神经网络结构。

2025-12-17 21:41:51 390

原创 数据挖掘08

把未知量伸长或者缩短到参考模式的长度。然后使用动态规划方法把被比较的数据扭曲或者弯折,时期特征与模型特征对齐。比如:DTW**隐马尔可夫模型(Hidden Markov Model, HMM)**是一种经典的概率图模型,用于建模含有隐藏状态的时序随机过程。

2025-12-17 21:30:06 423

原创 数据挖掘07

按时间排列的观测数据的序列。在进行数据挖掘时,必须考虑数据间存在的时间关系。DTW(Dynamic Time Warping,动态时间规整) 是一种用于衡量两个时序序列相似度的算法,特别适用于长度不同、速度不一致或存在时间偏移的时间序列。

2025-12-16 19:01:32 607

原创 数据挖掘06

在模式识别中,不变性指的是:当输入数据发生某种变换(如平移、旋转、缩放、光照变化等)时,模型的输出(如分类结果)保持不变。例如:一张猫的图片向左移动几个像素,模型仍应识别为“猫” → 平移不变性池化(Pooling)是卷积神经网络(CNN)中一种重要的下采样(downsampling)操作。

2025-12-16 18:06:28 1384

黑金AX7035B开发板用户手册REV1.0

黑金AX7035B开发板用户手册REV1.0,免费下载,供大家使用

2026-06-15

AX7Z035B开发板用户手册

内容概要:本文详细介绍了AX7Z035B开发板的用户手册,免费资源,供大家下载使用

2026-06-12

按键扫描数码管显示模块

按键扫描数码管显示模块

2025-12-12

自定义文件时间工具,办公

在某些情境下,我们需要修改文件的时间,包括文件的创建时间,最近修改时间,可以使用这个程序完成。

2025-12-12

表格拆分工具,按照表格中某列的值,拆分表格

表格拆分工具能根据指定列的值,将一份包含多类数据的原始表格自动拆分为多个独立子表,每个子表仅包含该列某一特定值对应的全部行。无论是按部门、地区、产品类别还是客户类型进行拆分,该工具都能一键完成,操作简便、高效准确,特别适合需要频繁整理、分类或分发结构化数据的办公与分析场景。 有使用问题可留言,看到必回答。

2025-12-11

java Swing gui 信息管理系统

有两个界面,第一个为登录界面,用户名和密码正确后,关闭第一个页面,显示第二个页面,可添加多人信息,也可只设置个人信息。采用Swing方法

2020-10-31

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

TA关注的人

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