一、行为描述

只描述电路的行为和功能没有直接指明涉及的硬件结构。通常是指含有进程的非结构化描述。
在程序中不存在任何与硬件选择相关的语句,不存在任何有关硬件连线的语句。仅仅做了功能描述
eg:

--模10的加法计数器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY cnt ISPORT(reset,vlk IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END cnt;ARCHITECTURE behav OF cnt ISSIGNAL q0 : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGINPROCESS (clk,reset,q0)BEGINIF reset = '0' THENq0 <= "0000";ELSIF (clk'EVENT AND clk = '1') THENIF q0 = "1001" THEN q0 <= "0000";ELSEq0 <= q0 + 1;END IF;END IF;q = q0;END PROCESS;
END behav;

二、数据流描述(RTL描述)

真正可以进行逻辑综合的描述方式。

--二选一多路选择器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL
ENTITY mux2_1 ISport (d0 ,d1,sel : IN STD_LOGIC ;q : out STD_LOGIC);
END mux2_1;ARCHITECTURE rtl OF mux2_1 ISSIGNAL tmp1,tmp2,tmp3 : STD_LOGIC;
BEGINtmp1 <= d0 AND sel;tmp2 <= d1 AND (NOT sel);tmp3 <= tmp1 OR tmp2;q <= tmp3;
END rtl;

三、结构化描述

高层次设计模块调用低层次设计模块。用门电路设计单元构成复杂的逻辑电路的方法。
步骤:
a.元件说明 : 说明元件的调用,描述元件的接口。
b.元件例化 :指定元件的安放位置,确定与其他元件的连接关系。
c.元件配置 :指定元件使用的设计实体,如一个实体有多个结构体,配置来决定使用哪个结构体。

1、元件说明(component)

component 语句指定了 结构体中所调用的模块哪一个现成 的逻辑模块

--元件说明语句
COMPONENT component_name GENERIC                      --类属性说明(parameter_name : STRING := default_value;parameter_name : INTEGER := default_value);PORT                         --端口说明(input_name : IN STD_LOGIC;bidir_name : IN STD_LOGIC;output_name :OUT STD_LOGIC);
END COMPONENT;

GENERIC用于参数的代入和赋值;
PORT用于说明元件的输入、输出、端口信号。
位置:ARCHITECTURE \ PACKAGE \ BLOCK

2、元件例化

将元件的信号映射成高层次电路中的信号。

instance_name : component_name --instance_name:例化名   component_name:元件名PORT MAP(component_port => connect_name;...);
--结构化描述例子
ENTITY mux2_1 ISport (d0,d1,sel : IN BIT;q : out BIT );
END mux2_1;ARCHITECTURE struct OF mux2_1 ISCOMPONENT AND2         --元件AND2说明PORT (a,b : IN BITc : OUT BIT);END COMPONENT;COMPONENT OR2         --元件OR2说明PORT(a,b : IN BIT c : OUT BIT);END COMPONENT;COMPONENT INV         --元件INV说明PORT(a : IN BIT;b : OUT BIT);END COMPONENT;SIGNAL aa,ab,nsel : BIT;
BEGIN u1 : INV  PORT MAP(a =>sel,b => nsel);        --元件例化u2 : AND2 PORT MAP(a =>nsel,b => d1,c => ab); --元件例化u3 : AND2 PORT MAP(a => d0,b => d1, c => aa); --元件例化u4 : OR2  PORT MAP(a => aa,b => ab, c => q);  --元件例化
END struct;

对一个设计进行结构化描述,就是描述它由那些子元件构成,以及子元件之间的互联关系。

【FPGA学习笔记】VHDL语言(五)语言风格描述:行为描述,数据流描述,结构化描述相关推荐

  1. C语言学习笔记-P1 初识C语言(2)

    C语言学习笔记-P1 初识C语言(2) C语言学习笔记-P1 初识C语言(2) 一.常量 1.字面常量 2.const修饰的常变量 3.#define定义的标识符常量 3.枚举常量 二.字符串+转义字 ...

  2. 《Go语言圣经》学习笔记 第一章 Go语言入门

    Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...

  3. c语言for循环笔记,【学习笔记】【C语言】循环结构-for

    1.使用: for (语句1; 条件; 语句2) { 循环体 } 语句1:初始化语句 语句2:增量语句(执行完循环体后再执行的语句) 1.for一开始就会执行一次语句1(整个for循环只会执行一次) ...

  4. 【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能

    [数据库学习笔记]Day03 - SQL语言基础及数据库定义功能 〇.本文所用数据库表格: 一.关系运算: 关系运算,数学名词,基本运算有两类:一类是传统的集合运算(并.差.交等),另一类是专门的关系 ...

  5. C语言学习笔记-P1 初识C语言(1)

    C语言学习笔记-P1 初识C语言(1) P1 初识C语言(1) 一.什么是C语言 1.定义 2.发展 二.第一个C语言程序 Hello World 三.数据类型 四.变量,常量 未完待续!!! P1 ...

  6. FPGA学习笔记(五)Testbench(测试平台)文件编写进行Modelsim仿真

    系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...

  7. 编译原理学习笔记2——高级程序设计语言概述

    编译原理学习笔记2--高级程序设计语言概述 2.1常用的高级程序设计语言 2.2程序设计语言的定义 2.2.1语法 2.2.1语法 2.2.3程序语言的基本功能和层次机构 2.2.4程序语言成分的逻辑 ...

  8. 学习笔记(十五)——镜像的知识点与注意事项

    学习笔记(十五)--镜像的知识点与注意事项 一.基础知识 1.SQL Server镜像只有两种模式:高安全模式和高性能模式.两种模式的主要区别在于在事务提交后的操作. 在高性能模式下,主体服务器不需要 ...

  9. FPGA学习笔记(1)简单的时序逻辑电路——流水灯

    FPGA学习笔记(1)简单的时序逻辑电路--流水灯 编程语言为Verilog HDL 原理 (1)设计一个计数器,使开发板上的4个LED状态每500ms翻转一次.开发板上的晶振输出时钟频率为50MHz ...

  10. FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇尾

    FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇一 FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇二 ...

最新文章

  1. 关于TableLayoutPanel里放入控件无法将Dock设为Fill的解决办法
  2. 华为200W年薪应届博士刷屏后,快手拉出了一个排的顶级名校工程师
  3. 配置库用户_手把手教新手安装Anaconda配置开发环境
  4. [Java]关于throw,throws,try{}catch(){}
  5. Linux CPU占用率监控工具小结
  6. screenrecord 使用_Android使用screenrecord命令录制视频并制作GIF图片
  7. Android集成JPush(极光推送)
  8. 开源安卓播放器:Dolphin Player 简单分析
  9. MySQL 如何查看表的存储引擎
  10. 计算机音乐组获奖作品,大学生计算机音乐创作类决赛揭晓 浙音6件作品均获奖...
  11. graphpad做折线图_Graphpad Prism搞定折线和曲线图,so easy!
  12. ThinkPad SL400无线网卡的问题
  13. 前端使用(久派)高拍仪进行拍照上传
  14. 使用STM32,接触USB功能
  15. 老猿学5G随笔:RAN、RAT以及anchor移动性锚点的概念
  16. 4月22日丨【云数据库技术沙龙】技术进化,让数据更智能
  17. python 面试题 博客园_常见的python面试问题1
  18. 基于python的pdf文件处理系统
  19. 使用jQuery实现返回顶部
  20. 语音信号处理入门系列(1)—— 语音信号处理概念

热门文章

  1. 条形码 Ean13 的校验方法
  2. 利用数据库进行肿瘤基因的挖掘
  3. ONGene:基于文献检索的肿瘤基因数据库
  4. 如何获取多屏幕显示器工作区域
  5. 硬件视角看段页式存储
  6. 英语中最常用的252个词根
  7. 2353410-03-2,TCO-PEG8-acid末端羧酸(CO2H)可在活化剂(例如EDC或HATU)存在下与伯胺基反应以形成稳定键
  8. DFU u-boot搭建
  9. 花絮:用StyleGAN Encoder识别并重建国画和油画中的人脸
  10. 20172302 《Java软件结构与数据结构》第五周学习总结