第四章_基于Xilinx芯片的Verilog进阶设计.pptVIP

第四章_基于Xilinx芯片的Verilog进阶设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章_基于Xilinx芯片的Verilog进阶设计

原语的使用 Virtex-II的块状RAM 原语的使用 组件示例:Virtex-2芯片双端口块状RAM 原语的使用 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 企业代码风格 8.赋值 Verilog 支持两种赋值:过程赋值(procedural) 和连续赋值(continuous) ,过程赋值用于过程代码(initial, always, task or function)中给reg和integer变量time\realtime、real赋值,而连续赋值一般给wire变量赋值; (reg型与wire型赋值问题) always @(敏感表敏感表要完整如果不完整将会引起仿真和综合结果不一致; (电平触发的意外锁存器问题) 企业代码风格 8.赋值 force/release 仅用于debug,对寄存器和线网均有用; 避免使用Disable assign/deassign 仅用于仿真加速仅对寄存器有用; (可综合设计问题) 对任何reg赋值用非阻塞赋值代替阻塞赋值, reg 的非阻塞赋值要加单位延迟,但异步复位可加可不加。 (reg赋值问题,仿真赋值延迟问题) 企业代码风格 9.组合逻辑与时序逻辑 如果一个事件持续几个时钟周期设计时就用时序逻辑代替组合逻辑; 内部总线不要悬空,在default状态要把它上拉或下拉。 企业代码风格 10.宏与参数 为了保持代码的可读性常用 `define做常数声明; 把`define放在一个独立的文件中; 参数parameter 必须在一个模块中定义,不要传替参数到模块; 如果希望宏的作用域仅在一个模块中就用参数来代替。 企业代码风格 11.注释 对更新的内容更新要做注释; 在语法块的结尾做标记; 每一个模块都应在模块开始处做模块级的注释; 在模块端口列表中出现的端口信号都应做简要的功能描述。 企业代码风格 12.有限状态机(FSM) VerilogHDL描述状态机时由parameter分配好状态; 组合逻辑和时序逻辑分开用不同的进程: 组合逻辑包括状态译码和输出; 时序逻辑则是状态寄存器的切换; 必须包括对所有状态都处理不能出现无法处理的状态使状态机失控; Mealy机的状态和输入有关,而Moore机的状态转换和输入无关。 (Mealy机使用的较多) 企业代码风格 13.testbench 在testbench中避免使用绝对的时间,如#20,#15或#(CYC+15)等,应该在文件前面使用parameter定义一些常量,使得时间的定义象#(CYC+OFF0)的形式,便于修改; 观测结果可以输出到波形文件或数据文件 ; 对大的设计的顶层仿真一般不要对所有信号跟踪波形文件会很大仿真时间延长可以有选择的观测一些信号; 企业代码风格:常见代码问题 在for-loop中包括不变的表达式浪费运算时间 for (i=0;i4;i=i+1) begin Sig1 = Sig2; DataOut[i] = DataIn[i]; end for-loop中第一条语句始终不变,浪费运算时间。 (注意,这是仿真代码) 企业代码风格:常见代码问题 资源共享问题 条件算子中不存在资源共享,如 z = (cond) ? (a + b) : (c + d); 必须使用两个加法器; 而等效的条件if-then-else语句则可以资源共享如 if (Cond) z = a + b; else z = c + d; 只要加法器的输入端复用,就可以实现加法器的共享,使用一个加法器实现 企业代码风格:常见代码问题 由于组合逻辑位置不同而引起过多的触发器综合 组合逻辑单独使用一个 电平触发的always语句, 寄存器减少一个。 注:(1)需根据具体需要 (2)少用always描述 组合逻辑 企业代码风格:常见代码问题 谨慎使用异步逻辑 避免门控时钟 always @ (posedge GATED_Clk or posedge Rst) begin if (Rst) Z = #u_dly 1b0; else …… 企业代码风格:常见代码问题 对组合逻辑的描述有多种方式,其综合结果等效 选择简洁描述 选择意义明确描述 企业代码风格:常见代码问题 考虑综合的执行时间 通常会推荐将模块划分得越小越好,事实上要从实际的设计目

文档评论(0)

4477704 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档