自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 AHB的一些细节问题

AHB的一些细节:【问题一】问:WRAP是做什么用的,为什么地址要循环答:用于CPU填充cacheline的时候第一个访问的地址是0x90,加到9c之后,会从cacheline的起始地址继续传输。对于cache的访问不应该跨过cache line的边界这个cache line一共有8个双字,也就是32byte,为最低5位地址,【问题二】问:为什么要burst传输,跟singl...

2019-12-23 21:54:11 1429

转载 AHB2和AHB-Lite的区别

http://bbs.eetop.cn/thread-870936-1-1.html

2019-12-21 21:37:05 1286 2

原创 AMBA APB总线 学习笔记

APB:主要用于寄存器和外设的访问APB的优点:1、协议简单,方便模块设计,比如APB slave和APB MUX2、功耗低,因为时钟频率低APB2信号时序:读操作跟写操作唯一不同的就是PWRITE信号问题:PENABLE是干嘛的这个PENABLE是给组合逻辑用的问题:APB2协议上的从器件没有ready信号,如果2 cycle响应不了怎么办?对于APB来说,挂着的...

2019-12-20 21:00:13 1112

原创 Cache 基本概念

cache用来存放最近CPU访问的一些memory的数值L1 Cache:离CPU比较近的cache,有i-Cache,D-CacheL2 Cache:离CPU比较远的cache,如果没有内部的,可以在外面加CPU尽可能从cache里取数据,就减少了向外面访问的频率同时也减小了功耗,外部功耗会比较大,内部memory功耗较小尽可能让cpu对onchip的部件进行操作Cache结构:采...

2019-12-19 21:50:23 176

原创 蜂鸟E200 RISC-V CPU:(一)取指

【取指过程】【概述】画圈的是有关取值的两个重要模块IFU:Instruction Fetch Unit 取指单元ITCM:紧耦合存储器,指配置一段较小容量(几十KB)的存储器(通常是静态存储器),用来存储指令,在物理上离处理器核很近而专属于处理器核。优点是实现非常简单,容易理解,且能保证实时性。【IFU】源代码的Hierarchy如下:示意图:E200处理器采用两级流水线,取...

2019-12-18 21:35:03 1179 1

原创 AMBA AHB学习总结

AMBA总线概述系统总线简介:系统芯片中,各个模块之间需要有接口来连接,总线作为子系统之间共享的通信链路其优点是低成本、方便易用,缺点是会造成性能瓶颈。AMBA 2.0AMBA全称Advanced Microcontroller Bus Architecture高级微控制器总线架构定义了三种总线:AHB(Advanced High-performance Bus):高性能总线ASB...

2019-11-17 14:33:47 739

原创 Clock switch with glitch-free电路

时钟域切换:MUX?这种方式是不行的。在时钟切换的瞬间,会出现glitch,上升沿的突然出现,会导致两边的时序不满足要求。方案:打三拍通过一个ICG门控,再输出。RTL:使能指示信号(cgm_sel)变动之后,经过两级同步器,过两拍,原使能无效(assign ind_in0 = in0_en_sync2),再在原时钟域打一拍(或上in0_en_syn3),in0_used变...

2019-11-13 21:39:50 284

原创 CDC与亚稳态问题

建立时间和保持时间:建立时间:在有效的时钟沿到来之前,输入端的输入信号需要保持稳定不变的最小时间保持时间:在有效的时钟沿到来之后,输入端的输入信号需要保持稳定不变的最小时间如果不满足建立时间和保持时间的要求,电路就会进入亚稳态。建立时间和保持时间由工艺决定。如果触发器的恢复能力较强,可以在一个时钟周期之内恢复稳定的输出,但是不能确定是稳定在0上还是1上,而是一个与D端无关的随机值。如...

2019-11-08 20:38:55 366

原创 VCS逻辑仿真工具-03——后处理:VCD+文件

内容:交互式:仿真中断了或者停下来了去处理一些问题后处理模式:先仿真——产生波形——保存下来——再打开将波形文件在仿真的时候记录下来,之后再把波形文件打开查看一下。vcd+文件:对于大型的Soc项目来说,波形文件会非常大,打开会非常慢。Dump波形:在testbench里面嵌入一些开关函数,执行编译仿真,仿真结束之后,才能得到一个波形文件。一般在仿真过程中,人是不会去干预的。在仿...

2019-10-31 11:08:00 1156

原创 数字逻辑综合工具-DC-11——一些其它命令和综合之后的文件

对于reset 和clock这种大扇出的信号来说,必须要人为设置为ideal network,不要让DC动它,因为线负载模型对于这些大扇出的情况估算不准。如果不添加don’t touch属性的话,DC会在很长的一根线上插入很多负载。一般set_ideal_network 的对象是port或者pin,net也有,比较少见。全是ideal network的信号经过一些逻辑还是ideal的...

