当前位置:网站首页>FPGA-近日工作总结
FPGA-近日工作总结
2022-08-09 12:35:00 【51CTO】
工作概述:
1)看《电子技术基础》和《fpga数字逻辑设计》学习数字电路的组合逻辑部分,卡诺图的化简和降维法。
2)复习加法器,全加器,译码器,编码器,数据选择器,数值比较器,巩固这些组合逻辑的工作原理以及用verilog在ISE的实现。
3)看《verilog基本语法》学习和巩固verilog的基本语法。
1.摘抄:
组合电路某一时刻的输出仅与该时刻的输入有关,而与电路前一时刻的状态无关。
组合电路的特点
1) 电路由逻辑门构成,不含记忆元件
2) 输出与输入间无反馈延迟回路
3) 输出与电路原来状态无关
当一逻辑门的两个输入端同时向着相反方向变化,而变化的时间有差异。这种现象称作竞争。由于竞争产生的输出干扰脉冲的现象称作为冒险。
-《电子技术基础》和数电ppt
1.理解:
数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。
组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。
时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。
逻辑电路的设计的基本思路:
1)分析实际问题的实际功能
2)根据实际需要写出真值表
3)根据真值表来写出逻辑表达式
4)根据卡诺图来化简表达式来避免产生竞争冒险
2.摘抄:
如何理解这里说的冒险与竞争?
首先来说产生冒险与竞争的原因:当我们在数字逻辑电路中,我们认为电路的输入输出都是平稳的逻辑电平,但是信号在实际的传递中,经过逻辑电路需要一定的时间。或者因为门的延时的差异,将会出现和稳态情况不同的状态,产生输出错误,这就叫电路中的竞争冒险。
--《电子技术基础》
2.理解:
冒险不一定会对实际的输出逻辑有影响,但是为了避免冒险竞争的情况出对死实际电路中的输入输出产生影响,应该尽量避免这样的情况出现。在逻辑设计时候,在PC端进行仿真模拟时体现不出来他的作用,但是在实际工作操作中,这个是不可忽略的。
那么就总结一下消除竞争冒险的方法:
1)发现并消去互补相乘项。
2)增加乘积项避免互补项相加。
3)输出端并联电容器。
3.摘抄:
正因为组合逻辑和时序逻辑的逻辑上的功能特点所以组合逻辑电路使用阻塞赋值,时序逻辑电路使用非阻塞赋值。
什么是阻塞赋值和非阻塞赋值
阻塞赋值操作符用等号(即 = )表示。“阻塞”是指在进程语句(initial和always)中,当前的赋值语句阻断了其后的语句,也就是说后面的语句必须等到当前的赋值语句执行完毕才能执行。
非阻塞赋值操作符用小于等于号 (即 <= )表示。“非阻塞”是指在进程语句(initial和always)中,当前的赋值语句不会阻断其后的语句,可以简单理解为几条非阻塞赋值语句可以同时执行。
非阻塞赋值操作过程:
1)在赋值开始时刻,计算非阻塞赋值右边表达式。
2)在赋值结束时刻,更新非阻塞赋值左边表达式。
-《verilog基本语法》
3.理解:
EG:如果a=3 b=8;a=b,c=a;
- 如果阻塞赋值第一条执行的时候a的值立刻变为了a=8;执行第二条的时候c=8;
- 如果是非阻塞赋值的方式根据非阻塞赋值的操作过程:计算开始计算出右边的值分别为8 3,第二步刷新左边表达式的值则a=8 c=3;
4.摘抄:
Memory型变量
尽管memory型数据和reg型数据的定义格式很相似,但是要注意不同之处。Memory描绘的是深度,reg描绘的是宽度。
Reg [ n-1:0 ] rega; //一个n位寄存器
Reg mema [ n-1 ] //一个由n个一位寄存器组成的存储器组
一个n位的寄存器可以在一条赋值语句里进行赋值。而一个完整的存储器不行
Rega = 0;//合法的赋值语句
Mema=0;//非法的赋值语句
Mema[3]=0;//合法,给memory中的第三个单元赋值为0
边栏推荐
- 非科班AI小哥火了:他没有ML学位,却拿到DeepMind的offer
- MySQL5.6到8.0的账号迁移
- WebView注入Js代码实现大图自适应屏幕点击图片预览详情
- Nature:猪死亡1小时后,器官再次运转
- ABP中的数据过滤器 (转载非原创)
- Scala 高阶(七):集合内容汇总(上篇)
- Use RecyclerView to implement three-level collapsed list
- Flutter Getting Started and Advanced Tour (4) Text Input Widget TextField
- win10编译x264库(也有生成好的lib文件)
- 世界第4疯狂的科学家,在103岁生日那天去世了
猜你喜欢
保存Simulink仿真模型为图片或者PDF的方法
系统提供的堆 VS 手动改写堆
ansible-cmdb friendly display ansible collects host information
Win10 compiles the x264 library (there are also generated lib files)
Customize VIEW to realize in-app message reminder to rotate up and down
How to save Simulink simulation model as image or PDF
Flutter入门进阶之旅(六)Layout Widget
How to upload local file trial version in binary mode in ABAP report
Nature:猪死亡1小时后,器官再次运转
Flutter入门进阶之旅(三)Text Widgets
随机推荐
一维数组&指针
26、管道参数替换命令xargs
Flutter入门进阶之旅(七)GestureDetector
2022年非一线IT行业就业前景?
Flutter入门进阶之旅(三)Text Widgets
JVM之配置介绍(一)
Nature:猪死亡1小时后,器官再次运转
Flutter入门进阶之旅(六)Layout Widget
十分钟教会你如何使用VitePress搭建及部署个人博客站点
Flutter introduction advanced trip (5) Image Widget
系统提供的堆 VS 手动改写堆
告别手摇织布机的AI时代
30行代码实现微信朋友圈自动点赞
面试题精选:神奇的斐波那契数列
Batch大小不一定是2的n次幂!ML资深学者最新结论
保存Simulink仿真模型为图片或者PDF的方法
Redis源码剖析之数据过期(expire)
Flutter Getting Started and Advanced Tour (8) Button Widget
你没见过的《老友记》镜头,AI给补出来了|ECCV 2022
已解决IndentationError: unindent does not match any oute r indentation Level