命名规则和注解(VHDL)

为使程序结构清晰,具有更好的可读性,提出如下建议:

1)对VHDL语言的保留字,习惯上用大写,其他应小写。但有一种情况需要注意,代表不定状态的“X”和高阻态的“Z”要求必须大写。

2)单词、信号名的含义要明确,命名时不要与保留字相同,以免造成混乱。

3)要求段落分明、含义确切,嵌套关系一目了然。

4)应辅以适量的程序注释。

1.命名规则

所使用的名字,如信号名、实体名、结构体名、变量名、各种进程标记、块标记等进行命名时,应遵守如下规则:

1)名字的最前面应使用英文字母;

2)构成名字的字符只能用英文字母、数字和连字符“-”;

3)不能连续使用“-”,名字的最后一个字符也不能用连字符“-”。

2.注释

1)VHDL语言中使用的注释符是“--”,从注释符号“--”开始到该行末尾结束;

2)所注释的文字不作为语句来处理,不产生硬件电路结构,不描述电路硬件行为;

3)在编译、仿真过程中,对于中文的注释有的软件可能会产生错误。

VHDL设计举例

这一节,举一个8位寄存器的简单VHDL程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY shifter8 IS

PORT(in1,in2:IN STD_LOGIC; --input port

clrn:IN STD_LOGIC; --clear signal

clk:IN STD_LOGIC; --clokck signal

q0,q1,q2,q3,q4,q5,q6,q7:OUT STD_LOGIC);

END shifter8; --output port

ARCHITECTURE rtl Of shifter8 IS

SIGNAL shift_reg:STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

PROCESS(clrn,clk)

BEGIN

IF clrn=’0’ THEN

shift_reg <=( OTHERS => ‘0’);

ELSIF clk’s EVENT AND clk=’1’ THEN

shift_reg(7 DOWNTO 1)<= shift_reg(6 DOWNTO 0);

shift_reg(0)<= in1 AND in2;

END IF;

END PROCESS;

q0 <= shift_reg(0);

q1 <= shift_reg(1);

q2 <= shift_reg(2);

q3 <= shift_reg(3);

q4 <= shift_reg(4);

q5 <= shift_reg(5);

q6 <= shift_reg(6);

q7 <= shift_reg(7);

END rtl;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值