- 1、本文档共128页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字系统EDA技术32
例:用 for … loop 语句描述的8位奇偶校验电路 8位奇校验电路仿真结果: 将变量tmp的初值改为‘0’,则为偶校验电路: 3)while … loop 语句 例: sum:=0; i:=0; abcd: while (i10) loop sum:=sum+i; i:=i+1; end loop abcd; 注:循环变量 i 需事先定义、赋初值、指定变化方 式。一般综合工具不支持 while … loop 语句。 例:用 while … loop 语句描述的8位奇偶校验电路 3、如果有 wait 语句,则不允许有敏感信号表。 2、嵌套块 子块声明与父块声明的对象同名时,子块声明 将忽略掉父块声明。 3、卫式(Guarded)块 由保护表达式值的真、假决定块语句的执行与 否。综合不支持。 3.5.3 并行信号赋值语句 包括三种: 简单并行信号赋值; 条件信号赋值; 选择信号赋值。 共同特点: 1、赋值目标必须是信号,与其它并行语句同 时执行,与书写顺序及是否在块语句中无关。 2、每一信号赋值语句等效于一个进程语句。 所有输入信号的变化都将启动该语句的执行。 等效: 等效否? 条件信号赋值语句与进程中的多选择 if 语句等价: 选择信号赋值语句与进程中的 case 语句等价: 3.5.4 并行过程调用语句 用过程名在结构体或块语句中可实现并行过 程调用。 其作用与一个进程等价。 格式: 过程名 [([参数名=] 表达式 {, [参数名=] 表达式})] 例:并行过程调用与顺序过程调用 … procedure adder( signal a, b: in std_logic; signal sum: out std_logic); … adder(a1, b1, sum1); … process(c1, c2) begin adder(c1, c2, s1); end process; 3.5.5 VHDL的层次化设计与元件声明 (component) 及元件例化(instantial)语句 1、层次化设计 一个低层次设计在被例化前必须有一个元件声明。 ENTITY exam is PORT( ea, eb :IN STD_LOGIC_VECTOR(3 DOWNTO 0); ey : OUT STD_LOGIC); END exam ; ARCHITECTURE exam_arch OF exam IS COMPONENT compare PORT( a : IN STD_LOGIC_VECTOR(3 DOWNTO 0); b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); y : OUT STD_LOGIC ); END COMPONENT; --元件声明 BEGIN u1 : compare PORT MAP ( ea, eb, ey) ; --元件例化 END exam_arch ; 层次化设计的优点: 在一个设计组中,各个设计者可独立地以不同的设计文件设计不同的模块元件。 各个模块可以被其他设计者共享,或备以后使用。 层次设计可使系统设计模块化,便于移植,复用。 层次设计可使系统设计周期更短,更易实现。 子程序与硬件规模: 与普通软件中子程序调用的区别: 普通软件子程序调用增加处理时间; VHDL中每调用一次子程序,其综合后都将 对应一个相应的电路模块。子程序调用次数与综 合后的电路
文档评论(0)