第5章数字系统设计方法摘要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
主要内容 组合电路的设计方法 时序电路的设计方法 LPM库简介及其应用 有限状态机 层次化设计方法 流水线设计方法 常用的控制方法 编码风格 组合逻辑电路 组合逻辑电路的输出信号只与系统当时的输入信号有关,而与电路原来所处的状态无关。 主要有简单门电路、译码电路、加法器、乘法器、数字分配器、数字选择器等。 用VHDL语言实现组合电路的方法 使用并发语句 使用进程语句——可提高程序的可读性,特别适合算法复杂的场合。 组合逻辑电路的描述语句 并发语句 并发带入语句 条件信号带入 选择信号带入 进程语句 并发描述语句 并发描述语句的种类 简单信号代入语句(Simple Signal Assigments) 条件信号代入(Conditional Signal Assigments) 选择信号代入(Selected Signal Assigments) 进程描述语句 一般形式 PRO_Name:PROCESS (__signal_name, __signal_name ) BEGIN …… END PROCESS PRO_Name; 进程描述语句必须包含一个显式的敏感信号量表或隐式的敏感信号说明 当敏感信号量的值变化时,进程执行 进程内部的语句是顺序语句 并发语句 vs 进程语句 并发语句和进程语句都可以实现组合逻辑 使用进程语句实现组合逻辑时需要形成良好的编码风格,以免在综合时不必要消耗电路资源 进程描述语句还可以实现时序逻辑 组合逻辑电路的描述方式 行为描述 行为描述主要从模块的功能上描述输入输出的关系。 结构描述 结构描述包含各个模块之间的连接关系,各个模块使用端口(信号)进行数据通信。 结构描述的方式是使用元件例化的方法将各个模块进行连接。 描述组合逻辑电路注意事项 避免组合逻辑反馈环路 替换延迟链 使用完备的if…else语句 检查设计中是否含有组合逻辑反馈环路 基本逻辑门电路 与门/或门/与非门/或非门/反相器/异或门… 可以通过逻辑运算符/并发代入语句来实现 例如:2输入与非门 ARCHITECTURE depict OF nand2 IS BEGIN y = a nand b; END depict 编码器 编码器的分类 普通编码器:在某一时刻,只能对一个输入信号进行编码,并且这种编码器的输入端不允许同一时刻出现两个以上的有效输入信号,否则编码器将会出现混乱 优先编码器:指将所有输入信号按照优先级顺序进行排队,当几个输入信号同时出现(有效)时,只对其中优先级最高的一个输入信号进行编码 编码器 优先编码器 通常采用IF-THEN-ELSE语句实现 普通编码器 采用CASE-WHEN语句实现 采用多级IF-THEN-END IF语句实现 译码器 变量译码器:把输入的二进制代码的各种组合状态翻译成对应的输出信号。 码制变换译码器:将一种代码变换为另一种代码的电路。 显示译码器:如将数据显示在七段数码管上时的译码。 地址译码器:将译码器输入端的输入地址信号翻译成相应的输出控制信号。 多路选择器 二选一选择器:二路输入端口、一路信号选择端口、一路输出端口。 四选一选择器:四路输入端口、二路信号选择端口、一路输出端口。 八选一选择器:八路输入端口、三路信号选择端口、一路输出端口。 十六选一选择器:十六路输入端口、四路信号选择端口、一路输出端口。 三态门 三态门除了逻辑0和逻辑1两个状态以外,还具有高阻输出状态(相当于开路)。 tri_gate: process(din,en) begin if (en=1) then dout=din; else dout=Z; end if; end process; 常见组合电路的描述 P186~P193 时序逻辑电路 时序逻辑电路的输出与当时的系统输入和之前的系统输出有关 时序逻辑电路中至少包括一个寄存器,且具有反馈通道 主要电路有:触发器、状态机、计数器、移位寄存器、控制器 时序逻辑电路的描述:采用带有时钟信号的进程描述语句实现 时钟的上升延 IF (clk’EVENT AND clk=’1’) THEN WAIT UNTIL clk=’1’; IF (clk’last_value=’0’ AND clk’event AND clk=‘1’)THEN IF (rising_edge(clk)) THEN 时钟的下降延 IF (clk’EVENT AND clk=’0’) THEN WAIT UNTIL clk=’0’; IF (clk’last_value=’1’ AND clk’event AND clk=’0’) THEN IF (falling_edge(clk)) THEN 关于时钟 时钟边沿的判断

文档评论(0)

糖糖 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档