自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

转载 大疆2019校招FPGA笔试总结

1.对于同步fifo,每100个cycle可以写入80个数据,每10个cycle可以读出8个数据,fifo的深度至少为?写时钟频率 w_clk,读时钟频率 r_clk,写时钟周期里,每B个时钟周期会有A个数据写入FIFO读时钟周期里,每Y个时钟周期会有X个数据读出FIFO则,FIFO的最小深度是?计算公式如下:fifo_depth = burst_length - burst_...

2019-07-31 08:52:35 4087

原创 逻辑综合

利用工具将RTL代码转换为门级网表的过程叫做逻辑综合(Logic Synthesis),常见的逻辑综合工具是synopsys的design compile(DC);综合一个设计的过程从读取RTL代码开始,通过施加时序约束关系,映射 产生一个门级网表文件;它可以分为三步:1.翻译:读入电路的RTL级描述,并将语言描述翻译成相应的功能块以及功能块之间的拓扑结构。这一过程的结果是在综合器内部生...

2019-07-30 20:16:54 11178

原创 低功耗设计

前面的帖子提到过,CMOS电路中的功耗分为两部分:静态功耗和动态功耗;静态功耗是由漏电流引起的功耗;动态功耗分为翻转功耗和短路功耗,翻转功耗也就是0与1翻转所引发的功耗,而短路功耗则是由于PMOS和NMOS都导通时所引起的功耗;低功耗设计方法在设计一个系统时必须清楚性能和功耗的关系,也就是说需要明白你的系统是需要在尽可能低功耗的条件下提高性能,还是在尽可能高性能的条件下降低功耗,这对于...

2019-07-27 21:34:12 14838 1

转载 中断及中断处理过程

1. 中断和异常的概念区别 Intel的官方文档里将中断和异常理解为两种中断当前程序执行的不同机制。这是中断和异常的共同点。 不同点在于: 中断(interrupt)是异步的事件,典型的比如由I/O设备触发;异常(exception)是同步的事件,典型的比如处理器执行某条指令时发现出错了等等。 中断又可以分为可屏蔽中断和非可屏蔽中断,异常又分为故障、陷阱和异常中止3...

2019-07-24 22:00:23 27327 4

转载 AXI总线概述

AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。AXI4.0-lite是AXI的简化版本,ACE4....

2019-07-24 10:27:11 33800 7

转载 同步复位与异步复位

简介在实际的工程中选择复位策略之前必须考虑许多设计方面的问题,如使用同步复位或者异步复位或者异步复位同步释放(Asynchronous Reset Synchronous Release或者Synchronized Asynchronous Reset),以及是否每一个触发器都需要进行复位。复位的基本目的是使器件进入到可以稳定工作的确定状态,这避免了器件在上电后进入到随机状态导致跑飞了。在实际...

2019-07-23 20:24:50 12823

转载 CPU的内部架构和工作原理

CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元(寄存器),这三部分由CPU内部总线连接起来。如下所示:控制单元:控制单元是整个CPU的指挥控制中心,由程序计数器PC(Program Counter), 指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Control...

2019-07-22 22:00:22 2368

转载 AHB总线

1.AHB概述AHB总线是一种专为高性能同步传输设计的总线,层次高于APB总线,支持以下特性:突发传输 拆分事务 主设备单时钟周期传输 单时钟沿操作 非三态实现 宽数据总线配置(64/128bit)1.1.典型AHB系统典型的AHB系统包括以下部分:可支持高带宽传输的主干总线 AHB主设备(如高性能CPU和DMA设备等) AHB从设备(存储器和APB桥等)1...

2019-07-22 17:17:45 19708

转载 跨时钟域信号处理——专用握手信号

下图是一个基本的握手通信方式。所谓握手,意即通信双方使用了专用控制信号进行状态指示。这个控制信号既有发送域给接收域的,也有接收域给发送域的,有别于前面的单向控制信号检测方式使用握手协议方式处理跨时钟域数据传输,只需要对双方的握手信号(req和ack)分别使用脉冲检测方法进行同步。在具体实现中,假设req、ack、data总线在初始化时都处于无效状态,发送域先把数据放入总线,随后发送有效的r...

