ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

adder与latch

2021-11-24 20:34:06  阅读:184  来源: 互联网

标签:s3 s2 s1 s0 s7 adder latch def


# -*- coding: utf-8 -*-
class maiAdder8:
    def __init__(m):
        m.a7 = m.a6 = m.a5 = m.a4 = m.a3 = m.a2 = m.a1 = m.a0 = 0
        m.b7 = m.b6 = m.b5 = m.b4 = m.b3 = m.b2 = m.b1 = m.b0 = 0
        m.s7 = m.s6 = m.s5 = m.s4 = m.s3 = m.s2 = m.s1 = m.s0 = 0
    def zheng(m): # 整
        def add1(a, b):
            nonlocal carry
            s = a + b + carry
            carry = 1 if s >= 2 else 0
            return s & 1
        carry = 0
        a = (m.a7, m.a6, m.a5, m.a4, m.a3, m.a2, m.a1, m.a0)
        b_ = (m.b0, m.b1, m.b2, m.b3, m.b4, m.b5, m.b6, m.b7)
        (m.s7, m.s6, m.s5, m.s4, m.s3, m.s2, m.s1, m.s0) = tuple(reversed(tuple(map(add1, a[::-1], b_))))

a = maiAdder8()
(a.a7, a.a6, a.a5, a.a4, a.a3, a.a2, a.a1, a.a0) = (0, 0, 0, 0, 0, 0, 1, 1)
(a.b7, a.b6, a.b5, a.b4, a.b3, a.b2, a.b1, a.b0) = (0, 0, 0, 0, 0, 1, 1, 1)
a.zheng()
print((a.s7, a.s6, a.s5, a.s4, a.s3, a.s2, a.s1, a.s0))

class maiDLatch8:
    def __init__(m):
        m.s7 = m.s6 = m.s5 = m.s4 = m.s3 = m.s2 = m.s1 = m.s0 = 0
        m.r7 = m.r6 = m.r5 = m.r4 = m.r3 = m.r2 = m.r1 = m.r0 = 0
        m.d7 = m.d6 = m.d5 = m.d4 = m.d3 = m.d2 = m.d1 = m.d0 = 0
        m.q7 = m.q6 = m.q5 = m.q4 = m.q3 = m.q2 = m.q1 = m.q0 = 0
    def zheng(m):
        def logic(s, r, d):
            if s == 0 and r == 1:
                return 0
            elif s == 1 and r == 0:
                return 1
            else:
                return d
        s = (m.s0, m.s1, m.s2, m.s3, m.s4, m.s5, m.s6, m.s7)
        r = (m.r0, m.r1, m.r2, m.r3, m.r4, m.r5, m.r6, m.r7)
        d = (m.d0, m.d1, m.d2, m.d3, m.d4, m.d5, m.d6, m.d7)
        (m.q0, m.q1, m.q2, m.q3, m.q4, m.q5, m.q6, m.q7) = tuple(map(logic, s, r, d))
    def zheng2(m):
        (m.d0, m.d1, m.d2, m.d3, m.d4, m.d5, m.d6, m.d7) = (m.q0, m.q1, m.q2, m.q3, m.q4, m.q5, m.q6, m.q7)
# 1. 不知道对不对; 2. 不会写Q = S R D的逻辑表达式,好像得列真值表、最大项最小项啥的。
# 没有整明白,好像也整不动了。放几句狠话:-)算了,请自行添加哈哈或呵呵
# 组合电路像函数,时序电路像对象。上面的代码都是对象,都有成员变量,但pin和内部的“灵”/“小人”:-)/状态是不一样的。
# 闭包不是JavaScript这种解释型语言的专利。Pascal这种编译型、函数也可以嵌套的语言,也有闭包的问题。或者说函数有个生存环境: 代码加数据才完整。
# x,which one? 自己还是上层、上上层乃至全局的?stack还是heap里?

 

标签:s3,s2,s1,s0,s7,adder,latch,def
来源: https://www.cnblogs.com/funwithwords/p/15599925.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有