一步一步学做一个CPU——3,用QuartusII通过原理图完成与门电路设计
2014-06-17 12:07
267 查看
打开QuartusII软件,程序主界面如下:
1, 新建一个工程
点击File——>New Project Wizard,打开创建新工程向导,这里你将完成工程的基本设定选项。
1, Project name and directory——工程的名称与目录
2, Name of the top-level design entity——顶层设计实体的名称
3, Project files and libraries——项目文件与库
4, Target device family and device——目标设备的族类
5, EDA tool settings——EDA工具设定
这里一般设定好工程名称和目录,顶层设计实体名称以及目标设备族类就可以了,其他的暂时直接使用默认项就可以了。
2, 新建一个设计文件
通过点击File——>New打开新建文件选择框,由于我们这里使用原理图描述实现的,则文件类型选择Design Files——>Block Diagram/Schematic File,就新建了一个原理图文件,将其保存起来,注意命名要跟前面设置的顶层设计实体名称相同。
3, 编写设计文件
接下来开始在文件中绘制原理图,这里首先完成与门的添加,点击左侧工具栏中的Symbol Tool按钮,打开Symbol选择框,选择primitives——>logic——>and2,点击OK后即可在原理图中添加一个2输入的与门了。在同样通过Symbol Tool中的加入和primitives——>pin——>output加入输入和输出引脚,然后在原理图中把他们用Orthogonal Node Tool即导线连接起来,双击输入输出引脚,为他们设定好名字,pinA,pinB,pinC,就完成了原理图中的设计。
4, 编译(分析综合)
点击Processing——>Start——>Start Analysis & Synthesis,进行分析综合,就好像是对程序进行编译,等待片刻,如果没有错误,编译报告会输出出来。
5, 配置管脚
接下来配置管脚,就是设定刚才加入的输入输出管脚与实验板上FPGA芯片外部引脚之间的对应关系,设定好这个,我们设计的与门电路才能通过FPGA外部引脚与实验板上的其他设备连接起来,我们才好观察到电路的设计效果。点击Assignment——>Pins,打开Pin Planner设定框,这里查看实验板的说明文件,我们使用两个拨动开关来连接输入引脚,用一个led灯来连接输出引脚,对照说明中的表格,为pinA,pinB,pinC分配PIN_N25,PIN_N26和PIN_AE23,设定好后点击Assignment——>Device进入设定框,点击Device
and Pin Options按钮,在Device and Pin Option框中的Unused Pins标签下将Reserve all unused pins设定为As output drivingground。因为我们的设计最终会以电路的表达形式工作,错误的设计极其容易导致实验板的损坏。
6, 下载程序
当然我们实际设计中可能会用到波形仿真工具进行验证,进行时间分析验证,甚至要设定布局布线等工作,反复迭代修正,才能完成一个复杂电路的设计,不过这里这个与门的demo很简单,完成以上设计工作后,可以开始编译了,点击Processing——>Start Compilation开始吧。如果没有错误,输出编译报告,就可以准备下载到实验板上去了。点击Tool——>Programmer,打开下载工具。这里我们选择使用JTAG的下载方式,注意先给实验板上电,点击Start开始,等待片刻,走完下载进度条,下载完成。
7, 完成
现在你可以在实验板上通过SW0和SW1来设定与门的输入了,实验板上的LEDR0相应的亮或者灭。我们实现的与门在哪呢?就在你面前实验板的芯片中,实际上实验板的芯片中有很多电路单元,通过我们的编程选择我们需要的电路单元用连线连接起来,在通过配置引脚连接到FPGA芯片的外部引脚上,FPGA是焊接在PCB板上的,PCB板上的铜线把FPGA引脚与外部设备比如开关,发光二极管等连接起来,我们的电路就真正的连接到了这个系统当中了。他们之间的连接关系在图中表示出来。
8,总结
经过了这么多繁杂的步骤,我们仅仅完成的是一个简单的与门电路,好在通过这个过程我们只是了解一下FPGA设计的基本过程与简单操作,熟悉了这个流程,以上步骤还是很清楚的,而且实现一个复杂的设计也基本是沿这个过程走的。后面我们用FPGA实现一个CPU也可以这样下载到FPGA芯片当中,这可是一个真正的电路,真正工作的CPU,麻雀虽小五脏俱全,不再是仅仅在电脑上仿真了,你必然会满心欢喜。而且实际中,这样的设计(当然还有一些其他的工作要做),是能够送到工厂中去生产真正的ASIC专用电路,也就是真正的,我们能摸到能使用的CPU,会有这样的一天。
1, 新建一个工程
点击File——>New Project Wizard,打开创建新工程向导,这里你将完成工程的基本设定选项。
1, Project name and directory——工程的名称与目录
2, Name of the top-level design entity——顶层设计实体的名称
3, Project files and libraries——项目文件与库
4, Target device family and device——目标设备的族类
5, EDA tool settings——EDA工具设定
这里一般设定好工程名称和目录,顶层设计实体名称以及目标设备族类就可以了,其他的暂时直接使用默认项就可以了。
2, 新建一个设计文件
通过点击File——>New打开新建文件选择框,由于我们这里使用原理图描述实现的,则文件类型选择Design Files——>Block Diagram/Schematic File,就新建了一个原理图文件,将其保存起来,注意命名要跟前面设置的顶层设计实体名称相同。
3, 编写设计文件
接下来开始在文件中绘制原理图,这里首先完成与门的添加,点击左侧工具栏中的Symbol Tool按钮,打开Symbol选择框,选择primitives——>logic——>and2,点击OK后即可在原理图中添加一个2输入的与门了。在同样通过Symbol Tool中的加入和primitives——>pin——>output加入输入和输出引脚,然后在原理图中把他们用Orthogonal Node Tool即导线连接起来,双击输入输出引脚,为他们设定好名字,pinA,pinB,pinC,就完成了原理图中的设计。
4, 编译(分析综合)
点击Processing——>Start——>Start Analysis & Synthesis,进行分析综合,就好像是对程序进行编译,等待片刻,如果没有错误,编译报告会输出出来。
5, 配置管脚
接下来配置管脚,就是设定刚才加入的输入输出管脚与实验板上FPGA芯片外部引脚之间的对应关系,设定好这个,我们设计的与门电路才能通过FPGA外部引脚与实验板上的其他设备连接起来,我们才好观察到电路的设计效果。点击Assignment——>Pins,打开Pin Planner设定框,这里查看实验板的说明文件,我们使用两个拨动开关来连接输入引脚,用一个led灯来连接输出引脚,对照说明中的表格,为pinA,pinB,pinC分配PIN_N25,PIN_N26和PIN_AE23,设定好后点击Assignment——>Device进入设定框,点击Device
and Pin Options按钮,在Device and Pin Option框中的Unused Pins标签下将Reserve all unused pins设定为As output drivingground。因为我们的设计最终会以电路的表达形式工作,错误的设计极其容易导致实验板的损坏。
6, 下载程序
当然我们实际设计中可能会用到波形仿真工具进行验证,进行时间分析验证,甚至要设定布局布线等工作,反复迭代修正,才能完成一个复杂电路的设计,不过这里这个与门的demo很简单,完成以上设计工作后,可以开始编译了,点击Processing——>Start Compilation开始吧。如果没有错误,输出编译报告,就可以准备下载到实验板上去了。点击Tool——>Programmer,打开下载工具。这里我们选择使用JTAG的下载方式,注意先给实验板上电,点击Start开始,等待片刻,走完下载进度条,下载完成。
7, 完成
现在你可以在实验板上通过SW0和SW1来设定与门的输入了,实验板上的LEDR0相应的亮或者灭。我们实现的与门在哪呢?就在你面前实验板的芯片中,实际上实验板的芯片中有很多电路单元,通过我们的编程选择我们需要的电路单元用连线连接起来,在通过配置引脚连接到FPGA芯片的外部引脚上,FPGA是焊接在PCB板上的,PCB板上的铜线把FPGA引脚与外部设备比如开关,发光二极管等连接起来,我们的电路就真正的连接到了这个系统当中了。他们之间的连接关系在图中表示出来。
8,总结
经过了这么多繁杂的步骤,我们仅仅完成的是一个简单的与门电路,好在通过这个过程我们只是了解一下FPGA设计的基本过程与简单操作,熟悉了这个流程,以上步骤还是很清楚的,而且实现一个复杂的设计也基本是沿这个过程走的。后面我们用FPGA实现一个CPU也可以这样下载到FPGA芯片当中,这可是一个真正的电路,真正工作的CPU,麻雀虽小五脏俱全,不再是仅仅在电脑上仿真了,你必然会满心欢喜。而且实际中,这样的设计(当然还有一些其他的工作要做),是能够送到工厂中去生产真正的ASIC专用电路,也就是真正的,我们能摸到能使用的CPU,会有这样的一天。
相关文章推荐
- 一个电路设计:从原理图到PCB板的绘制基于orcad
- 台湾人写的《CPU/SOC及外围电路应用设计--基于FPGA/CPLD》
- 对于一个糟糕的设计来说,通过阅读C++代码你可以很容易地识别出它。
- 小米手机电路设计图曝光 将于今年8月研发完成
- C++第四周【任务3】设计一个“正整数”类,并通过一系列的成员函数对其性质进行做出判断或列出相关联的数值。
- 第四周上机--任务四--设计一个工资类(Salary)--完成各个功能--文件中读入数据--学会ASCII文件的操作
- 设计一个计算器 完成两个数字的加减乘除
- C++第5周任务【任务2】本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,二则也为第10章做运算符重载等积累些感性认识。
- 第四周上机任务--任务三--设计一个“正整数”类,并通过一系列的成员函数对其性质进行做出判断(VS2008)
- 图片和表单文字信息通过一个按钮来完成提交
- 设计产品设计的一个信号产生电路
- 设计一个单链表的类模板,使其能够完成单链表的创建和显示
- 如何独立设计完成一个软件项目
- 用极少的MXML来通过AS文件完成一个简单的应用!
- 一个文员级的报表工具Wreport终于开发完成,用word设计报表,最终把程序员完全从报表中解放出来
- 通过一个C++程序完成对可执行程序的修改
- 通过Visual Studio 2005 类设计器设计一个API
- 一个通过Flash设计与Flex结合开发的网站www.mapgle.cn
- 帮同学写的题:设计一个程序完成下面的计算:k!/(m!+n!)
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,