第二步:建立一个名为MUX_0的乘法器

第三步:在程序中例化,看以下程序。

-- 该程序用来实现复数的乘法,端口分别定义的复数的

-- 输入的实部和虚部和输出的实部和虚部

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

LIBRARY LPM;

USE LPM.LPM_COMPONENTS.ALL;

ENTITY plural_mux IS

PORT(

r_in  : IN  STD_LOGIC_VECTOR(  7 DOWNTO 0 );

i_in  : IN  STD_LOGIC_VECTOR(  7 DOWNTO 0 );

r_out : OUT STD_LOGIC_VECTOR( 15 DOWNTO 0 );

i_out : OUT STD_LOGIC_VECTOR( 15 DOWNTO 0 );

clk   : IN  STD_LOGIC;

rst_n : IN  STD_LOGIC

);

END plural_mux;

ARCHITECTURE beh OF plural_mux IS

--乘法器的例化声明

--在这里我们要注意,例化的声明和和信号的定义都是在ARCHITECTURE的BEGIN之前--的

COMPONENT MUX_0

PORT(clock : IN STD_LOGIC     ;

dataa   : IN STD_LOGIC_VECTOR( 7 DOWNTO 0 );

datab   : IN STD_LOGIC_VECTOR( 7 DOWNTO 0 );

result : OUT STD_LOGIC_VECTOR( 15 DOWNTO 0 )

);

END COMPONENT;

COMPONENT  ADD_SUB_0

PORT  (

add_sub : IN STD_LOGIC;

clock   : IN STD_LOGIC;

dataa   : IN STD_LOGIC_VECTOR(15 DOWNTO 0);

datab   : IN STD_LOGIC_VECTOR(15 DOWNTO 0);

result   : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)

);

END COMPONENT;

SIGNAL r_in_reg1 : STD_LOGIC_VECTOR( 7 DOWNTO 0 );

SIGNAL r_in_reg2 : STD_LOGIC_VECTOR( 7 DOWNTO 0 );

SIGNAL i_in_reg1 : STD_LOGIC_VECTOR( 7 DOWNTO 0 );

SIGNAL i_in_reg2 : STD_LOGIC_VECTOR( 7 DOWNTO 0 );

SIGNAL mux_reg1:STD_LOGIC_VECTOR( 15 DOWNTO 0 );

SIGNAL mux_reg2:STD_LOGIC_VECTOR( 15 DOWNTO 0 );

SIGNAL mux_reg3:STD_LOGIC_VECTOR( 15 DOWNTO 0 );

SIGNAL mux_reg4:STD_LOGIC_VECTOR( 15 DOWNTO 0 );

SIGNAL ad_sb_o1 :STD_LOGIC_VECTOR(15 DOWNTO 0 );

SIGNAL ad_sb_o2 :STD_LOGIC_VECTOR(15 DOWNTO 0 );

BEGIN

PROCESS( clk ,rst_n)

BEGIN

IF ( rst_n = '0' )THEN

r_in_reg1 <= "00000000";

r_in_reg2 <= "00000000";

i_in_reg1 <= "00000000";

i_in_reg2 <= "00000000";

