自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (4)
  • 收藏
  • 关注

原创 【ZYNQ】AXI-Quad-SPI SDK 开发记录 测试

代码中,摁住ctrl+左键 可以跳转到函数的定义,XSpi_ReadReg 就是寄存器读,通过基地址+偏移地址。如果接收的寄存器不是空的了,(说明有数据来了),就把DRR接收data寄存器的数据读到fifo缓存里面。3.检查状态寄存器SR,把缓存fifo发到tx的data寄存器(DTR)当发射tx 的fifo没有满的时候,把发射数据写进去。SR状态寄存器,读取SR寄存器32bit内容。4.开启spi设备,CR使能,CR清楚禁止位。最低位,LOOP 是否回环,默认0,不回环。2.定义缓存fifo。

2024-05-24 18:55:16 806 1

原创 vivado spi axiIP核控制 pynqz2

生成block 打开RTL ANALYSIS 然后 上面Winow打开 IO PORT分配端口。GPIO 和EMIO都开启。PL端时钟给80MHz。

2024-05-23 15:45:27 290

原创 第2.6讲 GPIO之MIO控制LED实验程序设计 36:24

查看【XGpioPs_SetDirectionPin】函数,在【xgpiops.c里面】ZYNQ7020 芯片的 BANK35 内,该 BANK 的供电电压为 3.3V。用的vitis 2019.2 步骤不一样,要新建一个工程,读入xsa,上面生成的。然后Bank500有16个IO口,Bank501有38个IO口,共54个;读取的xsa文件是vivado生成的wrapper,每次生成的都不一样。需要注意板子上的跳线帽,启动不是SD启动,是JTAG启动。右键,端口,选择make external。

2024-05-23 15:44:43 940

原创 pynq7020系列的资源有多少

