自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 类与类的关系

1 继承关系2 包含关系

2020-03-19 09:55:41 228

原创 硬件设计好书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

Embedded systems are usually composed of deeply integrated hardware and software components. They are often used in domains where a failure results in high nancial losses or even in serious injury or death. As a consequence, it is indispensable to ensure the correctness of the digital components that control these systems with systematic and comprehensive verication techniques. To model and simulate complex HW/SW systems, the system level design language SystemC is widely used.

2019-12-06

空空如也

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

TA关注的人

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