分享
 
 
 

VHDL笔记(2)--并行语句

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

VHDL并行语句

1、进程语句(Process)

特点:

进程结构内部所有语句顺序执行。

多进程间是并行执行的,并可访问构造体(Architecture)和实体(Entity)中的信号。

进程的启动由信号敏感表中的信号来触发,也可用WAIT语句等待一个触发事件的成立。(不同时使用)

[进程名]PROCESS[敏感信号表]

变量说明语句:

……

BEGIN

…...

顺序说明语句

…...

END PROCESS [进程名];

e.g(PROCESS)

ARCHITECTURE behav OF half_adder IS

BEGIN

Padder: PROCESS (a,b)

BEGIN

Sum <= a XOR b AFTER 5 ns;

Carry <= a AND b AFTER 5 ns;

END PROCESS Padder;

END behav;

WAIT --无限等待

WAIT ON --敏感信号变化

WAIT UNTIL 表达式 --表达式成立是进程启动

WAIT FOR 时间表达式 --时间到,进程启动

e.g(WAIT)

ARCHITECTURE example OF xor_gate IS

BEGIN

PROCESS

BEGIN

OUT_q <= ind1 xor ind2 AFTER 10ns;

WAIT ON ind1, ind2;

END PROCESS;

END example;

2、Block语句

块(BLOCK)是结构体中的子模块,Block可以把许多并行语句包装在一起,可嵌套。

块名:BLOCK[(保护表达式)]

[类属子句 --用于信号的映射及参数的定义,常用GENERIC语句、

类属接口表;] --GENERIC_MAP语句、PORT语句、PORT_MAP语句实现

[端口子句 --主要对改块用到的客体加以说明。可说明的项目有USE子句、

类属接口表;] --子程序说明及子程序体,类型说明及常数说明、信号说明和元--件说明

块说明部分

BEGIN

并行语句A

并行语句B

......

END BLOCK [块标号];

LIBRARY IEEE

USE WORK.math.ALL;

USE IEEE.STD_LOGIC_1164.ALL;

PACKAGE math IS

TYPE TW32 IS ARRAY(31 DOWNTO 0) OF STD_LOGIC;

FUNCTION TW_add (a, b; tw32) RETURN TW32;

FUNCTION TW_sub (a,b; tw32) RETURN TW32;

END math;

ENTITY cpu IS

PORT (clk, interrupt: IN STD_LOGIC;

ADD: OUT TW32;

Comt: IN INTEGER;

data: INOUT TW32);

END cpu;

ARCHITECTURE cpu_blk OF cpu IS

SIGNAL addr_bus, data_bus: TW32;

BEGIN

ALU: BLOCK --模块标号

PORT(a_bus, b_bus: IN TW32; --模块端口说明

d_out: OUT TW32;

c_bus: IN INTEGER);

PORT(a_bus => addr_bus, --模块信号端口映射

b_bus => data_bus,

d_out => data,

c_bus => comt);

SIGNAL AD_BUS: TW32;

BEGIN

d_out <= tw_add(a_bus, b_bus) WHEN c_bus = 0 ELSE --函数调用

tw_sub(a_bus, b_bus) WHEN c_bus = 1 ELSE --函数调用

a_bus;

END BLOCK ALU;

END cpu_blk;

3、过程和过程调用语句(concurrent procedure call)

register_proc(ck => clock, d => reg_in, q => reg_out); --procedure调用

4、信号代入语句(SIGNAL ASSIGNMENT)

并发信号代入语句(Concurrent Signal Assignment)

q<= a + b;

b<= a + q; --结果同一般编程语言不同。

条件信号代入语言(Conditional Signal Assignment)

目标信号 <= 表达式1 WHEN 条件1 ELSE

表达式2 WHEN 条件2 ELSE

表达式3 WHEN 条件3 ELSE

......

表达式n WHEN 条件n ELSE

表达式n+1;

选择信号代入语言(Selective Signal Assignment)

WITH 表达式 SELECT

目标信号 <= 表达式1 WHEN 条件1

表达式2 WHEN 条件 2

表达式3 WHEN 条件 3

......

表达式n WHEN 条件 n

表达式n+1 WHEN OTHERS;

5、参数传递语句(GENERIC)

GENERIC用于不同层次设计模块之间信息的传递和参数的传递,令器件模块化和通用化。可用于位矢量的长度、数组的位长、器件的延时时间等参数的传递,必须是整数型,其它类型无法综合。

6、通用模块、元件调用语句(COMPONENT)

COMPONENT语句指定了本结构中所调用的是哪一个模块,这些模块在元件库中。

格式:

COMPONENT 元件名 --指定调用元件

GENERIC 说明; --被调用元件参数映射

PORT 说明; --被调用元件端口映射

END COMPONENT;

7、端口映射语句(PORT MAP)

端口映射语句将现成元件的端口信号映射成高层次设计电路中的信号。

标号名: 元件名 PORT MAP (信号,...);

e.g

U1: and2 PORT MAP(d0, d1, U0);

8、生成语句(GENERATE)

用来产生多个相同的结构和描述规则结构,如块矩阵,元件例化和进程。

标号: FOR 变量 IN 区间 GENERATE

并行处理的生成语句

END GENERATE [标号名];

标号: IF 条件 GENERATE

并行处理的生成语句

END GENERATE [标号名];

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有