摘要:本文是对NXP I2C-bus specification and user manual/UM10204/Rev. 6 — 4 April 2014的英文翻译。 3 I2C总线协议 3.1 标准模式,快速模式和快速加模式的I2C总线协议 二线,串行数据SDA和串行时钟SCL,在连接到总线上的设备之
阅读全文
摘要:Modem控制信号 调制解调器常常用来发起和接收呼叫。因此,编程调制解调器以尽可能高的速度协商连接是重要的,在连接停止后,将自己重置自己到已知的状态。 服务器将切换数据终端就绪信号(Data Terminal Ready-DTR)从打开到关闭以指示调制解调器中止连接。当DTR信号从打开到关闭发生时,
阅读全文
摘要:12.4 Generate construct generate构造用于在模型中有条件地或实例化的生成块。生成块是一个或多个模块项的集合。一个生成块不能包含端口声明、参数声明、指定块或specparam声明。所有其他模块项,包括其他的generate结构,都允许在一个generate块中。gener
阅读全文
摘要:7.10 Queues 队列是大小可变,同类元素的有序集合。队列支持对所有元素常量时间访问,常量时间插入和在对列的开始和末尾删除的操作。队列中的每个元素通过一个序号标识,这个序号代表了元素在对列中的位置,0代表第一个元素,
$代表最后一个元素。队列是和可以自动增长和收缩的一维的非合并数组类似。因此,
阅读全文
摘要:7.5 Dynamic arrays 动态数组是非合并数组,它的大小可以在仿真运行时可以被设置或改变。未初始化的动态数组大小是零。动态数组的大小是通过new构造函数或数组赋值设置。动态数组支持所有的数据类型作为元素类型,包括数组。 动态数组的维度在数组声明中表示。任何在数组声明中的非合并维度可能是一
阅读全文
摘要:除了前一节讨论的拉电阻基本使用方法外,上拉电阻也可以提升高电平的电压阈值,以便于前后级信号相匹配,比如,TTL逻辑电平驱动CMOS逻辑电平时,我们通常会添加一个上拉电阻R1,如下图所示: 我们先来看看TTL电平标准图与CMOS电平标准图,如下图所示: 可以看到,TTL逻辑输出的低电平最大值VOLMA
阅读全文
摘要:拉电阻作为输出(或输入输出)时牵涉到的知识点会更多一些,但本质的功能也是将电平箝位,最常见的输出上拉电阻出现在开集(Open Collector,OC)或开漏(Open Drain,OD)结构的引脚。 OC(OD)的引脚输出结构有所不同(OC结构存在于三极管,而OD结构存在于场效管,下面以OC输出结
阅读全文
摘要:拉电阻作为输出(或输入输出)时牵涉到的知识点会更多一些,但本质的功能也是将电平箝位,最常见的输出上拉电阻出现在开集(Open Collector,OC)或开漏(Open Drain,OD)结构的引脚。 我们有很多芯片的输出引脚是推挽输出结构(Output Push-Pull),如下图所示(还有一种反
阅读全文
摘要:上拉(Pull Up )或下拉(Pull Down)电阻(两者统称为“拉电阻”)最基本的作用是:将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉),无论它的具体用法如何,这个基本的作用都是相同的,只是在不同应用场合中会对电阻的阻值要求有所不同,从而也引出了诸多新的概念,本节我们
阅读全文
摘要:Verilog已有一些建立好的逻辑门和开关的模型。在所设计的模块中,可通过实例引用这些门与开关模型,从而对模块进行结构化的描述。 逻辑门: and (Output, Input, ...) //与门 nand (Output, Input, ...) //与非门 or (Output, Input,
阅读全文
摘要:Net是结构描述中为线路连接(连线和接线)建立的模型。net的值是由net的驱动所决定的。驱动器可以是门、UDP、实例模块或者连续赋值语句的输出。 语法: 1.supply0和supply1类型的net变量分别具有逻辑值0和1,并可以为它定义驱动能力(supply strength); 2.tri0
阅读全文
摘要:除了逻辑值外,net类型的变量还可以定义强度,因而可以更精确的建模。net的强度来自于动态net驱动器的强度。在开关级仿真时,当net由多个驱动器驱动且其值互相矛盾时,可常用强度的概念来描述这种逻辑行为。 (strength0, strength1) (strength1, strength0) (
阅读全文
摘要:字符串能够用在系统任务(诸如
display和monitor等)中作为变量,字符串的值可以像数字一样储存在寄存器中,也可以像对数字一样对字符串进行赋值,比较和拼接。 用法: 1.一条字符串不能占源代码的多行; 2.字符串可以包含下列列表中的扩展字符; 3.诸如
display和monitor等系
阅读全文
摘要:软核: 把经过功能验证的、可综合的、实现后电路结构总门数在五千门以上的Verilog HDL模型称为软核(soft core)。 硬核: 把在某一种专用集成电路工艺的(ASIC)器件上实现的、经过检验证明是正确的、总门数在五千门以上的电路结构版图称为硬核。 固核: 把在某一种现场可编程门阵列(FPG
阅读全文
摘要:在Verilog中经常会遇到pullup、pulldown和assign (strength0, strength1),那么它们究竟有什么区别? 它们之间的区别主要是语法和驱动强度。 pullup、pulldown看做是门级原语,assign语句看做是RTL。 SystemVerilog接口不允许门
阅读全文
摘要:首先说一下SystemVerilog中标量和向量的区别 声明为reg、logic或bit(或匹配的用户定义类型或隐式为逻辑)而没有范围规范的数据对象应被视为1位宽,并被称为标量。 这些类型之一的多位数据对象应通过指定一个范围来声明,称为向量。向量是标量的压缩数组。 11.5.1 Vector bit
阅读全文
摘要:在Verilog中,所有的线网和变量都是使用四态值,因此没必要也不能清晰的区分信号类型。 为了增强灵活性,SystemVerilog中定义信号同时具有类型和数据类型两个属性。 类型指示信号是属于线网(net)还是变量(var)。SV使用所有的Verilog线网类型,并且没有进行任何拓展。 需要注意的
阅读全文
摘要:6.5 Nets and variables 数据对象有两组:变量和线网。这两组不同之处在于它们被赋值和保持值的方式不同。 线网可以由一个或多个驱动连续赋值,原语输出或通过模块输出端口写入。多个驱动的结果值是由线网类型的分辨函数决定。线网不可以使用过程赋值。如果端口一侧的线网被另一侧的变量驱动,则里
阅读全文
摘要:在cshell中,我们经常需要按文件的一行一行读取,通常按下面的方法: set lines=`cat /etc/passwd` set i=1 while (
i<=#lines ) echo
lines[i] @ i = $i + 1 end 但是这样会发生错误,因为在读取过程中,ch
阅读全文
摘要:7.8 pullup and pulldown sources 上拉或下拉源的实例化声明应该以以下关键词之一开始: pullup pulldown 一个上拉源应该对连接到它的终端列表中的net赋值1,下拉源应该对连接到它的终端列表中的net赋值0。 在缺少强度的情况下,对net放置的这些源信号应该有
阅读全文
摘要:本文来自IEEE Standard for Verilog Hardware Description Language中4.6 Net types 4.6 net类型 有几种不同类型net,如表4-1所示: Table 4-1—Net types |wire|tri|tri0|supply0| |
阅读全文
摘要:本文来自IEEE Standard for Verilog Hardware Description Language中4.4 strength 1 强度strength 在net声明中指定的两种类型强度如下: 当声明trireg类型的线网时应该使用充电强度charge strength 当在相同的
阅读全文
摘要:本文是对NXP I2C-bus specification and user manual/UM10204/Rev. 6 — 4 April 2014的英文翻译。 目录 1引言 2 I2C总线特性 2.1 设计者的好处 2.2 制造商的好处 2.3 IC设计者的好处 3 I2C总线协议 3.1 标准
阅读全文
摘要:接下来该看redistributor了。 图1 GIC-600 redistributor 跟distributor连接的部分就不说了。Cpu_active是指示cluster或core的状态,可以用于idle管理。ppi_id用于多核设计时,区分每个redistributor。PPIs就是PPI中
阅读全文
摘要:开始之前,先声明一下,ARM系列的全部文章都参考的是公开文档。如果大家有需要,可以去ARM的官方网站下载。我手里没有任何非公开的文档。 闲话少说,今天开始扒GIC-600。 为了适应大规模的SoC设计,GIC-600被设计成分布式IP。所谓分布式,GIC-600由几种组件构成,每个组件可以跟其它相关
阅读全文
摘要:今天来看一下中断及ARM体系中对中断的处理,直接进入正题。 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。 中断的几个主要目的。第一,通过中断可以提高CPU效率。假设一种场景,CPU通知其它设备完成
阅读全文
摘要:异常(exception)和特权(privilege)是在ARMv8-A中定义的两个概念。 现代软件期望被分成不同的模块,每个模块对系统和处理器资源具有不同的访问级别。这方面的一个例子是操作系统内核和用户应用程序之间的分离,前者具有对系统资源的高级别访问权限,后者配置系统的能力更为有限。 Armv8
阅读全文
摘要:什么是cache Cache存储器也被称为高速缓冲存储器,位于CPU和主存储器之间。之所以在CPU和主存之间要加cache是因为现代的CPU频率大大提高,内存的发展已经跟不上CPU访存的速度。在2001 – 2005年间,处理器时钟频率以每年55%的速度增长,而主存的增长速度只是7%。在现在的系统中
阅读全文
摘要:有朋友提出希望讲一下AXI的原子访问(Atomic Accesses)。其实这部分我在前面特意没提及,一是个人感觉这块牵扯的基本概念太多,而且晦涩难懂,二是工作中真需要用到的机会也不多。今天简单介绍一下,有不对的地方请大家指教。 何为“原子性”?在这里,“原子性”指的是内存访问的一个特征,也称为原子
阅读全文
摘要:今天先来看一下传输标识(transaction identifier)的概念,主要是ID信号。 开始之前先讲几个概念,首先是outstanding(想不好怎么翻译,有的人译为超前)传输。如果没有outstanding能力,或者说outstanding=1时,主机的读操作顺序是:读地址命令->等待读数
阅读全文
摘要:来看看事务属性(Transaction Attributes),主要是对cache,buffer和memory controller的规定。按照协议,从机分为存储从机(memory slave)和外设从机(peripheral slave)。存储从机要能够正确执行所有的事务,外设从机处理事务的能力取
阅读全文
摘要:了解完通道握手的依赖关系,我们再看看传输事务的结构。首先看传输的地址结构。AXI协议是基于突发(burst)传输的。所谓突发传输,就是在一次事务中,连续地传输多个地址相邻的数据。一次突发传输中可以包含一至多次数据(Transfer)。每个 transfer 因为使用一个周期,又被称为一拍数据(Bea
阅读全文
摘要:前面说到AXI的五个通道是独立的,但通道间必须保持一定的约定关系: 写回复必须在一次写事务的最后一个写数据之后 读数据必须在接收到读地址信号之后 通道间握手必须满足一定的依赖关系 前两条好理解,重点看一下第三条。之前讲过,为了避免死锁,协议规定发送方的VALID不能依赖接收方的READY;反过来,接
阅读全文
摘要:AXI的全称是Advanced eXtensible Interface。在spec里面是这么自夸的: •用于高带宽和低延迟设计。 •提供高频操作,无需使用复杂电桥。 •协议满足各种组件的接口要求。 •适用于具有高初始访问延迟的内存控制器。 •提供了实现互连架构的灵活性。 •与AHB和APB接口向后
阅读全文