文章目录

  • 一、实验目的
  • 二、实验内容
  • 三、实验设计
  • 四、实验结果及仿真

一、实验目的

熟悉元件封装方法,掌握层次化电路设计方法;掌握VHDL例化语句的设计方法。

二、实验内容

1.用VHDL语言设计1位全加器,其中仅就半加器实体进行例化声明及端口映射语句,或运算直接调用运算函数。通过编译、仿真验证功能正确性。
2.就实验过程及结果进行简要描述和分析,并思考与用原理图方法设计的各自特点。

三、实验设计

全加器可以由两个半加器和一个或门连接而成,其经典的电路结构如下图所示。图的右侧是全加器的实体模块,它显示了全加器的端口情况。设计全加器之前,需要先设计好半加器。

整个设计过程和表述方式都可以用VHDL来描述。首先设计出半加器。半加器实现的VHDL描述如下所示。

Library Ieee;
Use Ieee.Std_Logic_1164.All;
Entity h_adder isport (a,b : in Std_Logic; co,so : out Std_Logic);
End Entity h_adder;
Architecture Bhv of h_adder isBeginso <= a xor b;   --半加器核心逻辑功能的实现co <= a and b;    --半加器核心逻辑功能的实现
End Architecture Bhv;

(而至于或门,则不需要单独用VHDL来描述,直接调用即可。)
然后根据上面的电路图用VHDL语句将两个元件连接起来,构成了全加器的VHDL顶层描述。程序如下图。

Library Ieee;    --全加器顶层设计描述
Use Ieee.Std_Logic_1164.All;
Entity f_adder isPort (ain,bin,cin : in Std_Logic;sum,cout : out Std_Logic);
End Entity f_adder;
Architecture Bhv of f_adder iscomponent h_adder --调用半加器声明port (a,b : in Std_Logic; co,so : out Std_Logic);End component h_adder;signal so1,co1,co2 : Std_Logic; --定义三个信号变量作为内部的连接线beginu1: h_adder Port Map (a=>ain,b=>bin,so=>so1,co=>co1);    --例化语句u2: h_adder Port Map (a=>so1,b=>cin,so=>sum,co=>co2);cout <= co1 or co2;
End Architecture Bhv;

在实体中首先定义了全加器顶层设计的端口信号,然后在Architecture和Begin之间加入了调用元件的声明语句,即利用Component语句对准备调用的元件做了声明,并定义so1,co1,co2三个信号作为全加器内部的连接线。最后利用端口映射语句Port Map()将两个半加器模块和一个或门模块连接起来构成一个完整的全加器。

四、实验结果及仿真

分别给ain、bin和cin合适周期的方波信号输入,观察count和sum输出信号。如下图所示。

观察输入与输出的可以分析出“1为全加器”的功能已经实现。即实现如下功能:

五、实验思考与总结
元件例化语句分为元件声明和元件例化两部分。用元件例化方式设计电路的方法是: (1)完成各种元件的设计。(2)元件声明。(3)通过元件例化语句调用这些元件。元件例化是可以多层次的。一个调用了较低层次元件的顶层设计实体本身也可以被更高层次设计实体所调用,成为该设计实体中的一个元件。
用原理图设计较VHDL更为直观明了,可以通过电路图清楚其逻辑关系和实现的功能关系。而用VHDL语言设计则较为简便,只需清楚各个接口之间的关系和调用的原则。

FPGA(2)--例化语句--1位全加器相关推荐

  1. (91)FPGA模块例化(module)

    (91)FPGA模块例化(module) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块例化(module) 5)结语 1.2 FPGA简介 FPGA(Fi ...

  2. (94)FPGA模块例化传递参数(input)

    (94)FPGA模块例化传递参数(input) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块例化传递参数(input) 5)结语 1.2 FPGA简介 F ...

  3. (92)FPGA模块例化传递参数(parameter)

    (92)FPGA模块例化传递参数(parameter) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块例化传递参数(parameter) 5)结语 1.2 ...

  4. (93)FPGA模块例化传递参数(defparam)

    (93)FPGA模块例化传递参数(defparam) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块例化传递参数(defparam) 5)结语 1.2 FP ...

  5. (64)FPGA模块例化(generate)

    (64)FPGA模块例化(generate) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块例化(generate) 5)结语 1.2 FPGA简介 FPG ...

  6. (65)FPGA模块例化(parameter)

    (65)FPGA模块例化(parameter) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块例化(parameter) 5)结语 1.2 FPGA简介 F ...

  7. fpga中例化乘法器_“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛------Spartan3硬件乘法器使用详解(4)...

    h前面已经介绍了Spartan3系列FPGA中硬件乘法器的用途.调用方法.结构特定等等,还介绍了使用一个专用硬件乘法器同时处理两个乘法的方法.接下来对它的一些具体使用方法做更深入的介绍. 1. 使用X ...

  8. fpga中例化乘法器_FPGA:乘法器(一)

    乘法器(一) 乘法运算在数字信号处理中也是比较常用,如常系数FIR中需要输入数据与FIR系数进行乘法运算.在FPGA实现乘法时可选择采用逻辑实现,也可使用硬资源,如Xilinx FPGA中的DSP48 ...

  9. FPGA学习-Verilog例化说明

    原文作者:FPGA设计论坛 Verilog例化说明 1.什么是模块例化?为什么要例化? 模块例化可以理解成模块调用.对于一个FPGA工程,通常是由一个顶层模块与多个功能子模块组成,为了实现顶层模块与子 ...

最新文章

  1. postgres 入门
  2. 关闭oracle自动统计,禁用oracle 11g 的统计数据自动功能
  3. Masonry自动布局详解一:基本用法
  4. 【clickhouse】clickhouse clickhouse-client 使用
  5. sql数据库自动增量备份_SQL自动增量
  6. 拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
  7. 【病灶分类】基于matlab粒子群算法优化SVM病灶分类【含Matlab源码 1520期】
  8. 大数据时代,我们应该具有怎样的思维方式?
  9. 【报告分享】休闲游戏商业化发行指南-穿山甲(附下载)
  10. 无法启动计算机打印机服务程序,Windows10下使用打印机时提示打印后台处理程序服务没有运行怎么办...
  11. 设计模式常用的七大原则之③【依赖倒转】原则
  12. 取消wps右键菜单_wps自动生成论文目录出现错误怎么办
  13. groupby常用方法
  14. php 加载慢,解决php加载慢的一个办法_PHP教程
  15. 嵌入式是什么?为什么引入嵌入式技术?嵌入式技术的优缺点?
  16. 2D变形:平移、旋转、缩放、倾斜
  17. windows+MAC系统使用-快捷键
  18. [附源码]java毕业设计校园跑腿系统
  19. 服务器系统用热备盘嘛,服务器设置热备盘
  20. 入门图形学:透明原理

热门文章

  1. 使用JAXB从XSD生成XML
  2. ppt课堂流程图_除了直线能设计PPT,没想到曲线也实用,太赞了!
  3. pyecharts怎么绘制散点图_PyeCharts绘制各种图形
  4. MySQL的索引存储数据结构BTree和B+Tree的区别
  5. 浅析 Linux 初始化系统(系统服务管理和控制程序/Init System) -- systemd
  6. linux下编译与运行,Linux操作系统驱动编译与运行是怎样的?
  7. 快速排序 动图_Java十大排序算法最强总结
  8. 极速pdf编辑器的水印如何去掉_如何修改PDF?有没有详细的PDF编辑器操作方法?...
  9. 百度地图android绘图类,Class:android总类/android离线地图类
  10. python中自带的模块_python中的模块详解