https://mp.weixin.qq.com/s/4uWqBRrMVG6FlnBKmw8U-w

 
介绍SimplifyDC如何简化解码逻辑。
 
 
1. 使用
 
 
简化从mint和maxt中查找的逻辑。
 
其方法签名如下:
其中:
a. minTerms: 使结果为1的蕴含项;
b. maxTerms:使结果为0的蕴含项;
c. bits:最小项中变量的个数;
 
 
2. 主要过程
 
主要过程与Simplify基本一致:
1) 从minTerms和maxTerms中获取质项,即在卡诺图中画圈,把最小项划入圈中,以合并最小项,但又不能在圈中圈入maxTerms中的项;
2) 从质项中查找必要质项,做出如下区分:
a. 把质项分为必要质项和非必要质项;
b. 把最小项(minTerms)分为必要质项覆盖的最小项和未覆盖的最小项;
c. 从非必要质项中提取出代价最小的能够覆盖未覆盖最小项的质项,并与必要质项合并为cover;
3) cover就是能够覆盖minTerms的最简项的集合;
 
3. 获取质项
 
getPrimeImplicants实现如下:
 
1) 前半部分与Simplify相同,表格示例如下:
 
 
2) 尝试把单元格(i,j)中未合并的质项进行化简
 
化简的方法是消去其中一个值为0的变量,如果消去之后的新项不与maxTerms中的任何项相交,则该化简可以进行。
 
单元格(i,j)相较于(i,j+1)在上面,即above为true。也意味着above的单元格中的质项,其value各位中1的个数少一个。
 
所以尝试把above的单元格中质项的某变量的值从0变为1,而把在下的单元格中执行的某变量的值从1变为0。
 
单元格(i,j)中的质项,合并(merge)吸收一个变量之后,value中1的位数不变,而mask中多了一个1,所以添加到单元格(i+1,j)中。
 
单元格(i,j+1)中的质项,合并吸收一个变量之后,value中1的位数减少一个,而mask中1的位数增加一个,所以也是添加到单元格(i+1,j)中。
 
merge是有方向的:a merge b,则a.value必然大于b.value。这是dc merge a和a merge dc的区别。
 
实现如下:
 
a. 取出单元格(i,j)中未合并的质项;
b. 该单元格在上,above=true;
c. 如果某个变量值为0,且吸收之后不与maxTerms中的任何项相交,则可以用以化简:
 
 
term中的每一个变量都会尝试,碰到第一个可以吸收的变量即返回。
 
3) 尝试把单元格(i,j+1)中未合并的质项进行化简
 
实现如下:
 
a. 取出单元格(i,j+1)中未合并的质项;
b. 该单元格在下,above=false;
c. 如果某个变量值为1,且吸收之后不与maxTerms中的任何项相交,则可以用以化简:
 
 
 
4. 获取必要质项
 
与Simplify相同。
 
5. 获取最后化简结果cover
 
与Simplify相同。
 
6. 验证化简结果
 
 
a. 化简结果要覆盖全部minTerms中的项;
b. 化简结果不能与maxTerms中的项相交;
 
 