查找表107,273 39.14 140,537 51.28查找表随机存储器17,457 12.12 19,524 13.56触发器67,278 12.27 81,453 14.95 Block RAMs ( 36 KB ) 264.5 29.00 457 50.11。pynq系列的资源有多少。Table 1: Zynq-7000 and Zynq-7000S SoCs (Cont'd)oo edemmeoDevice NameZ-7007S Z-7012S Z-7014SXC7Z012SXC7Z014SX

2024-05-07 16:42:35 399

原创 谷歌TPU(Tensor Processing Unit)

当客户使用更大的切片时,它还可以实现吞吐量的近线性改进,在切片大小增加 12 倍(从 512 个芯片到 6144 个芯片)的情况下实现 11.97 倍的吞吐量。TPU是用于神经网络工作负载的矩阵处理的专用集成电路(ASIC),TPU 的主要任务是矩阵处理,这是乘法和累加运算的组合。利用这种混合连接,Multislice 可实现多个切片的并行性,并且允许您为单个作业使用的 TPU 核心数量超出单个切片能够容纳的 TPU 核心数量。TPU Pod 中的 TPU 芯片的数量取决于 TPU 版本。

2024-04-26 11:40:07 1147 3

原创 Google Cloud 的 AI 超计算机架构的新增功能

我们利用 Nvidia NeMo 框架用于构建我们的工业实力模型,每秒生成 990,000 个单词,每月执行超过一万亿次 API 调用,我们提供的推理模型质量超过了拥有更大团队和预算的公司的模型,而所有这一切都可以通过 NeMo 框架来构建。在本周的 Next 大会上,我们将推出令人难以置信的 AI 创新,涵盖从 AI 平台和模型到 Gemini for Google Cloud 的 AI 辅助等各个方面,所有这些都以 AI 优化的基础设施为基础。所有这些创新都为我们的客户带来了令人难以置信的动力。

2024-04-26 09:47:55 890

原创 查看snn+transformer的网络内容

【代码】查看snn+transformer的网络内容。

2024-04-24 16:00:47 192

原创 cifar10训练结果

【代码】cifar10训练结果。

2024-04-24 16:00:04 109

原创 spikingjelly训练自己的网络---量化 --测试

我又提问了我要在这个上面进行16比特量化的修改,应该怎么修改?def。

2024-04-09 22:25:52 437

原创 spikingjelly学习-训练网络

 脉冲神经元的输出是二值的,而直接将单次运行的结果用于分类极易受到编码带来的噪声干扰。【在PyTorch中,钩子(hooks)是一种强大的工具,允许你在模型的前向传播(forward pass)或反向传播(backward pass)过程中插入自定义操作。就这个网络而言,只需要先去掉所有的激活函数,再将尖峰神经元添加到原来激活函数的位置,这里我们选择的是LIF神经元。在提供的代码段中,使用了一个前向钩子(save_hook)来保存神经网络某层在前向传播过程中的电压值(v)和脉冲值(s)。

2024-04-09 22:25:28 1066

原创 spikingjelly学习-使用单层全连接snn脉冲神经网络识别mnist数据集2,画图片

对应代码【https://spikingjelly.readthedocs.io/zh-cn/0.0.0.0.14/activation_based/lif_fc_mnist.html】

2024-03-25 16:53:00 309

原创 spikingjelly学习-使用单层全连接snn脉冲神经网络识别mnist数据集

脉冲神经元的输出是二值的,而直接将单次运行的结果用于分类极易受到编码带来的噪声干扰。因此一般认为脉冲网络的输出是输出层一段时间内的发放频率(或称发放率),发放率的高低表示该类别的响应大小。连接【https://spikingjelly.readthedocs.io/zh-cn/0.0.0.0.14/activation_based/lif_fc_mnist.html】【另外由于我们使用了泊松编码器,因此需要较大的 T保证编码带来的噪声不太大。每次网络仿真结束后,需要重置网络状态】

2024-03-25 16:52:41 865

原创 spikingjelly学习-梯度替代

直接使用冲激函数进行梯度下降,显然会使得网络的训练及其不稳定。对应地址【https://spikingjelly.readthedocs.io/zh-cn/0.0.0.0.14/activation_based/surrogate.html#】【SpikingJelly中替代函数的形状参数,默认情况下是使得替代函数梯度最大值为1,这在一定程度上可以避免梯度累乘导致的梯度爆炸问题。【在 神经元 中我们已经提到过,描述神经元放电过程的。

2024-03-22 12:32:35 439

原创 spikingjelly学习-监视器

可能的解释是,记录的发射率并不直接对应于每个IF层的神经元数量,而是反映了某种形式的平均或汇总统计信息,或者是由于代码中的逻辑错误导致错误地记录了数据。【x_seq是一个形状为[T, N, *]的张量,其中T=4表示时间步数,N=1表示批次大小,*表示输入特征的维度,这里是8。这里的确出现了一个不一致性,因为根据网络结构,第一个IF层的发射率应该是针对4个神经元的,而第二个IF层的发射率应该是针对2个神经元的。第一个IF层的发射率记录应该反映4个神经元的平均发射率,因此形状为[4]是合理的。

2024-03-22 12:32:06 1159

原创 spikingjelly学习-包装器

【常用的网络层,在 spikingjelly.activation_based.layer 已经定义过,更推荐使用 spikingjelly.activation_based.layer 中的网络层,而不是使用 SeqToANNContainer 手动包装,尽管 spikingjelly.activation_based.layer 中的网络层实际上就是用包装器包装 forward 函数实现的。StepModeContainer:这是一个更通用的包装器,它允许你控制包装的模块是以单步模式还是多步模式运行。

2024-03-21 16:28:59 1007

原创 spikingjelly学习-神经元

【surrogate_function() 在前向传播时是阶跃函数,只要输入大于或等于0,就会返回1,否则会返回0。print(torch.cuda.is_available()) # 查看当前cuda是否可用于当前版本的Torch,如果输出True,则表示可用。【释放脉冲消耗了神经元之前积累的电荷,因此膜电位会有一个瞬间的降低,即膜电位的重置。print(torch.version.cuda) # 编译当前版本的torch使用的cuda版本号。Soft方式:释放脉冲后,膜电位减去阈值电压:】

2024-03-21 16:28:25 316

原创 spikingjelly学习-基本概念

在内存受限时使用逐步传播,例如ANN2SNN任务中需要用到非常大的 T。因为在逐层传播模式下,对无状态的层而言,真正的 batch size 是 TN 而不是 N (参见下一个教程),当 T 太大时内存消耗极大。对应内容【https://spikingjelly.readthedocs.io/zh-cn/0.0.0.0.14/activation_based/basic_concept.html#】在使用梯度替代法训练时,通常推荐使用逐层传播。在正确构建网络的情况下,逐层传播的并行度更大,速度更快。

2024-03-14 21:45:53 518

原创 Fatal: Internal system error, cannot recover. The tool has just encountered a fatal error: If you

原因综合脚本改成compile ultra之后compile ultra -incremental,.sdc里面增加了对纯组合逻辑的时序约束,以及增加了对时序约束时钟树设置setidealnetwork和set dont touch的命令。dc综合报错,在使用dw工具的时候。

2023-11-07 14:58:35 909 3

原创 Illegal use of tristate value. (ELAB-306) dw综合问题

定义头文件,应该用xxx的不定态。

2023-11-06 16:06:11 103

原创 Syntax error at or near token ‘packed‘. (VER-294) Syntax error at or near token ‘clk‘. (VER-294)Rede

因为在读文件的时候不认识logic,应该是在提取文件的时候,应该用sv来提取。

2023-11-06 14:44:33 511

原创 nanofoxCPU仿真需要查看的数据

需要查看的数据。

2023-10-21 13:00:54 79

原创 VCS报错Error-[SE] Syntax error Following verilog source has syntax error :

vcs编译的时候Error-[SE] Syntax errorFollowing verilog source has syntax error :“…/…/tb/instruction_mem.mem”, 3原因

2023-10-20 16:33:25 1327

原创 Source file “nf_cpu.svh“ cannot be opened for reading due to ‘No such file or directory‘. Pleas

【代码】Source file “nf_cpu.svh“ cannot be opened for reading due to ‘No such file or directory‘. Pleas。

2023-10-18 17:18:11 856

原创 ERROR: [VRFC 10-3516] mismatch in closing label ‘nf_cpu‘; expected ‘nf_cpu_cpu‘

ERROR: [VRFC 10-3516] mismatch in closing label 'nf_cpu'; expected 'nf_cpu_cpu'

2023-10-18 14:37:23 125

原创 nanofox学习

仿真了很多指令,在tb里面校对打印结果,都是正确的,最后stop了,按ctrl+c也不能退出,按ctrl+z停止。修改一下testbench,stop改成。

2023-10-17 15:09:56 60 1

原创 【无标题】

请注意,函数调用的语法是正确的,但是在函数中,最好使用return语句明确返回函数的值,以提高代码的可读性和可维护性。(Prj文件夹下写filelist.f 和 makefile)更改tb文件(保存全部波形)调整filelist.f。更改makefile名字。

2023-09-17 17:47:36 108 1

原创 noc路由器接口

circular_bufferarameter BUFFER_SIZE = 8 无vc的flit帧缓存空间个数PortWidthDirectionFunctiondata_iflit_novc_tinput输入无vc的flitread_i1input读使能write_i1input写使能rst1input复位clk1input时钟data_oflit_novc_toutput输出无vc的flitis_fu

2023-09-16 13:13:54 132 5

原创 noc网络代码实现systemverilog详细解释

flit_t;} data;endpackagenoc.sv是一个SystemVerilog包,定义了一些网络芯片(Network on Chip,简称NoC)的参数和数据类型。以下是一些主要的定义:1. MESH_SIZE_X 和 MESH_SIZE_Y:定义了NoC网格的大小。

