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解决方案.它 ...
随机推荐
- Window 7 开 WIFI做热点
cmd下两个命令即可: C:\Users\lyx>netsh wlan set hostednetwork mode=allow ssid=ACE-PC key=12345678承载网络模式已设 ...
- MySQL中创建用户分配权限
测试环境:CentOS6.8 和 MySQL5.5.4 一 需求 在项目开发的过程中可能需要开放自己的数据库给别人,但是出于安全的考虑,不能同时开放自己服务器里的其他数据库.那么可以新建一个用户,赋予 ...
- Android开发过程中遇到的问题集合(—)
1. Re-installation failed due to different application signatures. 将原来的软件包删除掉,然后又一次安装一次就好了.在命令行上执行:a ...
- centos7 安装docker后启动报错
启动docker $ sudo systemctl start docker 报错. 查看状态: $ systemctl status docker.service -l 加 -l 有的行信息很长 ...
- LBS 附近的人
1 http://www.infoq.com/cn/articles/depth-study-of-Symfony2 2 http://lbsyun.baidu.com/
- Quartz.Net - Lesson 1: 使用Quartz
Lesson 1: 使用Quartz 本系列文章是官方3.x文档的翻译,原文地址:https://www.quartz-scheduler.net/documentation/quartz-3.x/t ...
- Google Code Jam 2014 Round 1 A:Problem A Charging Chaos
Problem Shota the farmer has a problem. He has just moved into his newly built farmhouse, but it tur ...
- Call to static DateFormat
Bug: Call to method of static java.text.DateFormatPattern id: STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INS ...
- 并发检测主机ip存活脚本
#!/bin/bash ################### # Check Active Host####### ################### function CheckInput() ...
- 【Atheros】pktgen的ipv6地址处理函数参考及ipv6基本知识
pktgen有很多函数可以作为很好的网络相关的工具函数,这里列出ipv6中1:0:0:0:0:0:0:1和1::1这两种地址形式相互转化的工具函数. 第一个函数,用于把一个1:0:0:0:0:0:0: ...