https://mp.weixin.qq.com/s/j4zLmjKgau2vRXVNfm0SIA

 
带进位的加法。
 
参考链接
 
1.创建Adder4Carry.java, 并生成构造方法和logic()方法
 
2. 根据逻辑原理,添加输入输出接口
输入输出线作为类成员存在。使用注解标明是input port还是output port。
 
3. 在构造方法中搜集输入输出线并调用construct()方法(可以直接根据输入输出接口,生成该构造函数)
首先调用父类即Module类的构造方法,以构建模块hierarchy。
然后逐个把输入输出参数与input/output port对应上。
然后调用construct()方法构造模块(调用一次logic()方法,搜集模块的assign/always代码块、子模块)。
 
4. 在logic()方法中创建assign/always代码块,以及子模块
这里包含一个assign代码块:当发生a, b,cin的变化事件时,执行lambda表达式的方法,以更新cout, s的值。
 
这里使用了concat组合,因为cout为Bit类型,而Bit类型为基本类型,较为简单。所以先转换为Bits然后再行与其他线组合。
 
可以将cout, cin声明为Bits类型,但宽度为1,这样写起来较为简单。
 
5. 创建inst静态方法方便后续使用
 
6. 创建main方法执行验证
运行结果为:
 
7. 生成Verilog
生成定制化模块名:
 
调用toVerilog()方法生成Verilog实现。
 
执行结果如下:
 

jchdl - RTL实例 - Adder4Carry的更多相关文章

  1. jchdl - RTL实例 - MOS6502 ALU

    https://mp.weixin.qq.com/s/nMxYVC2djk7DdAforerZPA   使用jchdl RTL实现MOS6502 CPU的ALU.   参考链接 https://git ...

  2. jchdl - RTL实例 - Counter4

    https://mp.weixin.qq.com/s/xtvMj5f-Uvx3vesVnH0P_A   计数器.   参考链接 https://github.com/wjcdx/jchdl/blob/ ...

  3. jchdl - RTL实例 - Adder

    https://mp.weixin.qq.com/s/9S29BCTcJfbpR62ALjSidA   加法器.   参考链接 https://github.com/wjcdx/jchdl/blob/ ...

  4. jchdl - RTL实例 - Mux

    https://mp.weixin.qq.com/s/OmQRQU2mU2I5d-qtV4PAwg   二选一输出.   参考链接 https://github.com/wjcdx/jchdl/blo ...

  5. jchdl - RTL实例 - AndReg

    https://mp.weixin.qq.com/s/p4-379tBRYKCYBk8AZoT8A   输入两组线相与,结果输出到寄存器.   参考链接 https://github.com/wjcd ...

  6. jchdl - RTL实例 - AndAnd

    https://mp.weixin.qq.com/s/JhUB3M1WhjAyUrN1HPIPTA   AndAnd是三输入与门模块,输出为相与的结果.   参考链接 https://github.c ...

  7. jchdl - RTL实例 - And

    https://mp.weixin.qq.com/s/86d_sFN0xVqk1xRaRyoAkg   使用rtl语法,实现简单的与门.   参考链接 https://github.com/wjcdx ...

  8. jchdl - RTL实例 - MOS6502 SoC

    https://mp.weixin.qq.com/s/H2UBmZa9fpM6_FM2_MucTQ   实现一个SoC作为顶层模块,包含Cpu.Mem两个子模块,并驱动运行.   参考链接 https ...

  9. jchdl - RTL实例 - MOS6502 CPU

    https://mp.weixin.qq.com/s/OguQKMU64GGdinCJjgyeKw   实现MOS6502 CPU,主要是实现状态机.   参考链接 https://github.co ...

随机推荐

  1. 自定义比较器(IComparer接口的实现)

    class FileNameSort : IComparer { [System.Runtime.InteropServices.DllImport("Shlwapi.dll", ...

  2. Spring官网阅读(一)容器及实例化

    从今天开始,我们一起过一遍Spring的官网,一边读,一边结合在路神课堂上学习的知识,讲一讲自己的理解.不管是之前关于动态代理的文章,还是读Spring的官网,都是为了之后对Spring的源码做更全面 ...

  3. PI/PO Token配置

    接收方通道配置 因为本例中需要在访问业务接口时,获取某平台的TOKEN认证,并在调用业务接口时,将TOKEN一同传给某平台,但是不能放在请求参数中,而是放在HTTP的Headers 注意!是Heade ...

  4. 组合模式(c++实现)

    组合模式 目录 组合模式 定义 动机 UML类图 场景拆解 源码实现 优点 缺点 定义 将对象组合成树形结构以表示"部分-整体"的层次结构.组合模式是的用户对单个对象和组合对象的使 ...

  5. 漫谈Huawei LiteOS五大内核模块

    [摘要]Huawei LiteOS是华为面向IoT领域,构建的“统一物联网操作系统和中间件软件平台”,以轻量级(内核小于10k).低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键 ...

  6. docker+headless+robotframework+jenkins实现web自动化持续集成

    在Docker环境使headless实现web自动化持续集成 一.制作镜像 原则:自动化测试基于基础制作镜像 命令:docker run --privileged --name=$1 --net=ho ...

  7. JavaScript和TypeScript的区别和联系

    转载自:http://web.jobbole.com/93618/?utm_source=group.jobbole.com&utm_medium=relatedArticles JavaSc ...

  8. webstorm-在不删除硬盘文件的条件下移除项目

    一段时间没用之后会忘记如何在webstorm里移除一个项目,要花很长的时间去找到底如何才能移除,所以特地把它记录下来了,方便下次忘记的时候可以查阅 把鼠标移在你要移除的那个项目上然后按下Delete键 ...

  9. HTML5面试题

    1. sessionStorage和localStorage的区别 答案: sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会 ...

  10. orcle报错:ORA-12737:Instant Client Light:unsupported server character set ZHS16GBK

    我们用Navacat连接Oracle数据库的时候,会提示ORA-12737:Instant Client Light:unsupported server character set ZHS16GBK ...