Rocket - decode - SimplifyDC的更多相关文章

  1. Rocket - decode - 几个问题

    https://mp.weixin.qq.com/s/pMsK_E4mQrm3QXdnp7nDPQ   讨论指令解码部分遗留的几个问题.     1. 最小项与蕴含项之间的关系   参考链接: htt ...

  2. Rocket - decode - 解码单个信号

    https://mp.weixin.qq.com/s/0D_NaeBEZX5LBQRdCz2seQ     介绍解码单个信号逻辑的实现.    1. 单个信号   每个指令对应了一组信号,每个信号对应 ...

  3. Rocket - decode - Term

    https://mp.weixin.qq.com/s/CbBWdTlc_DESlUzd8KFcSg   介绍Term类各方法的实现.     ​​   1. prime   表示一个项是否是质项,即这 ...

  4. Rocket - decode - Simplify

    https://mp.weixin.qq.com/s/YWXYNaRU-DbLOMxpzF2bpQ   介绍Simplify如何简化解码逻辑.     1. 使用   Simplify在DecodeL ...

  5. Rocket - decode - 最小项与最大项

    https://mp.weixin.qq.com/s/XrBh9Kapj01HdvBi5MkbgA   介绍布尔代数最小项与最大项相关概念,以及Term类的实现.     参考链接: https:// ...

  6. Rocket - decode - Inst Decode

    https://mp.weixin.qq.com/s/WvepB3yAzjMbQalO3Z82pQ   介绍RocketChip Instruction解码逻辑的实现.   1. RISC-V   R ...

  7. 64位开源处理器Rocket该人士介绍

    最近大概读一点UCB发布时间Rocket处理器的源代码,的每个文件的源代码的功能有一定的一般理解,Mark一点点. Rocket是一家64bit标量处理器,5第一阶段管道,用途risc-v指令集.综合 ...

  8. (转)64位开源处理器Rocket的源代码简单介绍

    转载地址: http://blog.csdn.net/leishangwen/article/details/46604819 最近大概阅读了一下UCB发布的Rocket处理器的源码,对源代码各个文件 ...

  9. flask+sqlite3+echarts2+ajax数据可视化报错:UnicodeDecodeError: 'utf8' codec can't decode byte解决方法

    flask+sqlite3+echarts2+ajax数据可视化报错: UnicodeDecodeError: 'utf8' codec can't decode byte 解决方法: 将 py文件和 ...

随机推荐

  1. Nginx+Uwsgi+Django 项目部署到服务器。

    首先先说一下思路: 1.本地django项目打包 主要用到的是 python自带的distutils.core 下的 setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的 ...

  2. spring中bean的常用属性

    一.scop scope用来配置bean对象是否是单例模式.单例模式是java的二十三种设置模式之一,指在这个项目运行过程中一 个类的对象只会实例化一次.一般,工厂类的对象都是单例模式.非单例模式叫多 ...

  3. 【学习笔记】Shell-1 变量:命名规范、变量赋值/取值/取消、局部变量/全局变量、预设环境变量

    1.Shell变量 从变量的实质上来说,变量名是指向一片用于存储数据的内存空间. Shell变量是一种弱类型的变量,即声明变量时不需要指定其变量类型,也不需求遵循“先声明再使用”的规定,想用即可用. ...

  4. LeetCode--Unique Email Addresses & Hamming Distance (Easy)

    929. Unique Email Addresses (Easy)# Every email consists of a local name and a domain name, separate ...

  5. 【Hadoop离线基础总结】MapReduce自定义InputFormat和OutputFormat案例

    MapReduce自定义InputFormat和OutputFormat案例 自定义InputFormat 合并小文件 需求 无论hdfs还是mapreduce,存放小文件会占用元数据信息,白白浪费内 ...

  6. Ubuntu 18.04使用OpenSSL自签证书(证书支持多IP及多域名,谷歌浏览器无警告)

    前言 在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密,以保证网络传输过程中数据的机密性.HTTPS协议可以大致分为两个部分:其一是协商密钥,首先当Client向Web Serv ...

  7. equals(), "== ",hashcode() 详细解释

    Object 通用方法容易混淆的定义 先搞清楚各自的定义 "==" 用来判断 相等 equals() 用来判断 等价 hashcode() 用来返回散列值 "==&quo ...

  8. python实现登录密码重置简易操作

    需求: 1.用户输入密码正确登录 2.用户输入密码错误退出并调用函数继续输入 3.用户输入密码符合原先给定的一个值时,允许用户重置密码,并且可以用新密码登录 4.输入三次后禁止输入 虽然贴别的简单,但 ...

  9. poj1386有向图判断是否存在欧拉回路或者欧拉路

      有向图的图联通是指基图联通,也就是把有向图的边改成无向图然后看是否连通.判断联通可用dfs或者并查集. 题意就是给你n个由小写字母构成的字符串,问你能不能将这n个字符串连接起来,B能接在A后面的条 ...

  10. 8.8SQL Server数据类型介绍1

    image类型:存储二进制字节数组. (相当于C#中的byte[]字节类型) sql server常用的数据类型 1.image类型,用来存储byte[](字节). 2.字符串类型 char ncha ...