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

 
使用jchdl RTL实现MOS6502 CPU的ALU。
 
参考链接
 
1.创建Alu.java, 并生成构造方法和logic()方法
 
2. 根据逻辑原理,添加输入输出接口
输入输出线作为类成员存在。使用注解标明是input port还是output port。
 
使用的内部变量如下:
 
3. 在构造方法中搜集输入输出线并调用construct()方法
首先调用父类即Module类的构造方法,以构建模块hierarchy。
然后逐个把输入输出参数与input/output port对应上。
然后调用construct()方法构造模块(调用一次logic()方法,搜集模块的assign/always代码块、子模块)。
 
4. 在logic()方法中创建assign/always代码块,以及子模块
 
其中,updateTempLogic()实现如下:
 
updateTempBI()实现如下:
 
 
5. 创建inst静态方法方便后续使用
 
6. 创建main方法执行验证
 
运行结果为:
 
7. 生成Verilog
生成定制化模块名:
 
调用toVerilog()方法生成Verilog实现。
 
执行结果如下:
 

最新文章

  1. C Primer Plus_第10章_数组和指针_编程练习
  2. zoj3745 Salary Increasing
  3. 浅谈Javase内存流程图
  4. 一 VC2008环境中ICE的配置
  5. .NET 基础 一步步 一幕幕[面向对象之堆、栈、引用类型、值类型]
  6. UVa 10033 - Interpreter
  7. css gray,grayscale,css变灰兼容大部分浏览器
  8. 【原创】-- C# 点滴积累 -- String
  9. HoloLens开发手记-世界坐标系 Coordinate systems
  10. 剑指offer 第九天
  11. js 自动类型转换
  12. xshell的一些常用配置
  13. 一.定时任务详解https://i.cnblogs.com/EditPosts.aspx
  14. 第三周学习总结-Java
  15. java输出格式-----System.out.printf()
  16. InfluxDB添加新服务
  17. #分组背包 Educational Codeforces Round 39 (Rated for Div. 2) D. Timetable
  18. 每天一个linux命令(5):in命令
  19. linux上搭建私服
  20. centos7安装vim以及在vim中显示中文

热门文章

  1. kafka学习 之 Quickstart
  2. Python 记录日志文件
  3. Qt之connect
  4. 【Spark】Spark-shell案例——单词计数统计
  5. 把99%的程序员烤得外焦里嫩的JavaScript面试题
  6. 关于网上quartus ii 生成fft核出现问题解决
  7. C++单例写法
  8. git推送代码问题之:ERROR: [abcdefg] missing Change-Id in commit message footer
  9. phantomJS安装出错解决办法
  10. select 下拉框样式修改 option文字居右