2023-09-07 22:02:26 969 3

原创 片上互联系统学习记录-tmn

网络:对称的Clos网络是一个可以用三元数组**(m,n,r)**表示的3级网络,m为中级开关数量,n为每个输入/输出级交换节点(一级和末级开关)上的输入/输出端口数量,r表示网络的第一级或最后一级交换节点数。最大跳数由网络的直径决定。源节点是位于图左边的圆形节点,目的节点是位于图右边的圆形节点,这里的圆形节点统称为终端节点(terminal node),图中方形的是交换节点。在图3.1中,穿过ring结构的对分线的链路数为2,穿过mesh结构的对分线的链路数为3,穿过torus结构的对分线的链路数为6。

2023-08-04 17:43:27 591 1

原创 NoC网络高级计算机系统结构

片上:服务器,笔记本电脑,电话,高清电视,接入路由器。多芯片:超级计算机,数据中心,互联网路由器,服务器。专注于片上网络连接缓存在共享存储器处理器。历史:从互连网络到片上网络。

2023-07-26 18:05:17 98 1

原创 练习17:堆和栈的内存分配 笨办法学C

这个问题是由于C语言的函数声明顺序导致的。在C语言中,如果你在调用一个函数之前没有声明它,编译器会假设这个函数的返回类型是int,并且没有参数。这就是为什么你在die函数中看到了关于Database_close的警告。为了解决这个问题,你需要在die函数之前声明Database_close函数。

2023-07-07 10:51:23 445 4

原创 练习16:结构体和指向它们的指针 笨办法学C

因此,在函数内部,使用的是副本的数据,而不是原始结构体的数据。由于副本是在栈上创建的,不需要动态分配内存。这种方式可以避免手动分配和释放内存的麻烦,但需要注意副本的创建和传递可能会占用更多的内存空间,尤其是对于大型结构体。在 Person_print 函数中,我们使用了结构体的副本,而不是指针,因此在栈上创建的结构体副本会被传递给函数,并在函数结束后自动被销毁,无需手动释放内存。在 Person_create 函数中,我们动态分配了内存,因为我们需要在堆上创建一个新的结构体,并返回指向该结构体的指针。

2023-07-05 19:58:47 220 1

原创 练习15:指针,可怕的指针 笨办法学C

