基于原理图法的全加器设计

全加器可以由两个半加器和一个或门连接而成,这样得到的半加器电路称为顶层文件。

设计原理图如下:

下面全加器的设计采用层次结构的VHDL程序设计方法,采用元件例化语句。

  1. 工程文件名与顶层文件(全加器)文件名一样;
  2. 把全加器、半加器、或门的vhdl文件都要包含到工程中;
  3. 在全加器文件中声明半加器、或门为元件;
  4. 然后例化三个元件:两个半加器和一个或门。
  5. 软件说明:ModelSimSetup-13.1.0.162,QuartusSetup-13.1.0.162。

建立工程:

第一步:打开Quartus软件。

第二步:点击New Project Wizard -> next.

第三步:选择工程文件的存放位置,输入工程名 -> next -> next。

第四步:在family栏选择芯片型号-Cyclone IV E,在Name栏选择EP4CE115F29C7,选择完之后点击next。(如果不进行硬件调试时,此处默认即可)

第五步:检查工程有没有建错,点击完成。如下图:

原理图设计:

以下拟通过1位全加器的设汁,介绍原理图输入的基木设计方法。软件
基于quartus2 13.0版本。

1位全加器可以用两个半加器及一个或门连接而成,因此需要先完成半
加器的设计。下面将给出使用原理图输入的方法进行底层元件设计和层次化设计的主要步骤。

半加器设计:

新建原理图文件

原理图编辑输入流程如下:

(1)新建原理图文件。打开QuartusII,选菜单“File”一“New”,在弹出的“New-”对话框中选择“ Design Files” 的原理图文件编辑输入项“Block block diagram/schematic File"按"OK"后将打开原理图编辑窗。

(2)在编辑窗中调入元件,完成半加器的原理图输入。

点击按纽“插头图标 ”或直接双击原理图空白处,从“ Symbol”窗中选择需要的符号,或者直接在“name”文本框中键入元件名,如“and2”为2输入与门,点OK按钮,即将元件调入原理图编辑窗中。例如为了设计半加器,分别调入元件and2,not,xnor和输入输出引脚input和output。并如图用点击拖动的方法连接好电路。然后分别在input和output的PIN NAME上双击使其变黑色,再用键盘分别输入各引脚名:a、b, co和s。


(3)存盘编译。选择菜单File - Save As,选择刚才为自己的工程建立的目录d:\adder4,将已设计好的原理图文件取名为:half_adder.bdf(注意默认的后缀是.bdf),并存盘在此文件夹内。然后点击 运行图标进行编译,若无错误则可进行下一步,若有错进行原理图修改。编译完成后最下面的“message”框中信息如下:

(4)将设计项目设置成可调用的元件

为了构成全加器的项层设计,必预将以上设计的半加器half_adder.bdf设置成可调用的元件。方法图所示,在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→Create Symbol Files for Current File项,即可将当前文件h_adder. bdf变成一个元件符号存盘,以待在高层次设计中调用。

使用完全相同的方法也可以将VHDL文本文件变成原理图中的一个元件符号,实现VHDL文本设计与原理图的混合输入设计方法。转换中需要注意以下两点:

  • 转换好的元件必须存在当前工程的路径文件夹中;
  • 该方法只能针对被打开的当前文件。

(5)对半加器进行仿真测试无误再进行全加器设计,过程重复这里就不再赘述。

全加器设计:

(1)设计全加器顶层文件

为了建立全加器的项层文件,必须再打开一个原理图编辑窗,即新建一个原理图文件。方法同前,即再次选择菜单" File”→“new",原理图文件编辑输入项"Block Diagram/Schematic File"。与调入元件的方法一样,即在新打开的原理图编辑窗双击鼠标,在弹出的“symbol”窗的“name”栏输入底层文件半加器的存储名“half_adder”调出半加器,如图:

再调出其他需要的元件,连接好全加器的电路图。以full_adder.bdf名将此全加器设计存在同一路径中。

(2)将设计项目设置成顶层文件并编译仿真

将顶层文件f_adder.bdf设置为顶层文件的方法:project→set astop_level entity。如图:

文件仿真(这里采用modelsim仿真波形):

  1. 选择File-> New -> Verification/Debugging Files ->University Program VWF。

2.打开测试文件。(右键点击添加端口,对输入信号初始化,赋值。)

3.仿真结果:

逻辑电路图:

显示编译成功后,选择菜单栏 Tools –>Netlist Viewers –>RTL Viewer 显示逻辑电路图

如果需要通过vhdl语言编程进行全加器设计请参看—基于VHDL语言的全加器的设计

