VHDL学习笔记——数字系统设计
数字系统是指有若干数字电路和逻辑不见构成的能够处理或传输数字信息的设备。数字系统可分为三部分:输入输出接口、数据处理器和控制器。
【传统的系统硬件设计】方法是(1)采用自底向上的设计方法(2)采用通用的逻辑元器件(3)在系统硬件设计的后期进行仿真和调试(4)主要设计文件是电原理图
现在流行的,也是我重点学习的设计方法是【层次化结构设计】。这种设计方法,比较通俗地讲就是:将各功能的实现模块化,每个模块对外提供接口,各模块之间通过接口进行数据交流,而不必关心对方模块内部的算法实现。
下面用比较专业的话来讲讲层次化结构设的特点。
系统层次可从两个不同的角度来表示:系统结构层次与系统性能层次。前者代表了系统由模块组成的形式,后者指的是系统输出对输入的响应。
对于一个数字系统来说,一般可以分为六个层次:系统级;芯片级;寄存器级;门级;电路级;硅片级。这六级自上而下,体现了大部分常见系统设计的特点,由与人交互的应用层逐层向下,直到最基本的物理实现。各级都可在系统性能与系统结构中有对应的描述。
六级系统实现分层中,系统级的性能描述主要是指运算速度、传输带宽等性能指标,一般通过文字表示;芯片级的性能描述则是通过算法表示的,也就是使用VHDL语言描述在芯片上实现的算法;寄存器级:数据流描述;门级:布尔方程。
常见的系统结构可以分解为树形结构各节点之间的链接线可看做是模块结构描述,而各叶子之间的联系可看做是性能描述。对于这样的结构,在进行编程实现的时候,要按照一定的顺序有条理地进行,而不能随意性很大的,看到哪里就写哪里,否则会使程序设计不具有连续性,编程效率大大降低。常见的设计顺序有“自顶向下设计”和“自底向上设计”二者各有特点,各有优劣。
自顶向下设计的出发点是树根……
自底向上设计……
未完待续
VHDL学习笔记——数字系统设计的更多相关文章
- kururu的VHDL学习笔记
最近开始做课程设计,VHDL设计一个中央空调的控制程序.所以开始学习VHDL,在这篇文章里面记录一些自己的笔记,期望对于同样的初学者有些借鉴意义~ 编写VHDL所需的工具: 那自然很是quartus啦 ...
- [Python学习笔记] 数字类型及操作
数字类型 整数类型 十进制:1110,-123 二进制:以0B或0b开头 0b110,-0B101 八进制:以0O或0o开头 0o123,-0O567 十六进制:以0X或0x开头 0x555,-0X8 ...
- Python学习笔记-数字类型
如何定义一个数字类型 定义var1为一个INT类型,所以在5/3 输出的是 1. var1 = 5 var1=var1/3 print var1 定义var1为一个INT类型,因为var1是INT类型 ...
- Python学习笔记-数字,列表,元祖,切片,循环
数字 1,加减乘除:+,-,*,/ 2,平方:** 3,立方:**3 4,字符串转换:str(数字) 5,浮点数:带小数点 0.2 Python编程建议 import this >>&g ...
- python3学习笔记——数字、字符串、列表、字典、元组
什么是python解释器? python代码在解释器中运行.解释器是代码与计算机硬件之间的软件逻辑层. python的执行过程 ...
- Mooc中国大学Python学习笔记--数字类型及操作
整数类型 只需知道整数无限制,pow(),4进制表示形式 与数学中整数的概念一致 --可正可负,没有取值范限制 --pow(x,y)函数:计算x^y,想算多大算多大 -十进制:10 -二进制,以0b或 ...
- js学习笔记-数字转罗马数字
function convert(num) { var ans = ""; var k = Math.floor(num / 1000); var h = ...
- Verilog笔记——Verilog数字系统设计(第二版)夏宇闻
本片记录Verilog学习笔记,主要是和以往用的C语言的不同之处,以例子.代码的形式记录.学习以<Verilog数字系统设计>(第二版)为参考资料,援助作者夏宇闻. 1. C语言和Veri ...
- 【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
Altera SOPC嵌入式系统设计教程 第1章 概述 SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出来的一种灵活.高效的SOC解决方案.它 ...
随机推荐
- 杂(三)-The type java.lang.Object cannot be resolved It is indirectly referenced ...
The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files ...
- 基于bootstrsp的jquery富文本编辑器的手冊说明
重点:当在页面插入文本编辑器后.无法用js/jq的方式去将某些值写入到文本编辑器.如:$("textarea").val("111");$("text ...
- MongoDB查询条件常用设置
原文地址:http://blog.csdn.net/mcpang/article/details/8731065 Java操作mongodb进行查询,常用筛选条件的设置如下: 条件列表: BasicD ...
- MongoDB基本命令使用
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示 ...
- SVN版本控制图标未显示或显示异常
TortoiseSVN下载的文件和文件夹如果缺失了那些花花绿绿的状态小图标,很容易逼死某些强迫症患者,更何况这些小图标用处多多 接下来我会逐步展示从常规到非常规的一系列解决方案(不包括重装重启这一类) ...
- es快照和备份
注册前要注意配置文件加上 path.repo: ["/data/es_backup"] 然后重启es 不然会报错doesn't match any of the locations ...
- C/C++ 内存管理总结
C内存管理 存储时: 执行程序在存储时(没有调入到内存)分为代码区(text).数据区(data)和未初始化数据区(bss)3个部分. 1 代码区(text segment) 存放CPU执行的机器指令 ...
- Linux的IO栈
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- 怎样在OpenStack上安装Ubuntu系统
转载请注明出处,否则将追究法律责任http://blog.csdn.net/xingjiarong/article/details/47011893 OpenStack是一个Iaas即基础即服务的云架 ...