语法总复习介绍.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog HDL 复习 可综合问题 If-case缺省项对综合的影响 If-case优化问题 高性能编码问题 FSM 存储器建模 综合问题 虽然Verilog提供了大量的语法可以很方便地对电路系统进行各个层次的建模,但是能够综合成实际电路的只是其中的一个子集 如果只是作算法验证,可以不考虑可综合设计的问题,但是如果目标是获得可工作的电路,必须依照可综合的语法规范来设计 不同的综合器支持的可综合子集可能略有不同 Verilog可综合的语法 Verilog HDL Synthesis ——J.Bhasker ArchSyn synthesis system v14.0 综合工具一般不支持下面的 Verilog 结构: 可综合设计的基本原则:你的每一行代码都必须具有电路的意义,能够映射成实际的电路结构;综合器没有你聪明,所以当你不知道你写的代码对应的是什么电路的时候往往综合器也不知道 可综合代码风格 if语句和case语句的编码风格 if语句和case语句中晚到达信号的处理 高性能编码技术 其它问题 高性能编码 不要引入不必要的latch 条件分支不完全的条件语句(if和case语句)将会产生锁存器 其他问题 敏感表要完整 非结构化的for语句 可综合设计——设计准则1 将硬件的行为为指标以合理的方式映射为一些进程。 对于每个进程完成的操作,尽量选择最有效的算法。 了解综合器的性能,特别是了解综合工具支持的VHDL可综合子集。以合理的代码风格引导综合工具生成硬件。 可综合设计——设计准则2 在条件允许情况下,尽量用变量代替信号,对于固定值的信号要用常量代替。 尽量共享复杂运算,可以共享的数据处理用函数和过程定义。 明确指出过程的无关态,引导综合器进行优化。 使用能够满足需要的最小数据宽度 可综合设计——设计准则3 用组合逻辑实现的电路和用时序逻辑实现的电路要分配到不同的进程中。 Integer应加范围限制。 通常的可综合代码应该是同步设计。 避免门级描述,除非在关键路径中。 有限状态机 存状态机是绝大部分控制电路的核心结构 有限状态机可以使用always语句和case语句描述,状态保存在寄存器中,根据寄存器不同的值(状态)执行不同的操作,case语句的多个分支则代表了不同状态的行为 moore有限状态机:输出仅依赖于内部状态,跟输入无关 mealy有限状态机:输出不仅决定于内部状态,还跟外部输入有关 有限状态机设计的一般步骤: 逻辑抽象,得出状态转换图:把给出的一个实际逻辑关系表示为时序逻辑函数,可用状态转换表描述,也可用状态转换图 确定输入变量、输出变量、电路状态 定义输入输出逻辑状态的含义,并将电路状态顺序编号 例1:设计一个自动售货机的逻辑电路。它的投币口每次只能投入一枚五角或一元的硬币。投入一元五角钱硬币后机器自动给出一枚饮料;投入两元(两枚一元)硬币后,在给出饮料的同时找回一枚五角的硬币。 解: 一元 五角 饮料 找钱 A B Y Z 状态s0:未投币前初始状态 状态s1:投入五角 状态s2:投入一元(一元或两五角) 假定通过传感器产生的投币信号(A=1或B=1)在电路转入新状态的同时也随之消失,否则将被误认作又一次投币信号。 单个有限状态机控制整个逻辑电路的运转在实际设计中是不多见,往往是状态机套用状态机,从而形成树状的控制核心。 例:EPROM的串行写入器。事实上,它是一个EPROM读写器设计中实现写功能的部分经删节得到的,去除了EPROM的启动、结束和EPROM控制字的写入等功能,只具备这样一个雏形。工作的步骤是:1.地址的串行写入;2.数据的串行写入;3.给信号源应答,信号源给出下一个操作对象;4.结束写操作。通过移位令并行数据得以一位一位输出。 存储器建模 描述存储器必须做两件事: 说明一个适当容量的存储器。 提供内容访问的级别,例如: 只读 读和写 写同时读 多个读操作,同时进行单个写操作 同时有多个读和多个写操作,有保证一致性的方法 ROM 下面的ROM描述中使用寄存器矢量数组定义了一个存储器mem。ROM的数据单独保存在文件my_rom_data中,如右边所示。通常用这种方法使ROM数据独立于ROM描述。 参数化存储器 moore有限状态机实例 module moore_fsm(clk, reset, A, Z, finish); parameter STATE_INIT = 0; parameter STATE_ST1 = 1; parameter STATE_ST2 = 2; parameter STATE_FINISH = 3; input clk, reset; input A; output

文档评论(0)

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

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

1亿VIP精品文档

相关文档