• jchdl


    https://mp.weixin.qq.com/s/86d_sFN0xVqk1xRaRyoAkg

     
    使用rtl语法,实现简单的与门。
     
    参考链接
     
    1.创建And.java, 并生成构造方法和logic()方法
    And类继承自Module类。And类的构造方法第一个参数为父模块,用以创建模块Hierarchy。logic()方法中描述模块包含的assign和always代码块。
     
    2. 根据逻辑原理,添加输入输出接口
    输入输出线作为类成员存在。使用注解标明是input port还是output port。
     
     
    3. 在构造方法中搜集输入输出线并调用construct()方法
    首先调用父类即Module类的构造方法,以构建模块hierarchy。
    然后逐个把输入输出参数与input/output port对应上。
    然后调用construct()方法构造模块(调用一次logic()方法,搜集模块的assign/always代码块)。
     
    4. 在logic()方法中创建assign/always代码块,以及子模块
    这里只包含一个assign代码块:使用a, b对r进行复制,用assignR()方法。当a, b的值发生变化时,会调用assignR()方法更新r的值。
     
    这里this::assignR是lambda表达式的一种写法,也可以不另外创建单独的方法,如:
    亦或者:
    这种带大括号的写法,支持多条语句。
     
    提倡使用创建独立类方法的方式,这样可以清楚的表明:And类是一个模块,有输入输出接口作为属性成员,有assign/always代码块作为方法成员。
     
    5. 创建inst静态方法方便后续使用
     
    6. 创建main方法执行验证
     
    运行结果为:
     
    7. 生成Verilog
    生成定制化模块名:
     
    调用toVerilog()方法生成Verilog实现。
     
    执行结果如下:
     
  • 相关阅读:
    移动端调试Vconsole
    Vue-返回顶部
    Vue-封装loading
    Vue-水印封装
    Vue-封装scroll触底
    微信小程序-图片上传
    前端面试题(2)
    前端常见面试题
    服务端渲染(SSR)和客户端(CSR)渲染的区别
    什么是模块化?模块化开发的好处
  • 原文地址:https://www.cnblogs.com/wjcdx/p/9892722.html
Copyright © 2020-2023  润新知