http://robei.com
若贝
Robei EDA 芯片设计
思想前言
集成电路设计软件目前在世界上只有几家公司在做,普遍分布在欧美等国家,中国的集
成电路设计软件长期依赖于盗版和进口。“工欲善其事,必先利其器”,中国要想大力发展
集成电路产业,首先要有自主知识产权的集成电路设计工具。
Robei 是一款全新的拥有自主知识产权的集成电路设计工具,不仅具备传统的设计工具
的代码编写、编译、仿真功能,更增加了可视化和模块化设计理念,具有模块设计透明化,
方便模块重新利用,加快设计进度的特点。
传统的集成电路设计工具庞大、复杂、难用、很不容易入门。初学者将会经历感兴趣 迷
茫 头疼 失去兴趣 悟道 加深兴趣 痴迷的过程,其中很大一批人在中间过程中
就放弃了继续学习。Robei 可以让初学者平稳而快速的过渡到悟道阶段,并提出 7 天搞定
FPGA 的方案。Robei 为初学者扫平了学习集成电路的荆棘,将泥泞的土路打造成了高铁,
为更多人在集成电路学习的道路上保驾护航。
传统的书籍都是由专家撰写,他们的知识体系已成系统,很多内容让初学者摸不清头脑,
本书采用了初学者教初学者的方式,案例大部分是由初学者在学习过程中设计出来,然后把
自己的学习心得编写成案例。因为了解初学者心理的一定是初学者,而非专家学者。本书将
会随着初学者的增多,案例的增多,变得更加精炼,更加贴合读者的发展。
由于编写时间仓促,编者水平有限,书中难免出现纰漏和错误,敬请批评指正。本书仅
供读者学习参考使用。
在本书付梓之际,谨向为本书付出辛勤劳动的青岛若贝电子有限公司的工作人员致以诚
挚的谢意!参与本书编辑的人员有:
Copyright © Robei
I
http://robei.com
若贝
Robei EDA 芯片设计
简 介
软件:Robei 可视化芯片设计软件
Robei 是一款可视化的跨平台 EDA 设计工具,具有超级简化的设计流程,最新可视化
的分层设计理念,透明开放的模型库以及非常友好的用户界面。Robei 软件将芯片设计高度
抽象化,并精简到三个基本元素,掌握这三个基本元素,就能很快地掌握 Robei 的使用技巧。
该软件将先进的图形化与代码设计相融合,让框图与代码设计优势互补,弱势相互抵消。
Robei 软件是目前世界上最小的芯片设计仿真工具,也是唯一一个能在移动平台上设计仿真
的 EDA 工具。它不依赖于任何芯片,在仿真后自动生成 Verilog 代码,可以与其它 EDA 工
具无缝衔接。Robei 以易用(Easy to use)和易重用(Easy to reuse)为基础,是一款为芯片
设计工程师量身定做的专用工具。
Copyright © Robei
I
http://robei.com
若贝
Robei EDA
目 录
第一章:认识工具,掌握基础....................................................................................................VIII
1.1 为什么要选择 Robei.........................................................................................................IX
1.1.1. 背景介绍............................................................................................................... IX
1.1.2. EDA 的发展史........................................................................................................ X
1.1.3. Robei 的优势....................................................................................................... XIII
1.2 安装与注册.....................................................................................................................XVI
1.2.1. 安装.....................................................................................................................XVI
1.2.2. 注册.....................................................................................................................XIX
1.3 如何使用 Robei.............................................................................................................XXII
1.3.1. 菜单和工具条................................................................................................... XXII
1.3.2. 工具箱............................................................................................................... XXII
1.3.3. 属性栏..............................................................................................................XXIII
1.3.4. 工作空间..........................................................................................................XXIV
1.3.5. 输出...................................................................................................................XXV
1.4 Robei 三元素................................................................................................................XXVI
1.4.1. 模块..................................................................................................................XXVI
1.4.2. 引脚...............................................................................................................XXVIII
1.4.3. 连接线..............................................................................................................XXIX
1.5 Verilog 基础................................................................................................................. XXXI
1.5.1. 数据..................................................................................................................XXXI
1.5.2. 运算符..............................................................................................................XXXI
1.5.3. 结构声明........................................................................................................ XXXII
1. 模块定义...................................................................................................... XXXII
2. 引脚定义.....................................................................................................XXXIII
3. 连接线.........................................................................................................XXXIII
4. 例化.............................................................................................................XXXIV
II
Copyright © Robei
http://robei.com
若贝
Robei EDA 芯片设计
1.5.4. 代码撰写........................................................................................................XXXV
1. 赋值语句......................................................................................................XXXV
2. 分支语句......................................................................................................XXXV
3. 循环语句.....................................................................................................XXXVI
4. 初始化与重复执行.................................................................................... XXXVI
5. 阻塞式赋值与非阻塞式赋值...................................................................XXXVII
1.5.5. 一个模块的总结........................................................................................XXXVIII
1.6. 第一天的总结................................................................................................................. XL
第二章:实例入手,体验若贝....................................................................................................XLI
2.1 实例一 逻辑门设计......................................................................................................XLII
2.1.1. 本章导读............................................................................................................XLII
2.2.2. 设计流程............................................................................................................XLII
1. 模型设计..........................................................................................................XLII
2. 测试文件设计................................................................................................. XLV
2.1.3. 问题与思考......................................................................................................XLIX
2.1.4. 常见问题................................................................................................................. L
2.2 实例二 计数器..................................................................................................................LI
2.2.1. 本章导读................................................................................................................LI
2.2.2. 设计流程................................................................................................................LI
1. 模型设计..............................................................................................................LI
2. 测试文件设计................................................................................................... LIII
2.2.3. 问题与思考.........................................................................................................LVI
2.3 实例三 编译码器..........................................................................................................LVII
2.3.1. 本章导读............................................................................................................LVII
2.3.2. 设计流程............................................................................................................LVII
1. 编码器模型设计............................................................................................. LVII
2. 译码器模型设计............................................................................................LVIII
3. 测试文件设计...................................................................................................LIX
2.3.3. 问题与思考........................................................................................................LXII
III
Copyright © Robei
http://robei.com
若贝
Robei EDA
2.4 实例四 ALU 设计.......................................................................................................LXIII
2.4.1. 本章导读.......................................................................................................... LXIII
2.4.2. 设计流程.......................................................................................................... LXIII
1. ALU 模型设计................................................................................................LXIII
2. 测试文件设计................................................................................................. LXV
3. 16 位 ALU 设计............................................................................................ LXVII
4. 32 位 ALU 设计..............................................................................................LXXI
2.4.3. 问题与思考................................................................................................... LXXIII
第三章:动手实战,板上点灯..............................................................................................LXXIV
3.1 实例五 Robei 和 Vivado 的联合设计——流水灯设计......................................... LXXV
3.1.1. 本章导读........................................................................................................ LXXV
3.1.2. Robei 设计内容...............................................................................................LXXV
1. light 模型设计...............................................................................................LXXV
2. light_tb 测试文件的设计...........................................................................LXXVII
3. light_constrain 约束文件的设计..............................................................LXXVIII
3.1.3. Vivado 设计内容.............................................................................................LXXX
1. 工程创建...................................................................................................... LXXX
2. 使用 Vivado 综合工具来综合设计并且分析项目主要输出................LXXXIV
3. 使用 Vivado 实现设计的分析以及项目摘要输出................................LXXXVI
4. 将设计在开发板上实现....................................................................... LXXXVIII
3.1.4. 总结.....................................................................................................................XCI
3.2 实例六 自动售饮料机................................................................................................. XCII
3.2.1. 本章导读........................................................................................................... XCII
3.2.2. 设计流程........................................................................................................... XCII
1. sell 模块的设计................................................................................................XCII
2. sell_test 测试文件设计.................................................................................. XCIV
3. sell_constrain 约束文件设计......................................................................... XCVI
3.2.3. 板级验证........................................................................................................ XCVII
1. VIVADO 设计平台进行后端设计.............................................................. XCVII
IV
Copyright © Robei
http://robei.com
若贝
Robei EDA 芯片设计
2. 开发板验证........................................................................................................ CII
3.2.4. 问题与思考.........................................................................................................CIII
第四章:复杂运算,板级体验....................................................................................................CIV
4.1 实例七 8 位移位寄存器的设计.....................................................................................CV
4.1.1. 本章导读..............................................................................................................CV
4.1.2. 设计流程..............................................................................................................CV
1. shift 模型设计.....................................................................................................CV
2. shift_test 测试文件设计....................................................................................CVI
3. shift_constrain 测试文件的设计....................................................................CVIII
4.1.3. 板级验证.............................................................................................................CIX
1. VIVADO 设计平台进行后端设计...................................................................CIX
2. 开发板验证.....................................................................................................CXV
4.1.4. 问题与思考....................................................................................................... CXV
4.2 实例八 带符号位小数的加法设计........................................................................... CXVI
4.2.1. 本章导读..........................................................................................................CXVI
4.2.2. 设计流程........................................................................................................ CXVII
1. qadd 模型设计...............................................................................................CXVII
2. qadd_test 测试文件的设计......................................................................... CXVIII
3. 约束模块和约束文件设计.............................................................................CXX
4.2.3. 板级验证........................................................................................................... CXX
1. VIVADO 设计平台进行后端设计................................................................CXXI
2. 开发板验证.................................................................................................CXXVI
4.2.4. 问题与思考................................................................................................. CXXVII
4.3 实例九 除法器设计............................................................................................... CXXVII
4.3.1. 本章导读......................................................................................................CXXVII
4.3.2. 设计流程.................................................................................................... CXXVIII
1. divider 模型设计.......................................................................................CXXVIII
2. divider_test 测试文件的设计.......................................................................CXXX
3. divider_constrain 约束文件的设计........................................................... CXXXII
V
Copyright © Robei
http://robei.com
若贝
Robei EDA
4.3.3. 板级验证.................................................................................................... CXXXIII
1. VIVADO 设计平台进行后端设计..........................................................CXXXIV
2. 开发板验证..............................................................................................CXXXIX
4.3.4. 问题与思考........................................................................................................CXL
第五章:认识协议,操作接口................................................................................................. CXLI
5.1 实例十 FIFO.............................................................................................................. CXLII
5.1.1. 本章导读.........................................................................................................CXLII
5.1.2. 设计流程........................................................................................................CXLIII
1. 模型设计......................................................................................................CXLIII
2. 测试模块设计............................................................................................. CXLVI
3. 约束模块设计...........................................................................................CXLVIII
5.1.3. 板级验证.............................................................................................................. CL
1. VIVADO 设计平台进行后端设计.................................................................... CL
2. 开发板验证......................................................................................................CLV
5.1.4. 问题与思考...................................................................................................... CLVI
5.2 实例十一 SPI 总线接口的 verilog 的实现.............................................................. CLVII
5.2.1. 本章导读.........................................................................................................CLVII
5.2.2. 设计流程........................................................................................................CLVIII
1. spi_master 模型设计....................................................................................CLVIII
2. spi_master_tb 测试文件的设计..................................................................... CLXI
5.2.3. SPI 接口协议的板级验证..............................................................................CLXIII
5.2.4. 问题与思考................................................................................................... CLXVI
第六章:串口通信,系统设计.............................................................................................CLXVII
6.1 实例十二 UART 的发送与接收模块设计.............................................................CLXIX
6.1.1. 本章导读....................................................................................................... CLXIX
6.1.2. 设计流程.........................................................................................................CLXX
1. 接收模块的设计...........................................................................................CLXX
2. UARTTEST 测试文件的设计................................................................... CLXXII
3. 发送模块设计.......................................................................................... CLXXIV
VI
Copyright © Robei