当前位置:
文档之家› BCD-7段数码管显示译码器电路设计
BCD-7段数码管显示译码器电路设计
case 表达式 is when 分支条件 => 顺序处理语句; when 分支条件 => 顺序处理语句;
┇
when 分支条件 => 顺序处理语句; end case;
以上语句等效为: process(indicator, sig)
variable temp : std_logic ; begin
temp := ‘0’ ; temp :=temp xor (sig(0) and indicator(0)); temp :=temp xor (sig(1) and indicator(1)); temp :=temp xor (sig(2) and indicator(2)); temp :=temp xor (sig(3) and indicator(3)); output <= temp ; end process ;
a <= b ; b <= a ; end process ; end rtl ; -- 结果是 a 和 b 的值互换
变量赋值: architecture rtl of var is begin process vபைடு நூலகம்riable a,b:std_logic; -- 定义变量 begin a := b ; b := a ; end process ; end rtl; -- 结果是a和b的值都等于b的初值
例:变量赋值实现循环语句功能
process(indicator, sig) variable temp : std_logic;
begin temp := ‘0’ ; for i in 0 to 3 loop
temp:=temp xor (sig(i) and indicator(i));
end loop ; output <= temp; end process;
Combinational Process
component
ports
硬件执行:并行执行(VHDL本质) 仿真执行:顺序执行、并行执行 分为两大类:顺序(Sequential)描述语句
并行(Concurrent)描述语句
顺序描述语句: 执行顺序与书写顺序一致,与传统软件设计
语言的特点相似。顺序语句只能用在进程与子程 序中。
process(…) begin
a <= c; ...
end process;
end ex;
例:信号赋值与变量赋值的比较
信号赋值: architecture rtl of sig is signal a,b : std_logic; -- 定义信号 begin
process(a, b) begin
┇
label2: PROCESS {VARIABLE Declarations}
4)赋值行为的不同: 信号赋值延迟更新数值、时序电路; 变量赋值立即更新数值、组合电路。
5)信号的多次赋值 a. 一个进程:最后一次赋值有效 b. 多个进程:多源驱动 线与、线或、三态
例:信号的多次赋值
architecture rtl of ex is signal a : std_logic;
begin process(…) begin a <= b; … a <= c; end process;
end rtl;
architecture rtl of ex is signal a : std_logic;
begin process(…) begin a <= b; … end process;
❖ ⑵能在EDA实验系统上进行硬件验证测试。
本项目涉及的VHDL语法
❖ VHDL顺序语句(CASE) ❖ 变量与信号的区别 ❖ VHDL并行语句(PROCESS)
VHDL顺序语句(Sequential)
ports
ENTITY
ARCHITECTURE
Process
Process
Sequential Process
一、项目资讯
1、BCD-7段数码管显示译码器电路的工作原 理。
2、基于FPGA与VHDL的数字电路与数字系 统设计方法与工作流程。
3、WITH-SELECT 语句与WHEN-ELSE语句 及其应用。
4、进程语句、CASE语句、IF语句及其应用。
二、项目计划
❖ ⑴能在Max+PlusII软件平台上调试BCD-7段 显示译码电路VHDL程序,并进行功能仿真;
可描述组合逻辑、时序逻辑。
常用的顺序描述语句:
赋值语句; if语句;case语句;loop语句; next语句;exit语句;子程序;return语句; wait语句;null语句。
1、变量赋值与信号赋值
变量与信号的差异:
1)赋值方式的不同: 变量:= 表达式; 信号 < = 表达式;
2)硬件实现的功能不同: 信号代表电路单元、功能模块间的互联,
代表实际的硬件连线; 变量代表电路单元内部的操作,代表暂
存的临时数据。
3)有效范围的不同: 信号:程序包、实体、结构体;全局量。 变量:进程、子程序;局部量。
ARCHITECTURE
{SIGNAL Declarations} label1: PROCESS {VARIABLE Declarations}
如改为信号,则无法实现原功能:
…… signal temp : std_logic;
…… process(indicator, sig, temp) begin
temp<= ‘0’ ; temp<=temp xor (sig(0) and indicator(0)); temp<=temp xor (sig(1) and indicator(1)); temp<=temp xor (sig(2) and indicator(2)); temp<=temp xor (sig(3) and indicator(3)); output <= temp ; end process ;
转向控制语句
转向控制语句通过条件控制开关决定是否执 行一条或几条语句,或重得执行一条或几条语句, 或跳过一条或几条语句。
分为五种: if 语句、case 语句、 loop 语句、next 语句、 exit 语句
case 语句
case 语句常用来描述总线或编码、译码行为。 可读性比if 语句强。
格式如下: