芯片
luoganttcc
微信:luogantt
展开
-
优秀的 Verilog/FPGA开源项目介绍(二十)- 张量处理单元(TPU)
张量处理单元( Tensor Processing Unit, TPU ) 是谷歌专门为神经网络机器学习开发的人工智能加速器 专用集成电路(ASIC) ,特别是使用谷歌自己的TensorFlow软件。谷歌于 2015 年开始在内部使用 TPU,并于 2018 年将它们作为其云基础设施的一部分并通过提供较小版本的芯片出售给第三方使用。张量处理单元于 2016 年 5 月在Google I/O上宣布:当时该公司表示 TPU 已经在其数据中心内使用了一年多。该芯片专为 Google 的TensorFlow框架设计原创 2022-12-07 17:38:20 · 1687 阅读 · 0 评论 -
谷歌开源 芯片
link原创 2022-12-07 17:28:32 · 104 阅读 · 0 评论 -
【FPGA篇】“Error (119013): Current license file does not support the EP4CE10F17C8 device”
破解的时候一定要 以管理员身份运行,否则破解不成功!原创 2022-12-05 20:10:47 · 317 阅读 · 0 评论 -
Quartus-II 13.1 详细安装、注册、配置步骤
是 FPGA 设计开发软件,也就是集成复杂的门电路的设计软件。本文对 quartus 进行安装、注册、配置。转载 2022-12-01 10:21:04 · 6508 阅读 · 1 评论 -
verilog 教程
基础教程高级教程原创 2022-11-29 12:10:22 · 113 阅读 · 0 评论 -
Verilog 时延
在上述例子中,A 或 B 任意一个变量发生变化,那么在 Z 得到新的值之前,会有 10 个时间单位的时延。如果在这 10 个时间单位内,即在 Z 获取新的值之前,A 或 B 任意一个值又发生了变化,那么计算 Z 的新值时会取 A 或 B 当前的新值。由于信号 ai 第二个高电平持续时间小于 20ns,so_lose 信号会因惯性时延而漏掉对这个脉冲的延时检测,所以后半段 so_lose 信号仍然为 0。由于所有的时延均大于 5ns,所以信号 so_get 的结果为与操作后再延迟 5ns 的结果。转载 2022-11-28 19:52:26 · 343 阅读 · 0 评论 -
Verilog中仿真事件中的不同延时方法
Verilog中仿真事件中的不同延时方法电路的延时在实际电路中存在两种延迟,惯性延迟 (Inertial delay) 和传导延迟 (Transport delay)。惯性延迟定义:若元件的输入信号的脉冲宽度小于一定值时,元件的输出没有响应,也就是说元件具有一定的惯性。产生原因:当脉冲到达时,由于脉冲宽度小于元件本身的延迟,当脉冲结束时,元件的新输出还未建立起来。考虑了电路中存在的大量分布电容。传导延迟定义:输入信号变化到对应输出信号变化经过的时间,类似于物理传输线的延迟。转载 2022-11-28 19:46:48 · 1371 阅读 · 0 评论 -
verilog 多路选择器四选一
【代码】verilog 多路选择器四选一。原创 2022-11-28 18:19:22 · 2581 阅读 · 0 评论 -
verilog状态机 三段式 状态机 (代码 可以运行)
硬件设计很讲究并行设计思想,虽然用描述的电路大都是并行实现的,但是对于实际的工程应用,往往需要让硬件来实现一些具有一定顺序的工作,这就要用到状态机思想。什么是状态机呢?简单的说,就是通过不同的状态迁移来完成一些特定的顺序逻辑。硬件的并行性决定了用Verilog描述的硬件实现(臂如不同的always语句)都是并行执行的,那么如果希望分多个时间完成一个任务,怎么办?也许可以用多个使能信号来衔接多个不同的模块,但是这样做多少显得繁琐。状态机的提出会大大简化这一工作。”——特权同学《深入浅出玩转FPGA》原创 2022-11-28 17:25:40 · 4267 阅读 · 0 评论 -
Verilog | 存储单元读写设计
在Verilog当中存储器的定义本质定义一个2维数组。//good_mem是256个8位的寄存器构成的阵列,实际可以存放2Mbit的数据你可能发现了这个后面good_mem内标号顺序和正常定义数组不同,这个其实只是表示了在存储器堆里面,从上到下,每一个寄存器编号不同,无论顺序是[0:255],还是[255:0],这个存储容量都是一样的。以下是good_mem[0:255],如果是改成good_mem[255:0]只是寄存器的编号逆序。其它没有区别。转载 2022-11-25 18:55:01 · 1835 阅读 · 0 评论 -
数字IC设计——数组、存储器(Memory)的定义及Verilog语言实现(二)(存储器的读、取、及初始化赋值)
Verilog中提供了两维数组来帮助我们建立内存的行为模型。具体来说,就是可以将内存定义为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问。这样的数组的定义方式如数组(内存)定义11其中[7:0]是内存的宽度(位宽),而[0:255]则是内存的深度(也就是有多少存储单元),其中宽度为8位,深度为256。地址0对应着数组中的0存储单元。写操作:如果要存储一个值到某个单元中去,可以这样做:1读操作: 而如果要从某个单元读出值,可以这么做:1读取内存中的某一位或者多位。转载 2022-11-25 18:53:29 · 3593 阅读 · 1 评论 -
Verilog generate block
【代码】Verilog generate block。原创 2022-11-25 11:08:02 · 120 阅读 · 0 评论 -
verilog generate
i=0 a=0x0 b=0x0 选择=0x0 输出=0x0。i=1 a=0x0 b=0x1 选择=0x1 输出=0x1。i=2 a=0x1 b=0x1 选择=0x1 输出=0x1。i=0 a=0x0 b=0x0 选择=0x0 输出=0x0。i=1 a=0x0 b=0x1 选择=0x1 输出=0x0。i=2 a=0x1 b=0x1 选择=0x1 输出=0x1。i=3 a=0x1 b=0x0 选择=0x1 输出=0x1。i=4 a=0x1 b=0x0 选择=0x1 输出=0x1。原创 2022-11-25 10:43:02 · 1330 阅读 · 0 评论 -
Verilog模块与端口
模块内部有可选的 5 部分组成,分别是变量声明,数据流语句,行为级语句,低层模块例化及任务和函数,如下图表示。input、inout 类型不能声明为 reg 数据类型,因为 reg 类型是用于保存数值的,而输入端口只能反映与其相连的外部信号的变化,不能保存这些信号的值。模块名,端口信号,端口声明和可选的参数声明等,出现在设计使用的 Verilog 语句(图中 Declarations_and_Statements)之前。对于外部环境来说,模块内部是不可见的,对模块的调用只能通过端口连接进行。转载 2022-11-25 10:40:39 · 519 阅读 · 0 评论 -
verilog 内置语句
门(drive_strength)#(2delays)instance_name[range](list_of_ports);门或开关声明以确定门或开关类型的关键字开头,后跟强度和延迟声明、实例名称、范围以及到门或开关端口的连接列表。门#(3delays) instance_name[range] (list_of_ports);这些逻辑门(示例 1)的实例化可以包含零个、一个或两个延迟。这些逻辑门的实例化(示例 2)可以包含零个、一个或两个延迟。端口列表中的最后一个端口是输入端口。原创 2022-11-25 10:40:19 · 919 阅读 · 0 评论 -
Verilog中三态门(高阻态)的理解与例子
高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定的。当门电路的输出上拉管导通而下拉管截止时,输出为高电平;反之就是低电平;如上拉管和下拉管都截止时,输出端就相当于浮空(没有电流流动),其电平随外部电平高低而定,即该门电路放弃对输出端电路的控制 。转载 2022-11-24 17:54:49 · 1776 阅读 · 0 评论 -
Verilog 循环语句
repeat 的功能是执行固定次数的循环,它不能像 while 循环那样用一个逻辑表达式来确定循环是否继续执行。如果循环次数是变量信号,则循环次数是开始执行 repeat 循环时变量信号的值。Verilog 循环语句有 4 种类型,分别是 while,for,repeat,和 forever 循环。一般来说,因为初始条件和自加操作等过程都已经包含在 for 循环中,所以 for 循环写法比 while 更为紧凑,但也不是所有的情况下都能使用 for 循环来代替 while 循环。转载 2022-11-24 17:26:03 · 1223 阅读 · 0 评论 -
Verilog 多路分支语句
但是 case 语句中的 x 或 z 的比较逻辑是不可综合的,所以一般不建议在 case 语句中使用 x 或 z 作为比较值。case 语句是一种多路条件分支的形式,可以解决 if 语句中有多个条件选项时使用不方便的问题。当多个条件选项下需要执行相同的语句时,多个条件选项可以用逗号分开,放在同一个语句块的候选项中。default 语句是可选的,且在一个 case 语句中不能有多个 default 语句。casex、 casez 语句是 case 语句的变形,用来表示条件选项中的无关项。原创 2022-11-24 16:59:12 · 632 阅读 · 0 评论 -
Verilog 条件语句
事例中 if 条件每次执行的语句只有一条,没有使用 begin 与 end 关键字。但如果是 if-if-else 的形式,即便执行语句只有一条,不使用 begin 与 end 关键字也会引起歧义。当然,编译器一般按照就近原则,使 else 与最近的一个 if(例子中第二个 if)相对应。例如下面代码,虽然格式上加以区分,但是 else 对应哪一个 if 条件,是有歧义的。条件语句用关键字 if 和 else 来声明,条件表达式必须在圆括号中。条件(if)语句用于控制执行语句要根据条件判断来确定是否执行。原创 2022-11-24 16:44:34 · 3185 阅读 · 0 评论 -
Verilog 语句块(2) 嵌套块
并行块语句块内是并行执行,所以信号 ai_paral2 和信号 bi_paral2 分别在 10ns, 15ns 时被赋值。而并行块中最长的执行时间为 15ns,所以顺序块中的信号 bi_sequen2 在 35ns 时被赋值。原创 2022-11-24 15:31:15 · 151 阅读 · 0 评论 -
Verilog 语句块(一)
而并行块,ai_paral 与 bi_paral 的赋值是同时执行的,所以均在 5ns 时被赋值。如图所示,顺序块顺序执行,第 10ns 时,信号 bi_sequen 才赋值为 8。在本节之前的仿真中,initial 块中的阻塞赋值,都是顺序块的实例。顺序块中每条语句的时延总是与其前面语句执行的时间相关。并行块中每条语句的时延都是与块语句开始执行的时间相关。顺序块中的语句是一条条执行的。当然,非阻塞赋值除外。并行块中的语句是并行执行的,即便是阻塞形式的赋值。顺序块与并行块的区别显而易见,下面用仿真说明。转载 2022-11-24 15:21:19 · 95 阅读 · 0 评论 -
Verilog 时序控制
关键字 posedge 指信号发生边沿正向跳变,negedge 指信号发生负向边沿跳变,未指明跳变方向时,则 2 种情况的边沿变化都会触发相关事件。事件控制主要分为边沿触发事件控制与电平敏感事件控制。当多个信号或事件中任意一个发生变化都能够触发语句的执行时,Verilog 中使用"或"表达式来描述这种情况,用关键字。同理,55ns 时,value_test 值为 1,将其赋值给 value_embed 并延迟 30ns 输出。当延时语句的赋值符号右端是变量时,2 种时延控制可能会产生不同的延时赋值效果。原创 2022-11-24 14:51:00 · 353 阅读 · 0 评论 -
阻塞赋值 非阻塞赋值
如下所示,2 个 always 块中语句并行执行,赋值操作右端操作数使用的是上一个时钟周期的旧值,此时 a原创 2022-11-24 13:40:09 · 543 阅读 · 0 评论 -
always 语句
与 initial 语句相反,always 语句是重复执行的。always 语句块从 0 时刻开始执行其中的行为语句;当执行完最后一条语句后,便再次执行语句块中的第一条语句,如此循环反复。下面用 always 产生一个 100MHz 时钟源,并在 1010ns 时停止仿真代码如下。由于循环执行的特点,always 语句多用于仿真时钟的产生,信号行为的检测等。原创 2022-11-24 13:13:37 · 1083 阅读 · 0 评论 -
initial语句
每个 initial 语句或 always 语句都会产生一个独立的控制流,执行时间都是从 0 时刻开始。initial 语句从 0 时刻开始执行,只执行一次,多个 initial 块之间是相互独立的。如果 initial 块内包含多个语句,需要使用关键字 begin 和 end 组成一个块语句。但是 initial 语句或 always 语句内部可以理解为是顺序执行的(非阻塞赋值除外)。一个模块中可以包含多个 initial 和 always 语句,但 2 种语句不能嵌套使用。原创 2022-11-24 12:47:07 · 1461 阅读 · 0 评论 -
4.1.3 vivado中AXI写DDR说明
下面为几个常用的 AXI 接口 IP 的功能介绍:AXI-DMA:实现从 PS 内存到 PL 高速传输高速通道 AXI-HPAXI-Stream 的转换。AXI-FIFO-MM2S:实现从 PS 内存到 PL 通用传输通道 AXI-GPAXI-Stream 的转换。AXI-Datamover:实现从 PS 内存到 PL 高速传输高速通道 AXI-HPAXI-Stream 的转换,只不过这次是完全由 PL 控制的,PS 是完全被动的。原创 2022-11-23 08:27:59 · 2553 阅读 · 0 评论 -
Verilog十大基本功1(流水线设计Pipeline Design)
3)片内 sram 的读操作,因为 sram 的读操作本身就是两极流水线,除非下一步操作依赖读结果,否则使用流水线是自。来获得第一个计算结果,称 为首次延迟,它要 2*( Tpd+Tco),但是执行重复操作时,只要一个时钟周期来获得最后的。2) 缺点: 功耗增加,面积增加,硬件复杂度增加,特别对于复杂逻辑如 cpu 的流水线而言,流水越深,发生。这里讲到的流水线,主要是一种硬件设计的算法,如第一条中表述的流水线设计就是将组合逻辑系统地分割,并在各。使用流水线一般是时序比较紧张,对电路工作频率较高的时候。转载 2022-11-22 21:09:55 · 639 阅读 · 0 评论 -
Verilog十大基本功2(testbench的设计 文件读取和写入操作 源代码)
https://blog.csdn.net/Times_poem/article/details/52036592转载 2022-11-22 20:56:34 · 181 阅读 · 0 评论 -
Verilog十大基本功3(testbench的设计 iout类型端口信号处理)
总体感觉, testbench 是个很难的事情, 这里讨论的只是一些最基本的东西。如果是在 ModelSim 中作为单独的模块仿真,那么在模块输出的时候,不能使用 force 命令将其设为高阻态,而是使用。也就是说, 在内部模块最好不要出现 inout,如果确实需要,那么用两个 port 实现,到顶层的时候再用三态实现。方法二: 使用 force 和 release 语句,但这种方法不能准确反映双向端口的信号变化,但这种方法可以反在块内。芯片外部引脚很多都使用 inout 类型的,为的是节省管腿。转载 2022-11-22 20:54:19 · 745 阅读 · 0 评论 -
Verilog十大基本功4 (FPGA四大设计要点)
的用处比我们平时想象的用处更广泛,原因在于其中集成的模块种类更多,而不仅仅是原来的简单逻辑单元(LE)。早期的FPGA相对比较简单,所有的功能单元仅仅由管脚、内部buffer、LE、RAM构建而成,LE由LUT(查找表)和D触发器构成,RAM也往往容量非常小。现在的FPGA不仅包含以前的LE,RAM也更大更快更灵活,管脚IOB也更加的复杂,支持的IO类型也更多,而且内部还集成了一些特殊功能单元,包括:DSP:实际上就是乘加器,FPGA内部可以集成多个乘加器,而一般的DSP芯片往往每个core只有一个。转载 2022-11-22 20:50:27 · 339 阅读 · 0 评论 -
Verilog十大基本功6 (关于Verilog的可综合性)关于Verilog的可综合性
(1)所有综合工具都支持的结 构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,notif0,notif1,if,inout,input,instantitation,module,negedge,posedge,operators,output,parameter。= DataOut;转载 2022-11-22 20:47:45 · 414 阅读 · 0 评论 -
Verilog十大基本功8 (flipflop和latch以及register的区别)
比如现在用一个clk接到latch的使能端(假设是高电平使能),这样需要的setup时间,就是数据在时钟的下降沿之前需要的时间,但是如果是一个DFF,那么setup时间就是在时钟的上升沿需要的时间。latch是电平触发,相当于有一个使能端,且在激活之后(在使能电平的时候)相当于导线了,随输出而变化,在非使能状态下是保持原来的信号,这就可以看出和flip-flop的差别,其实很多时候latch是不能代替ff的。锁存器的输出对输入透明的,输入是什么,输出就是什么,这就是锁存器不稳定的原因,转载 2022-11-22 20:42:44 · 935 阅读 · 0 评论 -
Verilog十大基本功0(阻塞赋值与非阻塞赋值)
阻塞与非阻塞赋值是 Verilog 语言中最基本的部分,也是让大部分 Verilog 新手最困惑的地方。关于阻塞与非阻塞的著作文章可谓汗牛充栋,这些文章对阻塞与非阻塞赋值的原理进行了非常详细的讲解,但新手读了之后依然有种似懂非懂的感觉,编码过程中一如既往的犯错。所以,本文的目的立足于提供一种实用化的解决方案,用最简单的语言和形象的类比让新手能够一目了然的明白正确的编码方式以及相应的电路行为逻辑,关于仿真细节的讲解不是本文重点,需要了解更多细节的朋友可以参考文后列举的参考文献。转载 2022-11-22 20:22:36 · 476 阅读 · 0 评论 -
ZYNQ-AXI_GP接口和AXI_HP接口的异同
对于GP接口(general purpose)通用目的接口,有四个接口(两个从端口,两个主端口);GP接口直接连接到的是中央互联区(central interconnect),然后由中央互联区再连接到OCM interconnect和存储器接口上;AXI_GP接口直接连接到主互连和从互连的端口,没有任何额外的FIFO缓冲,不像AXI_HP接口使用FIFO缓冲以提高性能和吞吐量。学习关于ZYNQ IP核中的GP接口和HP接口的异同,介绍关于AXI_GP接口和AXI_HP接口的相关内容。转载 2022-11-21 17:27:35 · 3183 阅读 · 0 评论 -
ZYNQ中PS、PL的含义
(Snoop Control Unit),用来保持双核之间的数据Cache的一致性,两个ARM-Cortex A9,如果一个写存储时只写进缓存,没写进主存,如果第二个A9读操作,涉及到第一个写脏了的数据段, SCU要保证第二个A9的缓存里是最新的数据。系统级看门狗定时器, 这个看门狗的时钟和复位信号,都可以来自于芯片外部, 这样,即使系统有严重故障,比如时钟频率本身都有问题了,仍然可以通过与系统无关的外部信号计数,计数满就复位。两部分,PS就是ARM的SOC部分,是整块板子的处理系统。转载 2022-11-21 17:25:50 · 1383 阅读 · 0 评论 -
zynq 资源表格
zynq原创 2022-11-21 12:44:53 · 154 阅读 · 0 评论 -
一篇文章讲清楚芯片设计全流程及相关岗位划分
IC是Integrated Circuit的缩写,即集成电路,是我们所说的芯片,IC设计就是芯片设计。这里就需要科普一个概念:一颗芯片是如何诞生的?就目前来说,有两种芯片产出的模式。1、一条龙全包IC制造商(IDM)自行设计,由自己的产业线进行加工、封装、测试、最终产出芯片。2、环节组合IC设计公司(Fabless)与IC制造公司(Foundry)相结合,设计公司将最终确定的物理版图交给Foundry加工制造,封装测试则交给下游厂商。而IC设计,即上游设计中所处的部分。原创 2022-11-18 22:01:17 · 2969 阅读 · 0 评论 -
从设计到流片丨芯片设计全流程及要用到的EDA工具
(对synopsys 的Astro 而言, 经过综合后生成的门级网表,时序约束文件 SDC 是一样的,Pad的定义文件–tdf , .tf 文件 --technology file,Foundry厂提供的标准单元、宏单元和I/O Pad的库文件 就与FRAM, CELL view, LM view形式给出(Milkway 参考库 and DB, LIB file)Foundry厂都有对金属密度的规定,使其金属密度不要低于一定的值,以防在芯片制造过程中的刻蚀阶段对连线的金属层过度刻蚀从而降低电路的性能。原创 2022-11-18 20:46:51 · 1516 阅读 · 0 评论 -
FPGA驱动eMMC系列(一)-------简介
由于项目需要使用到eMMC存储器,所以特地的去学习了一下。在网上也找了许多资料,但大多是介绍性的,以及对文档的翻译,没能很好的讲解如何从零编写Verilog代码来控制eMMC。看了很多文章,但大多大同小异,还是无从下手。故在这里分享我的学习例程,教大家如何编写eMMC驱动,以使用为主,至于一些理论和不相关就不作介绍了,同时可以作为参考,避免踩坑,同时欢迎大家与我交流,共同进步。本例基于JESD84-B50手册进行学习,也就是eMMC5.0,目前最新的好像是eMMC5.1,但差距应该不大。转载 2022-11-17 15:02:02 · 1334 阅读 · 1 评论 -
ARM 的 的 AMBA 总线
公司的CoreConnect总线、Silicore Corp公司的Wishbone总线以及Altera公司的Avalon。SoC 设计的需要。对 IP 核的准确评估和选择是 IP 集成的基础,高效灵活的 IP 核互连结构是 IP 集。AXI 总线的整体架构,选取了总线互联方式,设计了仲裁器模块并对 Decoder 模块、并且根据不同类型的连接对象,分别定义了 AHB、ASB 核 APB 三种类型的总线。第三章,AXI 总线的设计。不同的片上总线在不同的应用领域具有各自的优势,由于 ARM 公司的合作伙伴。原创 2022-11-17 11:57:50 · 664 阅读 · 0 评论