06-半加器

1.半加器

  • 加法器是数字电路中经常用到的一种基本器件,主要用于两个数或者是多个数相加,加法器又分为半加器(half adder)和全加器(full adder)
  • 半加器电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。是实现两个一位二进制数的加法运算电路。
  • 全加器是在半加器的基础上的升级版,除了加数和被加数加和外,还要加上上一级传入进来的进位信号。

2.FPGA设计

  • KEY1,KEY2表示两个加数
  • LED6表示和的输出,LED7表示进位的输出

2.1 框图和波形图

  • 画波形图的时候,可以借助真值表

2.2 RTL

module half_adder
(
  input wire in_1,
  input wire in_2,
  output wire sum,
  output wire c_in
);  
  assign {c_in,sum}  = in_1 + in_2;
 
endmodule
  • 创建quartus项目,编译verilog代码

2.3 Testbench

`timescale 1ns/1ns
module tb_half_adder();
  reg in_1;
  reg in_2;
  wire sum;
  wire c_in;
  
  initial begin
    in_1 <= 1'b0;
    in_2 <= 1'b0;
  end
    
  initial begin
    $timeformat(-9,0,"ns",6);
    $monitor("@time:in_1 = %b,in_2=%b,sum=%b,count=%b",$time,in_1,in_2,sum,count);
  end
  
  always #10 in_1 = {$random} % 2;
  always #10 in_2 = {$random} % 2;
   
endmodule
  • 在quartus项目中添加文件,设置仿真,进行仿真

2.4 上板验证



本文转载于网络 如有侵权请联系删除

相关文章

  • tomcat7和tomcat8的websocket区别

    大家好,又见面了,我是你们的朋友全栈君。tomcat8真正支持jsr-356(包含对websocket的支持),tomcat7部分版本的websocket实现不兼容jsr-356。websocket实现tomcat7.x与tomcat8.x有很大差异。在tomcat7中使用websocket需要定义一个servlet,然后继承WebSocketServlet,在tomcat8中使用websocke。出自:http://blog.csdn.net/liuxiao723846/article/details/46930173一、tomcat7定义servlet的方式简单举例。1、新建一个环境为tomcat7的web工程,需要的包有catalina.jar,tomcat-coyote.jar。2、修改web.xml。<?xmlversion="1.0"encoding="UTF-8"?> <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

  • Redis图形管理 redis-browser(上)

    一.介绍redis-browser是redis的web端图形化管理工具。利用它可以查看和管理redis的数据,界面简洁,能和ralis应用结合在一起。github地址特征列出所有键为树查看所有redis类型的内容列表分页漂亮的打印JSON值搜索键可以作为引擎安装到Rails应用程序可以连接到多个数据库二.部署当前环境:centos7.3一台 软件版本:redis-browser 部署目录:/usr/local/redis-browser 日志目录:/tmp/redis-brower.log 启动端口:1234 配置文件:/usr/local/redis-browser/config.yml1.安装gem yum-yinstallgem2.安装nodejs,如果提示没有这个包单独装 yum-yinstallnodejs3.更新gem gemupdate--system4.更换源 gemsources--addhttps://gems.ruby-china.org/--removehttps://rubygems.org/5.安装redis-browser,如果提示版本小于2.4.1,看文

  • Java读取配置文件(Properties类)

    参考链接:Java文件类摘要:在开发项目的过程中,有些参数或者数据等是需要经常改动的。比如:数据库的配置,ftp路径,落地文件的路径等等。对于这些经常需要改动的数据内容,我们就需要把它们写在一个配置文件当中,然后让程序来读取这个配置文件。这样的话每次修改不需要动代码,安全,方便,快捷!以下内容是在Java中读取配置文件的一些方法的介绍、使用。 Properties类 作用 Properties类主要用于读取Java的配置文件,可以读取后缀是.properties和.cfg的配置文件。 文件内容的格式是:键=值,比如:name=张三 文件中内容的注释可以用:#,比如:#我是被注释掉的内容 结构:  Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 常用方法 1.load(InputStreaminStream):从输入流中读取属性列表(键和元素对)。 2.getProperty(Stringkey):根据这个键在属性列表中查询对应的值。 实例 配置文件test1.properties:(以ISO-885

  • 《21世纪资本论》读书摘录

    这本书是我在得到「每天听本书」栏目中偶然遇到的,后又在微信读书上翻阅了一遍。书很长,全书通过大量历史数据分析,得出了一个结论:r>g,是推动贫富差距的核心力量。 这里的r指的是资本收益率,包括利润、股利、利息、租金和其他资本收入,以总值的百分比表示;g代表经济增长率,也就是常说的GDP增长率。举个例子,美国股市的长期回报率在6%-7%左右,而GDP常年在1%-2%左右。两者之间的差值,是推动贫富差距最核心的力量。我对这个观点深信不疑。我在社群里,看到@Fengy分享的文章,说去年我国GDP增长率约为2.1%。对比一下,去年沪深300指数的收益率为27.2%,这意味什么?意味着r>>g,意味着我们的贫富差距在不断扩大,想想就感觉是一件很后怕的事情。资本市场越是繁荣,贫富差距也就越大。你知道美国历史上贫富差距最大的时候是什么时候吗?是1928年和2007年,也就是两次金融危机前夕。从1980年开始,美国股市迎来了辉煌的20年长牛市,社会贫富差距也开始逐渐扩大,在2007年金融危机前夕达到最大。作者最后写道:“不等式r>g意味着过去的财富积累比产出和工资增长得要快。这

  • CyclicBarrier 源码解析

    和CountDownLatch一样,CyclicBarrier也是猜不出其作用,看来和栅栏有关系,哈哈哈,那么这个类到底是干什么的?还是一样的操作,百度举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是CyclicBarrier 作者:一团捞面链接:https://www.jianshu.com/p/333fd8faa56e来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。那么既然是工具,那么我们还是做个demo跑一下,看看效果。这里还是用使用上述作者的demo。实名感谢publicclassCyclicBarries{ staticclassTaskThreadextendsThread{ CyclicBarrierbarrier; publicTaskThread(CyclicBarrierbarrier){ this.barrier=barrier; } @Override publicvoidrun(){ try

  • 你看到的地图是这个世界的真实面目吗?

    在数据可视化中,除了常见的折线图条形图,还有一种很常见的图示,那就是地图。今天呢,我们就说说地图中的那些门道。生活经验告诉我们,一个皮球再怎么压它,他也不会变成一张平坦无皱纹的纸。世界地图也一样,如果你想把球表面画成一张平坦的画时,不可避免得会发生变形。好多营销号都写过地图投影的文章,名字起的也很劲爆:他们为了传播效果故意模糊了一个概念:我国的生产的世界地图在面积上变形很大。实际上,国内的地图绘制,都是用的正切差分纬线多圆锥投影(假装懂了),这个投影算法是我国自研的。优点就是将中国配置于图幅中部,世界大陆轮廓形状表达较好,中国的形状比较正确。营销号大书特书的,一般指墨卡托投影地图,优点是经纬线横平竖直,缺点是南北极附近区域的面积被严重放大。写文章的时候我查了一下,国内的百度地图高德地图和腾讯地图,都是用的这种投影方法。这种地图是用墨卡托投影法绘制的。这个算法很经典,具体的数学推倒我们不谈,一图胜千言,下面这张图可以很形象的解释这个算法的工作原理:我们可以想像地球中心有一盏灯,灯光把地球投影到同半径的圆柱上,再把圆柱展开,就得到了一副地图。当然,变形也是很明显的。我们可以从下图看出,格陵

  • easyeda,一个简单实用的探索性数据分析工具

    在算法工程师的日常工作中,探索性数据分析(ExploratoryDataAnalysis)是一种常见的任务。通过分析数据的缺失情况,分布情况,以及和标签的相关性等,数据EDA可以帮助算法工程师评估数据的质量,了解数据的特点,为特征工程提供方向指引,并对后续建立的模型能够达到的效果上限形成初步预期。 我将我常用来进行数据EDA的这套脚本封装成了一个库easyeda并在PyPI和github开源了出来,供大家参考使用。这是我个人发布的第一个开源Python包,感觉还是棒棒哒,希望可以给大家带来一些帮助。 一,easyeda简介easyeda是一个简单但是实用的探索性数据分析工具。easyeda可以对常见的二分类问题,多分类问题,以及回归问题进行探索性数据分析。easyeda支持所有常见的数值型,字符串型数据,bool型数据属性的探索性数据分析。easyeda支持常见的缺失值分析,数据分布分析,数据和label的相关性分析,训练集和测试集数据的同分布性分析。二,使用范例首先,可以使用pip安装easyeda。pipinstalleasyeda复制然后可以通过如下示范代码进行调用。fromea

  • 支付宝即时到帐接口的python实现,示例采用django框架

    http://blog.csdn.net/hornbills/article/details/40338949因工作需要研究了支付宝即时到帐接口,并成功应用到网站上,把过程拿出来分享。即时到帐只是支付宝众多商家服务中的一个,表示客户付款,客户用支付宝付款,支付宝收到款项后,马上通知你,并且此笔款项与交易脱离关系,商家可以马上使用。即时到帐只对企业客户服务,注册成功企业账号以后,申请签约即时到帐产品,大约3-5个工作日后,签约成功,可以马上进入集成产品阶段。这个是支付宝提供的接口,有asp,c#,java,php四种语言的,每种语言提供GBK和UTF-8两种方案。另带一份支付宝的文档,这份文档我感觉本来简单的事情越说越麻烦了。http://download.alipay.com/public/api/base/alipaydirect.zip 网上搜了一下,发现python接口有几个现成的方案。https://github.com/fengli/alipay_python这两个是一个,代码我还没看,写文档的时候发现的。 https://github.com/lxneng/alipayht

  • 关于redux-saga中take使用方法

    带来一个自己研究好久的API使用方法.redux-saga中effect中take这个API使用方式,用的多的是call,put,select,但take这个平常还真没什么机会用上,也不清楚在哪里使用才好,不管怎么样,既然是redux-saga写出来的,肯定是有他的用法的,不管3721,先学会使用方法再说.先看看介绍:take take的表现同takeEvery一样,都是监听某个action,但与takeEvery不同的是,他不是每次action触发的时候都相应,而只是在执行顺序执行到take语句时才会相应action。当在genetator中使用take语句等待action时,generator被阻塞,等待action被分发,然后继续往下执行。takeEvery只是监听每个action,然后执行处理函数。对于何时相应action和如何相应action,takeEvery并没有控制权。而take则不一样,我们可以在generator函数中决定何时相应一个action,以及一个action被触发后做什么操作。最大区别:take只有在执行流达到时才会响应对应的action,而takeEve

  • 读图时代来临,短视频如何才能成为下一个风口?

    前有一条、二更陆续获得融资,后有一下科技在资本趋于冷静的市场环境下仍然获得资本青睐,短视频成为资本寒冬下的“一枝独秀”,很多人将短视频看做是互联网的下一个风口。然而,罗辑思维撤出papi酱投资的消息又让我们对短视频的未来充满了顾虑,很多人不仅会问,既然短视频是下一个风口,那么为什么会被资本遗弃?既然短视频被资本青睐,那么为什么早先进入的资本会匆忙退出呢? 所有的疑问都有一个答案,所有的答案背后都有这个行业的发展困境为其“撑腰”。尽管一条、二更、papi酱们获得了资本的青睐,但是依然不能掩饰这个行业背后逐渐突出的问题和矛盾,短视频的发展依然面临诸多困境。资本加注,短视频依然难免陷入困境以资本运作为主要特征的互联网+时代,流量的不断聚合与重构让人们能够轻而易举地看到哪个行业具备发展潜力和盈利空间,然而资本运作再给它所“垂青”的行业带来快速发展的同时,同样会给这些行业带来负面影响。资本加注并未给短视频带来根本性的改变。不可否认,资本巨头加注短视频后给其带来了新一轮的发展。然而,资本的强力推动恰恰让短视频在创新本身方面缺少了动力,而单单借助资本的力量获得了短期的快速发展。尽管这些发展被外界所瞩

  • Mysql性能优化

     1.优化SQL  1)通过showstatus了解各种sql的执行频率        showstatuslike'Com_%'     了解Com_select,Com_insert的执行次数   2) 通过Explain分析低效的sql语句   3)  建立合适的索引   4)  通过showstatuslike'Handler_%'查看索引的使用情况         handler_read_key:根据索引读取行的请求数。如果该值很大,说明你的查询和表都建立了很好的索引,表明索引效率的很高       Handler_read_rnd_key:根据固定位置读取行的请求数。如果你执行很多需要排序的查询,该值会很高。你可能有很多需要完整表扫描的查询,或者你使用了不正确的索引用来多表查询。     Handlerreadrndnext:从数据文件中读取行的请求数。如果你在扫描很多表,该值会很大。通常情况下这意味着你的表没有做好索引,或者你的查询语句没有使用好索引字段。  5)  定期分析表和检查表         analyzetablete

  • 腾讯云容器安全服务删除运行时异常进程策略api接口

    1.接口描述接口请求域名:tcss.tencentcloudapi.com。 删除运行异常进程策略 默认接口请求频率限制:20次/秒。 APIExplorer提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成SDK调用示例。 2.输入参数以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。 参数名称 必选 类型 描述 Action 是 String 公共参数,本接口取值:DeleteAbnormalProcessRules。 Version 是 String 公共参数,本接口取值:2020-11-01。 Region 否 String 公共参数,本接口不需要传递此参数。 RuleIdSet.N 是 ArrayofString 策略的ids 3.输出参数 参数名称 类型 描述 RequestId String 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的RequestId。 4.示例示例1删除运行异常进程策略输入示例ht

  • 时态理解

      基础版 杂交版 时阈 现在 过去 将来 过去将来 几何时阈 一般 完成 进行 完成进行  前言:   首先本系列文章,是学习了有道逻辑英语,钟平老师的课,结合自己的理解,的一些感悟,在此分享,欢迎大家去听钟平老师(本身也是一名程序猿)的课! 正文:   时域的四种时态和几何时域的四种时态,两两结合,就形成了英语的16种时态。 a=['现在','过去','将来','过去将来'] b=['一般时','完成时','进行时','完成进行时'] l=[] foriina: forjinb: print(i+j) //------------- 现在一般时 现在完成时 现在进行时 现在完成进行时 过去一般时 过去完成时 过去进行时 过去完成进行时 将来一般时 将来完成时 将来进行时 将来完成进行时 过去将来一般时 过去将来完成时 过去将来进行时 过去将来完成进行时复制 这里说下读法的问题:其实人们常常说:一般现在时, 然后又说过去完成时。这其实容易混乱。我们应该始终把几何时域放在后面说。 如现在一般时,过去一般时,将来一般时,等。 &nbs

  • CCPC-Wannafly Winter Camp Day2 (Div2, onsite)

    F: /* 考虑每次选key,key=1...n的概率一样 所以下一层怎么分割这n个数的概率都相等 因此答案只和nk有关系 f[n][k]长度为n的序列k是层数逆序对期望个数*n! 然后分割之后的子部分离散化之后就变成子问题 所以方程f[i][j]=sum(f[k-1][j-1]/(k-1)!*(j-1)!+f[i-k][j-1]/(i-k)!*(j-1)!) 然后我们把(j-1)!提出来就可用前缀和优化 n*n */ #include<cstdio> #include<cstring> #include<iostream> #definemaxn6010 #definemod998244353 #definelllonglong usingnamespacestd; llT,n,k,f[maxn][maxn],cas,J[maxn],inv[maxn],sum[maxn]; llqc(lla,llb){ llres=1; while(b){ if(b&1)res=res*a%mod; a=a*a%mod;b>>=1; } re

  • linux 磁盘命令

    用到共享软件为:samba   配置文件为 /etc/samba/smb.conf   sudofdisk-l 查看磁盘   sudodf-lh 查看磁盘挂载情况   sudomount/dev/sdb/mnt/diskb 挂载sdb到diskb文件   mkfs.ext4/dev/sdb 格式化成ext4   sudovim/etc/fstab 自动挂载磁盘设置   vim里 :r!blkid 插入当前所有磁盘的UUID  

  • java之面向对象

    感谢以下博文的作者以及菜鸟编程: https://zhuanlan.zhihu.com/p/93123305、 https://www.runoob.com/   一、面向对象的基本概念:   面向对象简称OO(ObjectOriented),20世纪80年代以后,有了面向对象分析(OOA)、面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。   对编程语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。   Java是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点: 对象具有属性和行为。 对象具有变化的状态。 对象具有唯一性。 对象都是某个类别的实例。 一切皆为对象,真实世界中的所有事物都可以视为对象。 如何建立面向对象的思维呢?

  • 【Unity】第13章 光照贴图和光影效果

    分类:Unity、C#、VS2015 创建日期:2016-05-19 一、简介 在Unity5中,Lighting是—种增强场景光照和阴影效果的技术,它可以通过较少的性能消耗使静态场景看上去更真实、丰富,以及更具有立体感,又可以对动态对象进行处理。 早期版本的Unity4只能对“静态”对象和“动态”对象分别进行处理,称为Lightmapping(光照贴图),但是,Lightmapping不能被用来实时地处理“动态”光照;而在Unity5中,与Lightmapping相关的功能被重新整合在Unity引擎中并通过【Window】->【Lighting】打开设置窗口,在Lighting窗口中,开发人员只需要简单的操作,就可以制作出平滑、真实且不生硬的光影效果。 LightProbes是一种在运行时将“动态对象”融入“静态场景”的技术,利用它可解决实时处理“动态”光照的问题。其基本原理是:先在场景空间中放置一些采样点来收集其周围的明暗信息,然后在运行时对动态对象邻近的采样点进行插值运算,并将插值结果作用于动态对象上。由于插值运算并不会耗费太多的性能,因此这种方式既能实现动态游戏对象和静态

  • Redis

    来吧 说一说Redis的使用场景和目的 Redis的缓存雪崩和缓存穿透 Redis的数据类型 Redis的持久化方式 Redis实现分布式事务锁 ... 什么时候开始都不晚——沃尔舅·硕德

  • python3(二十六)slots

    """""" __author__='shaozhiqi' #python是动态语言,所以定义类后,我们可以动态的给类绑定属性和方法,上一节都都与接触 classStudent(object): pass s=Student() s.name='shaozhiqi' print(s.name)#shaozhiqi #定义一个方法,绑定到s对象上,不会影响别的实例 defset_age(self,age): self.age=age fromtypesimportMethodType s.set_age=MethodType(set_age,s) s.set_age(25) print(s.age)#25 #给类绑定方法 s1=Student() #s1.set_age(26)#error #print(s1.age)#error Student.set_age=set_age s2=Student() s2.set_age(30) print(s2.age)#30 #-----------slots--------------------------------

  • 2022iOS面试题之多线程

    GCD特点:1、GCD是基于c语言的用于多核的并行运算2、GCD会自动利用更多的CPU内核(比如双核、四核)3、GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)4、程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码队列:串行队列:会顺序执行      并行队列:可以并行执行       全局队列:系统创建,全局并发队列      主队列:主队列与主线程是绑定的只要是同步的方式提交任务,无论是串行还是并发,就会在同一线程去执行。同步:只能在当前线程中执行任务,不具备开启新线程的能力异步:可以在新线程中执行任务,具备开启新线程的能力———————————————————————————————死锁 原因:主队列里sync同步执行,就是会先阻塞当前线程,直到block当中的代码执行完毕,但是block在viewdidload里面,block需要等待viewdidload执行完

  • HTAP的关键技术有哪些?| StoneDB学术分享会第③期

    在最新一届国际数据库顶级会议ACMSIGMOD2022上,来自清华大学的李国良和张超两位老师发表了一篇论文:《HTAPDatabase:WhatisNewandWhatisNext》,并做了《HTAPDatabase:ATutorial》的专项报告。这几期学术分享会的文章,StoneDB将系统地梳理一下两位老师的报告,带读者了解HTAP的发展现状和未来趋势。 在第一期分享中:StoneDB:深度干货!一篇Paper带您读懂HTAP|StoneDB学术分享会第①期 我们已经把HTAP产生的背景和现有的HTAP数据库及其技术栈做了一个简单的介绍,这一期,我们将着重讲一讲报告中对HTAP关键技术的解读。 在正式开始前,先给上期简单收个尾,报告中提到HTAP数据库除了以下四种: PrimaryRowStore+InMemoryColumnStore DistributedRowStore+ColumnStoreReplica DiskRowStore+DistributedColumnStore PrimaryColumnStore+DeltaRowStore 还补充了3种,感兴趣的读

相关推荐

推荐阅读