2019-07-22 14:46:53 5141 3

转载 CMOS电路的功耗

CMOS电路主要有动态功耗和静态功耗组成,动态功耗又分为开关功耗、短路功耗(内部功耗)两部分;1.动态功耗动态功耗包括:开关功耗或称为反转功耗、短路功耗或者称为内部功耗;开关功耗:电路在开关过程中对输出节点的负载电容充放电所消耗的功耗。比如对于下面的CMOS非门中:当Vin=0时,PMOS管导通,NMOS管截止;VDD对负载电容进行充电;当Vin=1时,PMOS管截止,N...

2019-07-22 08:58:22 15715 1

转载 N+0.5分频器的verilog实现

先说一种设计思路:通过两个分频时钟的与操作实现。两个分频时钟的占空比均为(N+1)/(2*N+1),对于5.5分频电路来讲,其占空比为6/11,不过这两个分频时钟一个是基于时钟上升沿触发一个是基于时钟下降沿触发,并且时钟的初始化值相反,这样将这两个时钟相与就可以得到5.5分频的电路了.module half_div #(parameter N = 5)(input clk_in,inp...

2019-07-21 21:21:43 988 1

转载 verilog基础练习

输入一个8bit数,输出其中1的个数。如果只能使用1bit全加器,最少需要几个?看上面的思路,我们得出下面的过程:所以,总共用到7个全加器,代码如下://全加器module f_add( input a, input b, input ci, output s, output co ); assign {c...

2019-07-21 11:04:14 2423 1

转载 按键消抖

用verilog实现按键抖动消除电路,抖动小于15ms,输入时钟12MHz在编写Verilog代码之前,先分析下一些前提问题,首先是几个按键(1个,多个),我们以1个和三个为例;其次是算下按键按下后计数多少后,采样按键值,这个需要简单的运算:输入时钟为12MHz,也就是大约80ns的周期,那么去除15ms的抖动,需要计数多少次呢?经过计算,大约180000次,换成16进制为:2BF20...

2019-07-21 09:54:57 1984

转载 APB总线

AMBAAHB用于高性能、高时钟频率的系统模块;AMBAAPB则用于低功耗外设一般的系统会选择AHB/ASB+APB的总线架构,下图是一个典型的AMBA系统:用下图所示状态图可以表示APB总线传输过程中的状态转换关系:状态说明:IDLE :空闲状态,总线大部分时间处于此状态;SETUP :对应外设的psel信号被断言,表明对应外设即将有传输要求,总线进入SE...

2019-07-20 16:24:16 18118 4

转载 门控时钟

结构-1这种系统时钟门控的机制算然简单,但是容易使门控后的时钟不完整,甚至产生毛刺结构-2这种门控方法避免了门控时钟的不完整性,也可以避免避免毛刺的产生,但门控后的时钟可能会产生亚稳态结构-3这种结构解决了结构-2的亚稳态问题结构-4这种带测试模式的结构可以在测试时让时钟一直开着结构-5在ASIC进行后端测试的时候,有时候可能会将不同...

2019-07-19 21:32:40 10165 6

转载 异步fifo的设计

FIFOFirst In First Out是一种先进先出的数据缓存器,与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。FIFO一般用于不同时钟域之间的数据传输,或不同宽度的数据接口相连。F根据FIFO读写时钟域是否相同,可以将FIFO...

2019-07-18 23:39:21 3061 1

转载 异步fifo简介

一、概述在大规模ASIC或FPGA设计中,多时钟系统往往是不可避免的,这样就产生了不同时钟域数据传输的问题,其中一个比较好的解决方案就是使用异步FIFO来作不同时钟域数据传输的缓冲区,这样既可以使相异时钟域数据传输的时序要求变得宽松,也提高了它们之间的传输效率。此文内容就是阐述异步FIFO的设计。二、设计原理2.1结构框图如上图所示的同步模块synchronize to wr...

2019-07-18 21:57:20 4380 1

原创 数字IC面试题

