- 博客(107)
- 资源 (13)
- 收藏
- 关注
原创 ubuntu 18.4 安装sbt
first install JDK Download sbt Install sbt 查看 sbt 是否安装成功first install JDKJDK 安装Download sbtsbt download点击 DEB package, 会下载得到 sbt-1.2.8.debInstall sbtsudo dpkg -i sbt-1.2.8.debor...
2019-07-21 22:46:19 4123
翻译 Python argparse
python get option which is similiar with perl's get option long
2016-09-25 11:18:18 609
转载 gcc 编译选项
简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语
2015-11-24 15:06:52 482
原创 Ping Pong 操作
1 什么是pingpong? pingpong是一种数据缓存的手段,通过pingpong操作可以提高数据传输的效率。2 什么时候需要pingpong?在两个模块间交换数据时,上一级处理的结果不能马上被下一级所处理完成,这样上一级必须等待下一级处理完成才可以送新的数据,这样就会对性能产生很大的损失。引入pingpong后我们可以不去等待下一级处理结束,而是将结果保存在pong路的
2015-05-31 16:55:47 5805
原创 DC setup 注意事项
1 DC是性能较好的综合工具,对.synopsys_dc.setup进行设置时需要注意a. search_path 要包库文件的路径以及verilog代码的路径,否则无法找到源文件。b,以下选项可以设置,也可以不设置,不设置会使用默认的的库文件,但是设置link_library时要加入{*} set target_library [list ex25_worst.db]set li
2015-04-15 17:17:32 1341
原创 verilog pli 使用注意事项
1, c文件名尽量与函数名一致。2, 使用64(32)位机器产生动态链接库及运行ncverilog3, include veriuser.h vxl_veriuser.h这两个头文件在/tools/include/4, 编写一个返回值位p_tfcell的函数,函数内部包含了一个s_tfcell的数组,该数组链接用户程序与verilog函数名。例如; my_hello.c#inc
2015-03-26 20:51:42 1595
原创 ncverilog 使用 systemverilog DPI调用C、C++
DPI: Direct program interface通过DPI我们可以直接在测试阶段调用c函数完成一些任务(产生激励,时序分析,等。。。)用ncverilog进行仿真时需要注意以下几点:1 ncvlog -sv 选项打开2 ncsim -sv_lib "libname" lib name 是包含c函数的动态链接库,可以是完整的路径,也可以是lib的名字,
2015-03-26 19:51:07 4238
转载 异步FIFO为什么用格雷码
异步FIFO通过比较读写地址进行满空判断,但是读写地址属于不同的时钟域,所以在比较之前需要先将读写地址进行同步处理,将写地址同步到读时钟域再和读地址比较进行FIFO空状态判断(同步后的写地址一定是小于或者等于当前的写地址,所以此时判断FIFO为空不一定是真空,这样更保守),将读地址同步到写时钟域再和写地址比较进行FIFO满状态判断(同步后的读地址一定是小于或者等于当前的读地址,所以此时判断FIFO
2015-03-05 14:55:46 1006
转载 linux 文件的作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 /sbin
2015-02-25 11:20:35 461
转载 system verilog example
systemverilog 小代码枚举:module test_typedef(); typedef enum {red,green,blue,yellow,white,black} colors; colors my_colors; initial begin $display("my_color's defau
2015-02-11 09:47:42 4048
原创 verilog 实现无符号整数除法运算
本篇文章主要介绍一下无符号除法的硬件实现思想:主要方法有移位减法和基于coordic算法的实现(coordic实现了浮点除法):1 基于减法的除法实现:首先比较被除数和除数的大小关系,如果被除数大于除数,那么就用被除数减去除数,然后商自加1,直至被除数小于除数,此时被除数中存储的结果即为余数。该方法由软件实现较为简单。考虑到如32位的除法,最多比较次数可达2^32。所以不便于硬件实现。如果寄
2014-11-21 16:52:57 22763
原创 design complier 基本语句
Design:具有某种或多种逻辑功能的电路描述;Cell:设计的instance;Reference:cell或instance在库中定义的名字;Port:design的输入、输出;Pin:design中cell的输入、输出;Net:ports和pins之间或pins之间的信号名;Clock:被定义为时钟源的pin或port;Library:cell的集合,如:targ
2014-11-11 22:35:46 1690
转载 状态机 精讲
一直以来都是在用两段式状态机,觉得挺好用的,也挺顺手的。但是今天看了特权的博客觉得自己还真是井底的啦蛤蟆呀。 参考了网上的一些前辈blog和自己搜集到的资料,整理了一下读书笔记,虽然内容基本上都是别人写的,但是整理起来也好累 = = 1. 有限状态机FSM(Finite State Machine) 组成元素:输入、状态、状态
2014-11-03 10:06:57 5604
原创 RTL 编码指南
1 使用函数,减少代码的书写量。2 使用有意义的变量名。3 不要使用立即数。4 使用工艺无关库。5 避免使用混合时钟沿。如果必须使用上升沿和下降沿进行触发,则必须保证综合和时序分析后该模块的时序周期在最坏的情况下也是正确的。且必须给出文档说明。6 如果需要使用门控时钟或内部时钟,或者Reset信号,应把内部时钟产生电路或者Reset电路分离出来。Reset信号的功能是直接清除所
2014-11-01 21:43:58 1688
原创 SVA(system verilog assertions)基础
1什么是断言: 断言就是在模拟过程中根据我们事先安排好的逻辑是不是发生了,如果发生断言成功,否则断言失败。2断言的执行分为:预备(preponed)观察(observed)响应(reactive).3断言的分类:并发断言(基于时钟)和即时断言(基于语义)。4SVA(system Verilogassertions):块的建立:序列: Sequencename_of_se
2014-10-31 11:14:00 5419
原创 Perl 产生testbench的框架
对于如下的 .v文件,我们可以利用Perl产生testbench的框架:然后自己填充内容即可。module module_name(inputs and outputs);input [n:0] ..............output [n:0] ..............inout [n:0] ....................................
2014-10-27 18:56:32 1365 1
原创 2015年兆芯面试题
要求:一个握手的模块,输入信号分别为en,ack,all_done;输出信号是req,done;要求如下en高电平有效时可以输出req信号,然后等待ack信号,收到ack信号后会发出done信号,模块的数量不定,当所有模块done信号军发送完毕后会接收到all_done信号,只有接收到aLL_done信号才可以发送下一次req信号。难点在于第一次发送时只需要en有效即可,而下一次发送必
2014-10-22 09:47:10 3860
原创 查找重复次数最多的子字符串
查找重复次数最多的子字符串,借鉴兆芯查找重复次数最多的字符,我们可以进行扩展,查找重复次数最多的子字符串。基本思想是把重复次数最大记录下来,并记录起始位置;#include #include using namespace std;int mystrlen(char *str){ int sum(0); char *temp=str;
2014-10-20 16:33:18 1227
原创 兆芯笔试题(2015)找重复数最多的字母的数量以及位置
例子:“aaaabcaa”,查找a则返回值为0,长度为4;#include #include using namespace std;int find_max_repeat(char *str, char ch, int *len){ char *p=str; int num(0),start(0); while(*p!='\0') {
2014-10-20 11:52:06 3607 2
转载 主存与Cache的地址映射
主存与Cache的地址映射 2012-02-20 10:30:05| 分类: 计算机组成原理|举报|字号 订阅 CPU对存储器的访问,通常是一次读写一个字单元。当CPU访Cache不命中时,需将存储在主存中的字单元连同 其后若干个字一同调入Cache中,之所以这样做,是为了使其后的访存能在Cache中命中。因此,主存和Cache之间一次交换的数据
2014-10-19 10:59:44 2578
原创 ftoa浮点型转换成字符串
#include bool ftos(float num,char *s,int n){ int temp;float t=num;int pn=0;bool flag_s=true;bool flag_z=false;for(int i=n;i>0;i--) t=t*10;printf("%f\n",t); temp=t
2014-10-16 22:26:50 4177
原创 异步FIFO的编程
对于异步FIFO,最主要的两个方面是地址控制和空、满标志位的产生。首先地址控制分别为读地址和写地址,每次读写时能读写地址应该加1.计数次数为ram深度的2倍,当读写地址相等时则空标志位有效,当读写地址最高位互补其余位相等时则满标志位有效。存储部分采用双口RAM实现。下面是具体的Verilog代码:module afifo(r_clk,w_clk,rst_n,data_in,data
2014-10-06 10:18:18 924
原创 展讯2015年校园招聘数字工程师试题(回忆版)
一 名词解释: DLL, AMBA ,STA,CRC(还有几个记不清了,因为别的不知道) DLL:延时锁相环AMBA:高速微控置总线,STA: 静态时序分析CRC: 循环冗余校验二 数字前端设计的基本流程以及主要工具:前端设计的流程及使用的EDA工具如下:1、架构的设计与验证:按照要求,对整体的设计划分模块。 架构模型的仿真可以使用Synopsys公司的Co
2014-09-17 20:32:40 1304
转载 linux exec 函数族
原文地址:http://linux.chinaunix.net/techdoc/develop/2008/12/23/1054446.shtmlexec函数族 也许有不少读者从本系列文章一推出就开始读,一直到这里还有一个很大的疑惑:既然所有新进程都是由fork产生的,而且由fork产生的子进程和父进程几乎完全一样,那岂不是意味着系统中所有的进程都应该一模一样了吗?而且,就我们的常识来说,当
2014-09-08 20:53:51 539
转载 百度2014面试题
先总体说下题型,共有3道简答题,3道算法编程题和1道系统设计题,题目有难有易,限时两小时完成。 一、简答题1. 动态链接库和静态链接库的优缺点2. 轮询任务调度和可抢占式调度有什么区别?3. 列出数据库中常用的锁及其应用场景 二、算法设计题1. 给定N是一个正整数,求比N大的最小“不重复数”,这里的不重复是指没有两个相等的相邻位,如1102中的11是相等的两个相邻位
2014-09-04 15:26:02 466
原创 查找重复的字符串
给定一个长度为n的数组,其元素也在【0 n-1】范围内,判断其中是否包含重复元素。#include #include #include#includeusing namespace std;bool find_repeat(int *s,int len){int max(s[0]),min(s[0]);if(len==0)return false;
2014-09-04 10:36:43 766
转载 页式存储管理
基本原理 1.等分内存 页式存储管理将内存空间划分成等长的若干区域,每个区域的大小一般取2的整数幂,称为一个物理页面有时称为块。内存的所有物理页面从0开始编号,称作物理页号。 2.逻辑地址 系统将程序的逻辑空间按照同样大小也划分成若干页面,称为逻辑页面也称为页。程序的各个逻辑页面从0开始依次编号,称作逻辑页号或相对页号。每个页面内从0开始编址
2014-09-03 09:54:24 980
转载 网络基础
我们将学习有关子网和CIDR(无类域间路由)的知识。我们希望能够以比某些图书提供的更容易管理的方式学习这些知识。让我们先搞清楚一件事情:在子网中是没有“类别”的。在以前,网络分为A类、B类和C类。这些网络只能分为相等的几部分,因此现在我们引入了可变长度子网掩码(VLSM)来解决这个问题。老类别的C类网络是一个24位网络地址,B类网络是一个16位网络地址,A类网络是一个8位网络地址(如果你不清楚
2014-09-02 10:46:03 390
原创 perl socket编程
soket是网络套接字,它是ip地址和端口号的组合。在perl中使用套接字需要SOCKET模块;以经过测试可以使用:下面使用如下的例子进行说明:服务器端:#!/usr/bin/perl -wuse Socket;use IO::Handle;socket(SOCK,AF_INET,SOCK_STREAM,getprotobyname("tcp"));#初始化socketse
2014-08-27 10:13:19 776
转载 perl socket编程
使用PERL SOCKET API首先需要载入SOCKET模块。 use Socket; ====================================================================== socket(文件句柄,AF_INET,数据类型,协议类型); #建立套接字文件句柄随便找个词就可以了。 AF_INET为域类型,也可以写为
2014-08-26 15:36:49 660
转载 socket编程
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmi
2014-08-26 14:05:35 442
原创 全排列的实现
1 什么是全排列:例如给出字符串abc: 其全排列为:abc bca cba acb bac cab; 对于acc则全排列为 acc cac cca 2 下面看一下非递归的实现方法:以1234 为例从右向左找相邻递增(严格递增)的数对: 34 满足条件,把3记为一个交换点。 在从右向左找第一个大于第一个交换点的数为4作为第二个交换点,交换后得:1243;然后把第一个交换点后的序列逆序。
2014-08-19 14:41:34 671
转载 归并排序的实现
归并排序是利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列,归并排序包括两个步骤,分别为: 1)划分子表 2)合并半子表 首先我们来讨论归并算法,归并算法将一系列数据放到一个向量中,索引范围为[first,last],这个序列由两个排好序的子表构成,以索引终点(mid)
2014-08-13 21:02:51 434
原创 IC设计前端到后端的流程和eda工具。
IC前端设计(逻辑设计)和后端设计(物理设计)的区分:以设计是否与工艺有关来区分二者;从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。前端设计的流程及使用的EDA工具如下:1、架构的设计与验证:按照要求,对整体的设计划分模块。 架构模型的仿真可以使用Synopsys公司的CoCentric软件,它是基于System C的仿真工具。2、HDL设计输入:设计输入方法有
2014-08-12 10:33:56 9359
转载 动态链接库与静态链接库
本文是笔者在其他地方看到, 觉得不错, 转载过来,对于之前看到的有些图片不能显示, 笔者在自己的环境下,将其还原了文章来源:http://hi.baidu.com/yueyemijing/blog/item/b0a3f500f932c181e850cd07.html一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模
2014-08-11 11:05:49 512
原创 FPGA面试题及答案
汉王笔试 下面是一些基本的数字电路知识问题,请简要回答之。 a)什么是Setup 和Holdup时间?1 建立时间是指信号到达触发器输入端的时间要早于时钟敏感边沿到达触发器的时间,只有满足保持时间信号才能正确的保存到触发器。2 保持时间是指时钟边沿到达后数据需要稳定的时间,只有这样数据才能正确的从寄存器中发出。b) 什么是竞争与冒险现象?怎样判断?如何消除?
2014-08-11 10:05:01 13749 1
转载 FPGA学习笔记(转)
http://blog.csdn.net/superuser007/article/details/58843731.2.1 FPGA工作原理与简介如前所述,FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。由于FPGA需要被反复
2014-08-09 10:52:32 1492
原创 格雷码的产生方式以及其与二进制码的关系
格雷码也是一种可以用来计数的编码方式,它在加1的过程中只有一位发生变化,这样就可以简化硬件实现,因此许多速度传感器,绝对位置传感器等会采用格雷码计数。 此外由于给雷码的特性,一次变化过程只改变一位,相比普通二进制计数,加1后可能变化多位,更加安全。因此在数字电路的状态机的状态计数采用格雷更加安全,且易于实现。格雷码可以按照如下方式产生0 取镜像 0 加符号 00 取镜像 00
2014-08-08 17:19:40 1527
riscv32-unknown-elf-gcc-8.4.0_2.txz
2020-11-17
ARM结构讲义2013
2014-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人