基于原理图法的全加器设计相关推荐

  1. 基于剪裁法的反射面设计

    ::: titlepage ::: center ::: large ::: ::: ::: 设计准备 所需工具 MATLAB 2021b ; solidworks 2021 ; TracePro; ...

  2. 频域串联滞后校正matlab,自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc...

    自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc 实验七 基于MATLAB控制系统频域法串联校正设计 一.实验目的 (1)对给定系统设计满足频域或时域指标的串联校正装置: (2)掌 ...

  3. 基于单片机的TLC稳压电源系统设计-基于单片机大脑运算能力智力测试仪-基于单片机超声波测距系统仿真设计(报告 PCB 原理图)-基于单片机超高精度电参数测试设计-基于单片机变电站变压器运行参数监测仿真

    1316基于单片机的TLC稳压电源系统设计-毕设课设仿真资料 三极管射极电压是稳压电源的输出电压,可以接用电器或负载,这个电压值通过TLC549(A/D,同TLC548)数据转换后,送往单片机处理并显 ...

  4. 24、基于原型的切比雪夫低通滤波器设计理论(插入损耗法)

    24.基于原型的切比雪夫低通滤波器设计理论(插入损耗法) 基于原型的滤波器设计是设计的一个基础的方法,虽然在现在有更加强大的自动化工具能够取代它,但是如果要进行理论研究仍需要对其有所了解. 写此文的初 ...

  5. 基于51单片机数字电压表的设计 仿真、程序、原理图(转发)

    摘 要 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示.而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编 ...

  6. 基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

    51单片机数字频率计仿真设计 51单片机数字频率计仿真设计 主要功能 任务书 实物图 仿真图 原理图 信号采集模块 脉冲产生模块 分频模块 程序 设计报告 全部参考资料 资料下载链接 51单片机数字频 ...

  7. 低通采样的matlab实现,基于matlab的FIR滤波器设计(低通,频率取样法)

    基于matlab的FIR滤波器设计(低通,频率取样法)一.参考程序 M=63;%所需频率采样点个数 Wp=0.5*pi;%通带截止频率 m=0:(M+1)/2;%通频带上的采样点 Wm=2*pi*m. ...

  8. 基于单片机的电子时钟设计(keil+protues仿真,含代码及原理图)

    本学期单片机课程要求做课程设计,我选取的课题如下: 基于单片机的电子时钟设计,要求: (1)实时显示当前时间: (2)能够对时间进行设置: (3)包括年月日,小时,分钟,秒. (4)整点提醒功能. 经 ...

  9. 基于MATLAB的图像融合设计

    基于MATLAB的图像融合设计 摘 要 图像融合能够将不同类型传感器获取的同一对象的图像数据进行空间配准.并且采用一定的算法将不同类型的传感器获取的同一对象的图像数据所含用的信息优势或互补性有机地结合 ...

  10. 基于STM8的数字温度计设计

    基于STM8的数字温度计设计 这是在2021年12月初完成的一次课程设计,全程自己设计组装完成,现作为记录存档发布,大家也可以借鉴本文来完成自己的课程设计.(建议使用电脑阅读) 课程设计目录 基于ST ...

最新文章

  1. c++成员函数指针强制转换为一般函数指针出现问题
  2. Redux 并不慢,只是你使用姿势不对 —— 一份优化指南
  3. linux内核工程师必须知道的三十道题
  4. cat6 万兆_cat6 万兆
  5. hbase shell 命令行从入门到放弃
  6. 移动硬盘(U盘)病毒对数据的破坏
  7. 教您如何在MathType中输入空白区域
  8. L1-034 点赞 (20 分)
  9. 重置IBM刀片服务器的管理模块
  10. 非极大值抑制算法(NMS)的python实现
  11. WebEx 播放器下载
  12. 16部趣味数学纪录片
  13. 【高德地图API】绘制大地线 Geodesic/Great Circles
  14. AircraftWar(pygame)
  15. 如何在Genymotion VM中安装Google Play服务(没有拖放支持)?
  16. 钱包的下一站:无私钥、不用再抄助记词
  17. Mysql数据库备份的常用方法
  18. 用python怎么做数据统计-新闻联播也可以拿用Python来做数据分析?
  19. STM32 无线烧录器
  20. java输出语句没有输出,JAVA语句输出问题

热门文章

  1. MySQL查询某天(内)的数据
  2. Echarts中调色盘的作用
  3. 读取照片的Exif信息
  4. 史话下:量子物理学的前世今生
  5. Fast Refresh 原理剖析
  6. Python实现AES加密与解密
  7. “均线金叉和均线死叉”的经典战法
  8. 原生JS实现登录框邮箱提示
  9. 每日一诗词 —— 访戴天山道士不遇
  10. CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读