Question D1): You can use just a NAND gate, How many ways can you come up withan inverter ?先列出真值表:即可以将A、B输入相连或者将其中一个输入置为高电平;Question D2): Make an INVERTER using only 2 input NOR gatesQue...

2019-07-18 16:45:29 6452

转载 乐鑫科技数字芯片2020

(1)序列发生器,产生周期性的"0010110111"序列module xlgen (clk,rst,Q);input clk ;input rst ;output Q ;reg Q ;reg [9:0] Q_r ;always @( posedge clk or posedge rst) begin if (rst...

2019-07-17 20:20:22 4223 2

转载 DDR原理

DDR SDRAM全称为Double Data Rate SDRAM,中文名为“双倍数据流SDRAM”。DDR SDRAM在原有的SDRAM的基础上改进而来。也正因为如此,DDR能够凭借着转产成本优势来打败昔日的对手RDRAM,成为当今的主流。本文只着重讲讲DDR的原理和DDR SDRAM相对于传统SDRAM(又称SDR SDRAM)的不同。SDRAM的接口速度是133M,DDR1接口的速度是...

2019-07-17 15:14:40 1904 1

转载 glitch-free的两个时钟切换电路

有毛刺的时钟切换电路原理图:这个时钟切换电路是一个纯组合逻辑,输出时钟(OUT CLOCK)由选择信号(SELECT)控制,当SELECT为1时输出CLK1,反之,输出CLK0.看似很简单,实现了时钟的切换,实则存在着很大的隐患,如下图所示:对上图的Verilog描述:assign outclk = (clk1 & select) | (~select &am...

2019-07-16 21:43:47 10396 4

原创 crond 任务调度

任务调度是指系统在某个时间执行的特定的命令或程序;任务调度分类:(1)系统工作: 有些重要的工作必须周而复始地执行, 如病毒扫描等(2)个别用户工作: 个别用户可能希望执行某些程序, 比如对 mysql 数据库的备份基本语法 crontab [选项]crontab –e : 修改 crontab 文件,如果文件不存在会自动创建;crontab...

2019-07-09 21:27:45 250

原创 进程管理

进程的基本介绍1)在 LINUX 中, 每个执行的程序(代码) 都称为一个进程, 每一个进程都分配一个 ID 号;2)每一个进程, 都会对应一个父进程, 而这个父进程可以复制多个子进程, 例如 www 服务器;3)每个进程都可能以两种方式存在的: 前台与后台. 所谓前台进程就是用户目前的屏幕上可以进行操作的, 后台进程则是实际在操作, 但由于屏幕上无法看到的进程, 通常使用后台方式执行;...

2019-07-09 20:14:01 174

转载 shell基础练习

1、编写shell脚本,实现1-100的猜数字游戏2、编写shell脚本,打印乘法口诀表3、编写shell脚本,计算1-100的和4、编写shell脚本,要求输入一个正整数,然后计算出从1到输入数字的和,要求如果输入的数字小于1,则重新输入,直到输入正确的数字为止5.冒泡排序重要的事情说三遍,赋值符号"="左右不能带空格!!!...

2019-07-06 16:34:16 267

原创 Linux常用命令

seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式、宽度、分割符号进行控制语法:  [1] seq [选项] 尾数  [2] seq [选项] 首数 尾数  [3] seq [选项] 首数 增量 尾数选项: -f, --format=格式 -s, --separator=字符串,...

2019-07-06 15:48:34 199

原创 Shell 输入/输出重定向

大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。重定向命令列表如下:需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR);输出重定向...

2019-07-06 11:00:53 4414

原创 Shell 函数

shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下: function funname [()]{ action; [return int;]}说明:1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。 2、参数返回,可以显示加:return 返回,如果不加,将以最后...

2019-07-05 22:00:12 204

原创 Shell 流程控制

if elseifif 语句语法格式:if conditionthen command1 command2 ... commandN fi# condition 可以用test也可以用[ ]末尾的fi就是if倒过来拼写,后面还会遇到类似的;if elseif else 语法格式:if conditionthen ...

2019-07-05 21:39:31 118

转载 Shell test 命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试符号含义:1. eq (equal的缩写),表示等于为真2. ne (not equal的缩写),表示不等于为真3. gt (greater than的缩写),表示大于为真4. ge (greater&equal的缩写),表示大于等于为真...

