- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 c++ 头文件和库
1 c++ 头文件和库的位置与编译器类型有关。2 两种编译器gcc是一个编译器集合,不是单一编译器。使用autotools,make作为build工具。使用gdb作为debugger。使用ld作为linker。clang/llvm是一个编译器工具链。使用cmake作为build工具。使用lldb作为debugger。使用lld作为linker。编译器分前端和后端。clang是前端,llvm是后端。3 头文件和库文件1)编译器 -I -L指定的路径2)环境变量CPLUS_INCLUDE_PATH
2021-07-28 12:43:23
559
原创 JIT技术
传统上,让源代码在目标机器上运行有两种方法:静态编译和解释。静态编译是实现把源代码转化成目标机器码。而解释是直接在目标机器上执行源代码,先把源码转成伪码,直接运行伪码。JIT是动态编译,结合了两种方法的优点,实际是解释器的一个feature。在运行时,编译伪码为机器码,加速执行。...
2021-07-21 15:06:46
393
原创 DDEBUG DNDEBUG
-D is the GCC option to define a macro. NDEBUG is the macro to be defined to turn off asserts as mandated by the C standard.
2021-07-15 13:54:37
315
原创 业界AI 推理芯片比较
业界AI 推理芯片比较公司创立时间,地点产品架构算力特色瀚博半导体2018年12月@上海SV02DSA200TOPS手机$12导管$1
2021-07-07 14:01:23
530
原创 c++ 变量与函数的定义与声明
首先看一下编译过程:预编译:完成替换。编译源文件,生成符号表,只要符号被声明就行,不需要存在。如果符号没有声明,就会报编译错误。链接,确认所有符号存在-------》如果符号不存在,也就是没有定义,就会报链接错误。运行比较好的做法:cpp文件放函数的定义,头文件放变量和函数的声明。这样,这个头文件可以被其它使用这个函数的文件include。由于这里是函数声明,所以可以任意多个文件include它。注意,cpp文件和头文件可以分别编译两个目标文件,在链接阶段进行链接。inclu
2021-04-01 11:47:32
637
1
原创 c++ learning resource
https://www.geeksforgeeks.org/c-plus-plus/https://www.studytonight.com/cpp/
2021-03-17 17:19:37
97
原创 systemc learning website
比较好的学习网站http://cfs-vision.com/2017/09/27/learning-systemc-003-time-events-and-processes/https://sclive.wordpress.com/2008/01/10/systemc-tutorial-threads-methods-and-sc_spawn/https://learnsystemc.com/basic/simu_stagehttp://www.asic-world.com/systemc/tut
2021-03-03 15:33:09
305
1
原创 软件库与硬件IP库
无论是软件还是硬件,都需要库的支持。这是因为复杂的设计都是由小的模块组成。但是这些小模块常常由第三方开发,第三方不想提供源代码。因此以库的形式提供模块,甚至库都是加密的。1 软件库软件库分静态链接库和动态链接库。因为库只在链接时需要,根据链接时刻。静态链接是在应用编译阶段,动态链接是在应用运行时刻。这里需要区分库的编译和应用的编译。实际上应用运行时,用户不会感觉命令有区别,都是执行应用的名字。静态库的编译目标文件命令:gcc -c静态库的创建命令:ar -crv动态库的编译目标文件命令:gcc
2021-02-23 18:06:44
214
原创 函数指针与动态绑定
int foo(int i){ return i + 1;}typedef int (*g)(int); // Declare typedefg func = &foo; // Define function-pointer variable, and initialiseint hvar = func(3); // Call function through pointer
2021-02-04 14:40:22
186
原创 how to set/use linux core dump
how to set linux core dumphttps://www.cnblogs.com/diegodu/archive/2004/01/13/4757045.html
2020-12-10 13:49:47
96
原创 STL反向迭代器
问题:有时想用反序去遍历map,但是不能用iter–。解决方法:stl有反向迭代器。注意:map是push并不是按固定的顺序push,而是随机的。这对于用正向,反向迭代器寻找第一个出现的key,有可能不是期望的。...
2020-11-16 14:37:59
187
原创 systemc TLM FIFO 使用
axi_rd_rsp_fifo_ = new tlm_fifo <tlm_generic_payload*> (16);axi_wr_rsp_fifo_ = new tlm_fifo <tlm_generic_payload*> (16);axi_rd_req_ptr_fifo_ = new tlm_fifo <tlm_generic_payload*> (4096);axi_wr_req_ptr_fifo_ = new tlm_fifo <tlm_gener
2020-11-14 19:58:10
818
原创 把变量的地址存放到字符串
问题:变量的地址,或者是指针指向的地址不能直接赋值给另一种变量。然而,我们常常需要用这个地址信息作为一些决策,比如总线地址数据的排列。解决方法:把地址作为字符存放在另一个变量中。1 c中可用sprintftlm_generic_payload * gp = new tlm_generic_payload();char tmp1[32];char tmp2[64];sprintf(tmp1, “%p”, tlm_gp);sprintf(tmp2, “%x”, tlm_gp);cout<&
2020-11-14 19:39:09
759
原创 2020-11-09
TLM2 socket连接两种连接方式:csb_master->csb2nvdla.bind(this->csb2nvdla);csb_master->csb2nvdla_wr_hack(csb2nvdla_wr_hack);
2020-11-09 10:52:25
80
原创 2020-10-23
grep和sed配合替换文件中的字串sed -i ‘s/sdp write end_time/sdp write end_time/g’ grep "sdp write end_time" -rl --include="sim_results.log" ./错误:如果 ‘s/sdp write end_time/sdp write end_time/g’ 没有引起来,出下面错误sed: -e expression #1, char 7: unterminated `s’ command 错误作用
2020-10-23 14:51:46
72
原创 2020-09-29
如何开发ESL方法学中TLM2 子模块?本文简要总结一下开发一个子模块的TLM2的方法。通常情况下,一个复杂的设计包含几个层次,每个层次又包含许多子模块。而这些子模块的开发是TLM model的关键。1 SC_HAS_PROCESS的使用一般开发c++,类的定义和实现放在两个文件,这时就要用 SC_HAS_PROCESS,这是因为构造函数中,SC_THREAD,SC_METHOD, SC_CTHREAD需要关联类中的进程。https://learnsystemc.com/basic/sc_has
2020-09-29 16:33:12
846
原创 arm 嵌入式开发流程
1 设置环境变量包括gcc工具path,编译器,linker,汇编工具名字,linker选项等2处理boot code3 编译c代码生成目标文件4准备elf文件用编译器,linker生成最终可执行代码
2020-06-29 17:41:34
734
原创 nvdla study ---内存数据格式
理解nvdla设计,首先必须头脑中对数据格式及其内存存放形式有个清晰的认识。1 输入格式1)weightdata输入格式:weight for direct convolutionweight for image inputweight for Winograd convolution2)activation data输入格式:feature data formatpixel fo...
2020-03-27 22:11:40
928
1
原创 c++几个面向对象概念
面向对象是指:抽象,封装,继承和多态。1抽象:减少细节,提取共性。解决方案:抽象类,接口类,纯虚方法2封装:隐藏数据,类只提供方法,访问数据成员。3多态:静态多态—overloading,同一个类中,多个同名函数动态多态–overridding,子类与父类中,同名函数,必须是虚函数才能实现overriding。如果没有virtual关键字,当子类对象赋值给父类指针时,永远执行的是父...
2020-03-19 21:50:56
264
原创 c++and java
尽管都是面向对象编程语言,今天发现c++ 与java有个比较大的不同就是main函数的位置。c++中main函数是一个特殊函数,不属于任何类。但是java中,main函数是一个类内函数。...
2020-03-19 20:57:06
115
原创 java设计的思考
读了下面链接给的java的介绍,总结一下。https://www.guru99.com/java-virtual-machine-jvm.htmljava解决了跨平台需要不同编译器的问题:1 通常其它编程语言写的程序,在不同的系统,需要不同的编译器,例如c语言需要windows,linux版本的编译器。2 java解决方案是用同一个编译器编译出中间格式,在jvm里面来执行这个中间格式。3...
2020-03-19 20:52:10
115
原创 硬件设计好书hardware design book
The Art Of Hardware Architecture Design Methods And Techniques For Digital Circuits---- Authors:Arora, Mohithttps://www.springer.com/gp/book/9781461403968Digital Design and Computer Architecture---...
2020-03-17 15:13:56
490
原创 google unit test and cmake
比较好的介绍了google unit test,cmake,vscodehttps://www.youtube.com/watch?v=Lp1ifh9TuFI
2020-02-20 12:29:23
138
原创 TLM2模型测试
该链接给出用google test框架来测试TLM2 模型。https://github.com/cphurley82/tlm2-gtestbenchsynopsys有TLM creator工具帮助测试LT model,使用的是c++unittest框架。
2020-02-14 22:37:49
731
原创 c++ 测试方法和工具
一篇关于c++测试的文章,总结的比较好https://blog.youkuaiyun.com/wangjingqi930330/article/details/80735392测试工具常用google test(gtest,gmock)https://www.cnblogs.com/chengxuyuancc/p/6434660.html介绍c++ unit test frameworkhttps:...
2020-02-14 22:09:31
1931
原创 软硬件协同设计
软硬件设计一般都是一个完整的系统。软件部分包含操作系统等完整的嵌入式系统。硬件部分包含一个soc。但是,我们在开发过程中,一般都是集中在自己的算法的软硬件实现,其它部分不需要修改。因此我我们说的软硬件设计更多是自己算法的软硬件设计。以nvdla为例,这是个IP,嵌入到soc中。我们能探索的设计空间是nvdla的设计空间,而不是soc的设计空间,所以设计空间是分层次的。我们设计空间探索,也...
2020-02-11 11:52:34
3048
3
原创 本地目录与容器docker目录共享信息
1 本地目录映射到容器目录docker run -it -v /remote/cn42home1/zhaoqing/work:/work nvdla/vp2 本地目录copy到容器目录sudo docker cp ~/nvdla/sw/prebuilt/linux/basic.nvdla caf14f21334a:/usr/local/nvdla3 宿主机上copydocker...
2020-01-16 22:11:01
330
原创 nvdla vp failed to fetch all submodule of the qbox
git config --global url.https://anongit.freedesktop.org/git.insteadOf git://anongit.freedesktop.orggit config --global url.https://github.com/qemu.insteadOf git://git.qemu.orggit config --global url...
2020-01-09 17:12:50
196
原创 ESL方法学
ESL方法目前主要是想通过一个高级语言描述设计,然后生成RTL。为了解决可配置的设计的验证问题,需要在早期就要完成验证,好处是高级语言的验证更加快。一类代表性是chisel语言一类代表性是pymtl类库...
2019-12-25 13:34:28
1039
A Framework for Automated HWSW Co-Verification .pdf
2019-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人