具体来说,names是一个指针数组,其中每个元素都是指向字符的指针。通过将names赋值给cur_age,你实际上将指向指针数组的指针赋值给了指向整数的指针,这种类型不匹配会导致错误的结果。在代码中,当你使用强制类型转换将names赋值给cur_age时,导致指针类型不匹配。这会导致指针的解引用和指针算术操作发生错误,因此输出的结果不正确。因此,输出结果中的数字是不确定的,它们只是未定义的内存值。因为你将字符指针数组解释为整数指针数组,因此在打印时会将这些未定义的内存值解释为整数。

2023-07-05 15:42:28 226 1

原创 练习14:编写并使用函数 笨办法学C

代码中的print_arguments函数用于遍历命令行参数数组,并将每个参数传递给print_letters函数进行处理。如果字符是字母或空白字符,则调用can_print_it函数判断是否可以打印该字符。如果可以打印,则使用printf函数打印字符和对应的ASCII码。can_print_it函数是一个辅助函数,用于判断一个字符是否可以打印。如果是,则返回非零值,表示可以打印该字符;最后,在main函数中,调用print_arguments函数传入命令行参数数组进行处理。

2023-07-05 09:44:01 163 1

原创 练习13:Switch语句 笨办法学C

练习13:Switch语句。

2023-07-04 17:14:50 277

原创 练习11:While循环和布尔表达式笨办法学C

argv[],如何得到指针指向内容的大小(对应的int argc)呢?就是要获得全部的*argv【】大小。

2023-07-02 22:24:50 217 1

原创 练习10:字符串数组和循环(笨办法学C)

argv[]来定义字符串参数是因为命令行参数(如在main函数中使用的argc和argv)以字符串的形式传递给程序。argv是一个字符串数组,每个元素都是一个字符指针,指向一个命令行参数字符串。需要注意的是,char* argv[]中的每个字符串都是指向常量的指针,它们指向程序运行时的只读内存区域。请检查程序中的指针使用,确保指针指向有效的内存区域或已分配的内存。states[]的一个元素,它会被视为一个指向空字符串的指针,即一个空指针。在C语言中,NULL是一个宏定义,表示一个空指针常量。

2023-07-02 20:54:49 288 1

原创 练习9:数组和字符串笨办法学C 附加题

(4) “still reachable” 意味着你的程序可能是没问题的,但确实没有释放掉一些本可以释放的内存。(3) “possibly lost” 意味着你的程序一定存在内存泄露,除非你是故意进行着不符合常规的操作,例如将指针指向某个已分配内存块的中间位置。通过修改指针所指向的内存地址上的值,可以直接改变内存地址的值。要解决此问题,您可以检查程序中涉及缓冲区操作的部分,并确保缓冲区的大小足够容纳所写入的数据,并在必要时添加适当的空字符终止符。通过上述操作,就可以直接改变指针所指向的内存地址上的值。

2023-07-01 22:07:49 459

原创 练习8:大小和数组我们对name数组执行同样的操作,但是注意到数组的大小有些奇怪,它占4个字节,但是我们用了三个字符来打出”Zed”。那么第四个字符是哪儿来的呢?

请注意,这里使用%ld来打印sizeof(name)的结果,因为sizeof返回的是size_t类型,是一个无符号整数类型。%ld是用于格式化long类型的输出。在大多数系统上,size_t和long类型的大小相同,因此使用%ld打印sizeof的结果是合适的。请注意,这里的sizeof(name)返回的是数组的大小(即占用的字节数),而不是字符串的长度。这里输出了name数组的大小为4,因为数组中有4个元素,分别是 ‘Z’, ‘e’, ‘d’, ‘\0’,每个元素占用一个字节。

2023-07-01 15:07:30 161

原创 练习7:更多变量和一些算术(笨办法学C

为什么用%ld打印?

2023-07-01 14:33:38 124

电子测量4-19,一种多斜积分式DVM的Multisim设计、完整技术文档_斜齿轮用角度尺如何测量

《电子测量技术》4-19在 Multisim 环境下,设计一种多斜积分式DVM,给出原理图和仿真实验结果。(最后得分90,没有都做出来,但是老师看在比其他同类更好,给了A的成绩)

2021-01-06

文氏振荡器综合研究的Multisim设计、技术文档、展示PPT、参考文献

bjtu模电研究性教学设计,文氏振荡器综合研究Multisim设计、技术文档、展示PPT、参考文献

2021-01-03

一种测量数据误差处理的通用程序与技术文档

18级bjtu电子测量大作业,95分,有交互界面,是python设计(需有一定python基础哈)

2021-01-03

正弦方波三角波发生器Multisim设计、完整技术文档

3个人耗时3周bjtu电子设计课程multisim仿真,完整电路设计被学校收纳不得外传,有部分设计和完整电路的文档详细解析,很tmnb,包含频率计数,摁键调幅,模拟开关,文氏振荡,功放,三合一输出等电路,极其适合模电数电实践学习

2021-01-03

空空如也

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

TA关注的人

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