- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 VHDL设计进阶 §5.1 数据对象* §5.2 VHDL设计实例及其语法内涵* §5.3 顺序语句归纳 §5.4并行赋值语句讨论 §5.5 IF语句概述例解 §5.7 仿真延时 §5.8 VHDL的RTL表述 本章例程 多功能移位寄存器 三态门与三态总线 优先编码器 7段数码显示译码器(实验与设计) 8位数码扫描显示电路(实验与设计) 数控分频器(实验与设计) 三种数据对象的基本用法比较 §5.2 VHDL设计实例及其语法内涵 移位寄存器设计* 位矢中‘1’码个数统计电路设计 三态门与三态总线设计* 5.2.1 含同步并行预置功能的8位并入串出右移位寄存器设计 5.2.2 移位模式可控的8位移位寄存器设计 补充设计:8位并入并出右移位寄存器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY RSHIFT IS PORT(CLR,LOD,CLK:IN BIT; D:IN BIT_VECTOR(7 DOWNTO 0); Q:BUFFER BIT_VECTOR(7 DOWNTO 0)); END RSHIFT; ARCHITECTURE ONE OF RSHIFT IS SIGNAL Q_TMP:BIT_VECTOR(7 DOWNTO 0); BEGIN PROCESS(CLR,CLK,LOD) BEGIN IF CLR=‘0’ THEN Q_TMP=; ELSIF CLK’EVENT AND CLK=‘1’ THEN IF LOD=‘1’ THEN Q_TMP=D; 知识扩展:移位寄存器有哪些实际应用? 串/并或并/串数据转换 序列发生器设计:密码电路; 环形计数器(循环移位寄存器):节拍器 线性反馈移位寄存器:CRC校验电路 5.2.3 位矢中‘1’码个数统计电路设计 位矢中‘1’码个数统计电路设计要点 Q只能定义为变量; 虽然采用不完全条件IF语句,但结果得到的是组合电路;而非时序电路; 循环语句的使用 利用LOOP循环语句简化同类顺序语句的表达 5.2.4 三态门设计 5.2.5 双向总线设计—利用inout端口 5.2.5双向总线(利用双向端口)补充设计 library ieee; use ieee.std_logic_1164.all; entity tri_bigate is port (a,b: inout std_logic_vector(7 downto 0); control : in std_logic; dr : in std_logic); end tri_bigate; architecture body_tri of tri_bigate is signal aout,bout: std_logic _vector (7 downto 0); Begin 在进程中,顺序等价的语句(如if语句),当它们列于同一进程敏感表中的输入信号同时发生变化时,只可能对进程结束前的一条赋值语句进行赋值操作,而忽略其上的所有的等价语句。 一般情况下,同一进程中最好只放一个if语句结构。 在结构体中,每一条并行语句都等同于一个独立运行的进程,它们独立检测各并行语句中作为敏感信号的输入值ctl。 要设计出能产生独立控制的多通道的电路结构,必须使用并行语句结构。 知识扩展——基于LPM宏模块的总线设计 5.2.7双边沿触发电路设计讨论 VHDL不允许对同一时钟信号的两个边沿进行任何数据赋值操作。 进程举例 进程举例 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = ‘1’ THEN
原创力文档


文档评论(0)