2019-10-30 16:39:04 792

原创 数字逻辑综合工具实践-DC-10——CDC约束

【分频时钟input delay】(找短的间隔)【多时钟output delay】记得要用add_delay也是找短的【时钟之间的uncertainty】模仿两个时钟之间的偏移量要用-from -to指定两个clock(注意是get_clocks而不是ports)(千万不要在模块内部写分频时钟!在SOC系统里面,会有一个模块叫CRM(clock reset mana...

2019-10-29 19:54:26 401

原创 数字逻辑综合工具-DC-09——关于timing的一些补充

1、 默认时钟的占空比(Duty cycle)是50%,在DDR器件中,占空比很重要2、 set_input_delay 有可能驱动源不止一个。3、 外部的驱动源的时钟有可能是下降沿触发的,应该怎么加约束?4、 输出到外部的负载可能有多个create_clock -period 2 [get_ports CLK]这个单位在report_libs里面可以看到如果在创建clock的时候...

2019-10-29 19:46:58 373

原创 数字逻辑综合工具实践-DC-08——静态时序分析(STA)

数字逻辑综合工具-DC-08时序分析综合结束之后,如何确定这个网表能不能用。【Timing Reports】report_timingIncremental 信息包含了Net 和 Cell一起的delay(这两个延迟也可以分别报告)【report_timing的一些选项】-input_pins选项 将线延时和单元延时的信息分别汇报出来-nets选项 用来报告连线上所挂...

2019-10-29 09:42:06 523

原创 RTL Coding Style:Clock信号作为数据输入?

《Verilog数字VLSI设计教程》里2.4节 第一步 异步置数和清零的例子,光盘里给的代码是 always@(posedge clk2, negedge pre_n, negedge clr_n) begin // Put the assertion local to the device that it // is intended to check: ...

2019-10-27 16:59:43 152

原创 数字逻辑综合工具实践-DC-07 ——综合优化(二)和RTL coding 和DFT

数字逻辑综合工具实践-DC-07——综合优化(二)和RTL coding 和DFT主要内容:1、 Pipeline优化2、 RTL设计时的一些注意事项3、 DFT简介(DFT是后端里很重要的一步)【流水线寄存器】组合路径过长,timing不满足,可根据经验插入寄存器。(三级流水线)并不是拆的越散越好。代价:DFF的面积和初始化的延迟。【set_optimize_regi...

2019-10-23 16:56:39 510

原创 数字逻辑综合工具-DC-06——综合优化过程

数字逻辑综合工具-DC-06——综合优化过程编译的策略:Top-down(做设计有两种策略:top-down 和 bottom-up)设计一定是一种层次化的结构,一层一层地去例化Top-down只有一层的约束,针对某些模块,可能会有一些特殊的约束在一个soc系统里面,会有一些真正的工作模块,和一些管理模块,这些工作模块跟clk、rst不会放到一起去做综合,clk、reset这些模块一般...

2019-10-22 07:56:10 455 1

原创 数字逻辑综合工具-DC-05 ——环境约束

数字逻辑综合工具-DC-05——环境约束环境设置通常包含以下几个方面:1、 Input drivers和transition times(设置驱动能力、转换时间,而不是一个理想信号)2、 Capacitive output loads(设置要驱动的电容负载)3、 PVT(一般选worst case)4、 内部寄生RC(线负载模型)输入驱动:为什么要加输入驱动?一般来说要从工艺库里...

2019-10-22 07:43:49 363 2

原创 异步FIFO:为什么要用格雷码

异步FIFO:为什么要用格雷码对于异步FIFO,一个最最基本的要求就是:满了不能写,空了不能读。为了满足这两条要求(实际上是同一类),对于跨时钟域问题,必须做保守判断。即读指针在不断追赶写指针的时候,对于读时钟域,必须保证此时获取的写指针比真实的写指针要慢,比如读指针为3,获取的写指针为5,但是实际的写指针已经到8了,这样读指针到5的时候就会停下来,这么做是安全的。对于写指针来说,也是一个追...

2019-10-21 11:35:16 616

原创 数字逻辑综合工具-DC-04 ——怎样增加时序约束(Timing Constraints)

数字逻辑综合工具-DC-04——怎样增加时序约束(Timing Constraints)逻辑综合的过程为:转化 优化 映射另外还有环境约束和面积约束时序有三个大的方面input logic pathsinternal pathsoutput paths一个项目需要有一个spec即设计说明书里面有项目的一些要求【文字性的描述】(功能要求 性能要求)逻辑综合需要添加满足这些要求的...

2019-10-18 11:34:44 1127

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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