2019-07-04 21:27:38 431

原创 Shell常用命令和函数

Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:echo string1.显示普通字符串:echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例效果一致:echo It is a test2.显示转义字符echo "\"It is a test\"" 结果将是:"It is ...

2019-07-04 21:06:02 412

原创 Shell 基本运算符

Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):两点注意:表...

2019-07-04 20:43:36 151

原创 半导体存储的分类

半导体存储器芯片按照读写功能可分为只读存储器(Read Only Memory,ROM)和随机读写存储器(Random Access Memory,RAM)两大类;RAM可读可写,断电时信息会丢失;ROM中的内容只能读出,不能写入,信息可永久保存,不会因为断电而丢失;只读存储器只读存储器ROM是一种存储固定信息的存储器,其特点是在正常工作状态下只能读取数据,不能即时修改或重新写入数据;...

2019-07-04 16:29:42 1580

原创 Shell 数组

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:array_name=(value1 ... valuen)例子:my_array=(A B "C" D)也可以使用下标来定义数组...

2019-07-04 16:25:31 130

原创 Shell 传递参数

在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……例子如下:我们向脚本传递三个参数,并分别输出,其中$0为执行的文件名另外,还有几个特殊字符用来处理参数:例子:$* 与 $@ 区别:相同点:都是引用所有参数。 不同点:只有在双引号中体现出来。...

2019-07-04 15:33:19 196

原创 shell入门

Shell 是什么Shell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作 系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上 Shell ...

2019-07-04 14:51:51 453

原创 Linux之实用指令

关机&重启命令基本介绍 shutdown shutdown -h now 表示立即关机 shutdown -h 1 表示 1 分钟后关机 sh...

2019-07-03 20:51:49 389

原创 Linux之组管理和权限管理

Linux 组基本介绍在 linux 中的每个用户必须属于一个组, 不能独立于组外; 在 linux 中每个文件有所有者、 所在组、 其它组的概念。文件/目录 的所有者所有者一般为文件的创建者,谁创建了该文件, 就自然的成为该文件的所有者(1)查看文件的所有者指令 ls -ahl例子:创建一个组 police,再创建一个用户 tom,将 tom 放在 pol...

2019-07-03 11:31:35 486

原创 Linux之用户管理

基本介绍给大家画一个示意图, 帮助大家理解用户管理的规则1) Linux 系统是一个多用户多任务的操作系统, 任何一个要使用系统资源的用户, 都必须首先向系统管理员申请一个账号, 然后以这个账号的身份进入系统2) Linux 的用户需要至少要属于一个组与用户相关的操作和命令(1)添加用户基本语法 useradd [选项] 用...

2019-07-02 22:43:18 173

原创 Linux的目录结构以及相关指令

linux 的文件系统是采用级层式的树状目录结构, 在此结构中的最上层是根目录“/” , 然后在此目录下再创建其他的目录.记住一句经典的话: 在 Linux 世界里, 一切皆文件具体的目录结构:(1)/bin [重点] (/usr/bin 、 /usr/local/bin)是Binary的缩写, 这个目录存放着最经常使用的命令;(2)/home [重点]存放普通用...

2019-07-02 21:42:26 550

原创 vim 编辑器

所有的 Linux 系统都会内建 vi 文本编辑器;Vim 具有程序编辑的能力, 可以看做是 Vi 的增强版本, 可以主动的以字体颜色辨别语法的正确性, 方便程序设计。 代码补完、 编译及错误跳转等方便编程的功能特别丰富, 在程序员中被广泛使用.vim 的三种常见模式(1)正常模式在正常模式下, 我们可以使用快捷键。以 vim 打开一个文档就直接进入一般模式了(这是默认的模式)...

2019-07-02 16:50:13 2879 1

verilog新手入门资料

主要分为三个模块,verilog建模,时序,整合篇。FPGA 的逻辑资源,好比乐高 的积木,要组合乐高就是需要工具,那 Verilog HDL 就是 FPGA 建模的工具。

2017-10-09

空空如也

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

TA关注的人

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