- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 verilog利用vcs仿真时出现不打拍的情况(二)
上图放大了两个时钟上升沿处的信号变化,每一次的放大分为Active Region和NBA region,其实就是阻塞赋值生效时间和非阻塞赋值生效时间,仿真器会模拟出寄存器的时延,给寄存器的输出结果与时钟沿中间加上δ时间间隔。仿真后在verdi的nwave窗口下点击view——>Expand Delta展开,选项不是灰色的,代表可以使用该功能。仿真不打拍但并看不出来代码有什么问题时,可以通过查看波形细节进一步定位。由此可以进一步发现信号是在哪一步没有在应该生效的区域生效。
2023-11-27 15:39:53
838
原创 verilog利用vcs仿真时出现不打拍的情况
后续分析这里出现了仿真冒险,这里的dla_work_start信号是在仿真模型里通过#500产生的。这会导致在同一时刻对dla_work_start进行了读和写,产生仿真冒险。代码如下,本来应该实现dla_work_start拉高后一拍,dla_finish_inter 为高的,但是实际仿真出来的波形发现这来给你个信号是同时拉高,并没有延后一拍。matedata文件夹下会出现一个race.out文件,其中包含了设计和tb中的仿真冒险相关信息(仿真时间、变量名、仿真冒险类型和所在行数)。
2023-11-13 13:54:07
709
1
原创 C中浮点数与十六进制相互转换
union共用体类似于struct结构体,可以包含很多数据结构和变量,区别在于,内部所有的数据共用一个内存首地址,共享同一段内存,以达到节省空间的目的。float类型和char的数组共用4字节的内存,对float的引用就可以获得浮点数表达,对数组的单字节引用就可以获得十六进制表达。其实在内存里浮点数就是以十六进制进行存储的,在代码里进行浮点数和十六进制的相互转换可以利用数据类型的隐形转换来进行。
2023-11-09 14:09:08
390
1
原创 verilog中的隐形数据位宽、中间表达式位宽大小
表达式位宽规则:包括自决定表达式和上下文决定表达式。1、自决定表达式——所有操作数的位宽由自己决定;2、上下文决定表达式——所有操作数的位宽由整个表达式上下文环境中最大的位宽决定。
2023-11-09 11:42:03
517
1
原创 Verilog仿真时读取bin文件模拟输入数据流,将输出数据流写入bin文件
需要关注的是,一般会省略文件起始地址和读取长度,那么mem为多大,就会从文件中读取多大的数据出来填充mem。如果只需要读取一次文件,那么代码到此就结束了,但是如果还需要每一帧都读取该文件转换为数据流,则在循环里判断新的一帧信号是否到来,在新的一帧再次打开一次文件,从头开始读取数据。
2023-10-26 20:33:44
1998
1
原创 verilog $clog2 取位宽函数
/定义 function integer clogb2(input integer size);endend//使用//PIX位宽问题在于:1、每次使用到计算PIX位宽时都需要定义该函数,工作量重复、效率较低。2、因为函数定义在模块内部,无法对输入输出信号使用该函数。
2023-04-06 14:46:11
6794
3
原创 RISCV处理器的中断过程及移植FreeRTOS系统的相关知识总结
针对不同的中断/异常触发进行不同的程序处理,在处理环境调用和定时器中断时,会跳转到任务切换处理函数,系统会确定是否需要切换任务——是否有任务解除阻塞且优先级更高。图中的箭头即为程序的执行顺序。FreeRTOS系统在创建任务时,不仅会创建指定大小的任务堆栈,还会定义一个任务控制块结构体——TCB(Tack Control Block),用于存储任务的状态信息。该操作其实是由于RISC-V架构定义的硬件机制无法支持中断嵌套行为,一旦响应中断进入异常模式后,全局中断使能被关闭,从而无法响应新的中断。
2023-04-06 14:39:07
2906
原创 MobileNet-SSD利用caffe-int8-convert-tools工具量化经验(三)
运行提取权重的代码需要安装cmake,protobuf,opencv环境由于ubuntu上已带有cmake,protobuf省去配置过程可以参考链接:https://www.codetd.com/article/5379851cmake -versionprotoc --version# 可以查看是否安装成功which cmakewhich protoc# 可以查看安装成功的路径或多个版本配置opencvopencv下载NCNN例程序只支持opencv2,不支持opencv3.
2022-04-18 13:54:43
2602
原创 MobileNet-SSD利用caffe-int8-convert-tools工具量化经验(二)
MobileNet-SSD利用caffe-int8-convert-tools工具量化经验(二)从NCNN框架的param和bin文件中提取权重参数参考:ncnn:提取所有层特征值在ncnn-master/src/net.cpp结尾添加函数:int Extractor::extract_all_blobs(){ for (int blob_index = 0; blob_index < (int)d->blob_mats.size(); blob_index++) {
2022-04-14 19:58:10
3143
原创 MobileNet-SSD利用caffe-int8-convert-tools工具量化经验
MobileNet-SSD利用caffe-int8-convert-tools工具量化经验下载caffe-int8-convert-tools工具:caffe-int8-convert-tools准备test文件夹:test/images为验证机图片test/models为MobileNet-SSD的caffemodel和prototxt文件旧版caffe模型更新为新版模型:(ncnn只支持新版)$ ~/caffe/build/tools/upgrade_net_proto_text Mobi
2022-04-04 16:42:23
1520
原创 HDLbits解题答案——Bcdadd100
module top_module( input [399:0] a, b, input cin, output cout, output [399:0] sum ); wire [99:0] temp; bcd_fadd add0(a[3:0],b[3:0],cin,temp[0],sum[3:0]); genvar i; generate for(i=4;i<400;i=i+4) begin: add45
2021-08-04 15:27:35
764
原创 SpinalHDL项目——VexRiscv修改成符合自己需求的RISCV核
工程路径中\VexRiscv-master\src\main\scala\vexriscv\demo包含多种不同配置的Riscv核其中,GenFullNoMmuMaxPerf.scala是使用动态预测、没有mmu等配置的文件以此为基础,把debug接口改成Jtag接口的配置文件如下:在这里插入代码片...
2021-07-27 17:30:30
2070
原创 整理经典verilog笔试题/面试手撕代码
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-07-26 15:58:01
8798
4
原创 Windows上安装java8、scala2.11.12、sbt1.3.12和IntelliJ IDEA的SpinalHDL环境并跑通VexRiscv
文章目录java8环境搭建scala2.11.12环境搭建sbt1.3.12安装IntelliJ IDEA安装和配置跑通VexRiscv在cmd中跑通VexRiscv可能遇到的问题如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入java8环境搭建java8下载在官网上下载相应的版本,jdk8开头的都
2021-07-08 15:04:45
2387
2
原创 HLS对卷积层优化指令的理解
在祥瑞Coding的博客中提到了下面的一个例子:// Array Order : 0 1 2 3 4 5 6 7 8 9 10 etc. 16 etc...// Sample Order: A0 B0 C0 D0 E0 F0 G0 H0 A1 B1 C2 etc. A2 etc...// Output Order: A0 B0 C0 D0 E0 F0 G0 H0 A0+A1 B0+B1 C0+C2 etc. A0+A1+A2 etc...#define CHANNELS 8#define SAMP
2021-04-20 12:44:45
570
原创 MobileNet+SSD使用HLS的卷积优化记录
MobileNet+SSD使用HLS的卷积优化记录深度卷积单独的优化:下面是量化之后的使用16bit的定点数进行深度卷积计算的HLS源码:// #include "dep_conv.h"void dep_conv(short bottom[], int Cw, int Hin, int Win, short weight[], int K, int pad, int S, short top[], short bias[]){ Channel_out_num: for(cnum =
2021-04-20 12:28:40
1027
构建基于SoCLib的MPSoC
2021-01-06
北京多站点空气质量数据的回归分析
2021-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人