ELSIF( clk'EVENT AND clk = '1') THEN

r_in_reg1 <= r_in;

r_in_reg2 <= r_in_reg1;

i_in_reg1 <= i_in;

i_in_reg2 <= i_in_reg1;

END IF;

END PROCESS;

--乘法器的例化实例

I_MUX_00 : MUX_0

PORT MAP (clk,r_in_reg1, r_in_reg2,mux_reg1);

I_MUX_01 : MUX_0

PORT MAP (clk,r_in_reg1, i_in_reg2,mux_reg2);

I_MUX_02 : MUX_0

PORT MAP (clk,i_in_reg1, r_in_reg2,mux_reg3);

I_MUX_04 : MUX_0

PORT MAP (clk,i_in_reg1, i_in_reg2,mux_reg4);

I_ADD_SUB_00 : ADD_SUB_0

PORT MAP('0',clk,mux_reg1,mux_reg4,ad_sb_o1);

I_ADD_SUB_02 : ADD_SUB_0

PORT MAP('1',clk,mux_reg2,mux_reg3,ad_sb_o2);

r_out <= ad_sb_o1;

i_out <= ad_sb_o2;

END beh;

VHDL实例化过程的更多相关文章

  1. Java继承--子类的实例化过程

    一个对象的实例化过程: Person p = new Person(); 1,JVM会读取指定的路径下的Person.class文件,并加载进内存,并会先加载Person的父类(如果有直接的父类的情况 ...

  2. python--对象实例化过程

    实例化过程: class luffy_stu: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = ...

  3. 框架源码系列九:依赖注入DI、三种Bean配置方式的注册和实例化过程

    一.依赖注入DI 学习目标1)搞清楚构造参数依赖注入的过程及类2)搞清楚注解方式的属性依赖注入在哪里完成的.学习思路1)思考我们手写时是如何做的2)读 spring 源码对比看它的实现3)Spring ...

  4. JVM总括四-类加载过程、双亲委派模型、对象实例化过程

    JVM总括四-类加载过程.双亲委派模型.对象实例化过程 目录:JVM总括:目录 一. 类加载过程 类加载过程就是将.class文件转化为Class对象,类实例化的过程,(User user = new ...

  5. 面向对象【day07】:类的实例化过程剖析(三)

    本节内容 1.概述 2.类的语法 3.总结 一.概述 之前我们说关于python中的类,都一脸懵逼,都想说,类这么牛逼到底是什么,什么才是类?下面我们就来讲讲,什么是类?它具有哪些特性. 二.类的语法 ...

  6. java中子类实例化过程中的内存分配

    知识点: 子类继承父类之后,实例化子类时,内存中子类是如何分配内存的呢? 下面,自己会结合一个例子,解释一下,一个子类实例化过程中,内存是如何分配的 参考博客:http://www.cnblogs.c ...

  7. Java子父类中的构造函数实例化过程

    其实我们发现子类继承父类操作很简单,如果要是去深入的研究下会发现,实例化过程并非是我们看到的那样,我们就以代码举例来说明: 问大家,以下代码执行会输出什么呢? package com.oop; /** ...

  8. python基础8之类的实例化过程剖析

    一.概述 之前我们说关于python中的类,都一脸懵逼,都想说,类这么牛逼到底是什么,什么才是类?下面我们就来讲讲,什么是类?它具有哪些特性. 二.类的语法 2.1 语法 class dog(obje ...

  9. 【python】-- 类的实例化过程、特征、共有属性和私有属性

    实例化过程 1.类的定义和语法 class dog(object): #用class定义类 "dog class" #对类的说明 def __init__(self,name): ...

随机推荐

  1. 迷你MVVM框架 avalonjs 学习教程14、事件绑定

    之前的章节许多示例代码也或多或少地展示了如何使用ms-click来绑定事件了.能直接在模板上绑定是事件,这也是静态模板与动态绑定的一大区别.ms-click不是简单的onclick的别名,它在内部屏蔽 ...

  2. Java web struct入门基础知识

    1.Struts2的前身是Opensymphony的Webwork2,实际上Strut和Webwork2合并后形成Struts2.   2.一个HelloWord示例 1)创建Web应用,所需要的Ja ...

  3. MVC 发布到IIS中的配置方法

    MVC 发布到IIS中的配置方法  http://msdn.microsoft.com/zh-cn/library/gg703322(v=vs.98).aspx

  4. c#数和二叉树

    树(Tree)是 n(n≥0)个相同类型的数据元素的有限集合.树中的数据元素叫结点(Node).n=0 的树称为空树(Empty Tree):对于 n>0 的任意非空树 T 有: (1)有且仅有 ...

  5. JS 相关

    计算高度: var a = document.body.clientHeight/2;console.log(a) window.scrollTo(0, document.body.clientHei ...

  6. Android Studio 连接天天、海马、逍遥模拟器

    adb connect 127.0.0.1:6555 取消连接 adb disconnect 127.0.0.1:6555 连接海马模拟器(未测试)  adb connect 127.0.0.1:26 ...

  7. 读《asp.net MVC4开发指南(黄保翕编著)》笔记

    在刚刚过去的中秋节中,利用了两天的碎片时间把黄保翕编著的<asp.net MVC4 开发指南>看了遍,笔记如下,欢饮在开发MVC的同学一起来探讨: 1.社区 2.开源程序 3.易测试性 4 ...

  8. java &&与||短路的详解

    短路运算符就是我们常用的“&&”.“||”,一般称为“条件操作”. class Logic{    public ststic void main(String[] args){    ...

  9. byte,short,int,long数据之间的倍数关系

    基本数据类型 byte   =  -128和127------------------------------------------------------------2的8次方,1个字节 shor ...

  10. STL容器的常用用法

    STL: 1.vector: vector<int> v;vector<int> v(10);//定义大小为10的int型向量容器.vector<int> v(10 ...