10 数字IC/IP设计流程

学习理念:Verilog是描述语言,是先要规划好电路结构,有大致框架的认知,再由认知反映到coding上去!不要反过来,直接做coding 仿真,需要有前期的规划!!!这需要不断的训练。

目录

1.数字IC/IP设计流程

1.数字IP设计流程

2.数字IC设计流程(参考)

2.可综合Verilog语言设计

1.组合逻辑

2.时序逻辑

3.Generate使用

4.参数化的IP设计

5.“<=” 和 “=”的区别

6.基于Verilog的TestPattern编写


首先说明(叠个甲),这里是课程笔记,如果觉得侵权请联系删帖。数字IC/数字电路/FPGA设计_从入门到精通

1.数字IC/IP设计流程

1.数字IP设计流程

不同的公司的设计流程不同,这里以CNN加速器为例:

②通常数字电路就分为两大类:1.算法型电路:实现某种算法——CNN加速器、图像的处理滤波、4/5G网络/无线网络等的滤波 2.接口类、协议类的IP——I2C控制器、复杂的USB、PCIE、SATA接口协议,数学不多,但接口协议复杂。 建立算法模型,对算法模型进行优化,如除法——转乘法等、定点化、整型化。 协议:仔细读协议并理解清楚,很耗时、打基础的过程。

③定义数据结构——数字电路和verilog描述一个东西,数据怎么排布,定义哪些数据,类似C的structure:定义哪些变量、变量有什么意思?通过数据结构能描述要设计、实现的ip。怎么提高ddr效率?——bist 位宽要长?

开始划分系统框架:什么接口?每个大的block要怎么划分?在block和block之间数据是怎么交互的? IP下面会分子模块,子模块的功能划分、模块之间怎么pipeline(功能性的pipeline)。 存在反复迭代的过程。

①-③前期工作会占据近30%及以上的时间

数据结构定义——CNN的conv common control info

6个64bit数:名字、bits长、地址、提示Note——类似C语言的结构体——成员变量...

 一定注意:需要由设计决定整体框架,而不是验证决定。分析和设计的步骤一定要仔细,不能省略!!!

2.数字IC设计流程(参考)

芯片级Spec:每个功能模块分clock,分区——高电压、低电压分等(高的快、低的慢),整个需要多少I/O接口定义。

数字IP如果没有现成的,需要设计的话,上一页整个IP设计流程需要使用到。

2.可综合Verilog语言设计

1.组合逻辑

wire一定是组合逻辑,reg可以描述组合/时序逻辑

因为这里没有任何时钟(上升/下降沿)——组合逻辑,且a/b/c任意改变,out1也改变,没有任何存储的功能,所以——组合逻辑行为

1.常见错误

2.if-else 或者 case条件没有列全

没写X==3情况,当S=3,所以x==3时取反,EN不使能,y得不到任何数据。 当S=0,X不等于3,取反,EN使能,y就能得到D端四选一的输入数据。 综合出了 触发器!——都不是组合逻辑了!

3.case语句——条件是否列全,同2类似

one-hot编码

要加directive的原因:有的case条件匹配多个语句,匹配多个语句相当于逻辑没有写全,类似if没写else情况,同时工具无法推断各个选项是否是并行的,会综合出Latch触发器

而加了directive给系统识别后,综合会出现 user定义的并行结构 ①是对应3-8线译码器的——full条件列全了、自动识别为并行(每次最多匹配一项)
②加了directive给系统识别后——full条件列全了、user定义为并行(此时应该带了优先级!!!)
③不加directive——会综合出Latch

2.时序逻辑

IC/IP设计——异步复位用的比较多

3.Generate使用

这里是组合逻辑的generate

物理上展开——意味着写那段代码其实会在“编译”为8份,相当于手写了8份,虽然存在gen_x*8,但并不会使用到乘法器——减少了coding的工作量

 这里是时序逻辑的generate

4.参数化的IP设计

IP复用——参数化方便修改移植

5.“<=” 和 “=”的区别

在5ns上升沿分成了三个时间点——有一定的先后顺序

为了匹配真实的DFF寄存器在电路里面的行为——所以会有三个时间点。

所以记住:wire信号只用=赋值,

6.基于Verilog的TestPattern编写

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sean--Lu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值