二、简答题 1采用VHDL语言设计数字系统具有哪些特点? 2举例说明FPGA是如何通过查找表实习其逻辑功能的?

如题所述

1.采用VHDL语言设计系统具有哪些特点
VHDL系统设计的基本点:
(1)与其他硬件描述语言相比,VHDL具有以下特点:
(2)功能强大、设计灵活。
(3)强大的系统硬件描述能力。
(4)易于共享和复用。
2.举例说明FPGA是如何通过查找表实现其逻辑功能的?
参考答案:在计算机科学中,查找表是用简单的查询操作替换运行时计算的数组或者 associative array 这样的数据结构。由于从内存中提取数值经常要比复杂的计算速度快很多,所以这样得到的速度提升是很显著的。
一个经典的例子就是三角表。每次计算所需的正弦值在一些应用中可能会慢得无法忍受,为了避免这种情况,应用程序可以在刚开始的一段时间计算一定数量的角度的正弦值,譬如计算每个整数角度的正弦值,在后面的程序需要正弦值的时候,使用查找表从内存中提取临近角度的正弦值而不是使用数学公式进行计算。
在计算机出现之前,人们使用类似的表格来加快手工计算的速度。非常流行的表格有三角、对数、统计 density 函数。另外一种用来加快手工计算的工具是滑动计算尺。
一些折衷的方法是同时使用查找表和插值这样需要少许计算量的方法,这种方法对于两个预计算的值之间的部分能够提供更高的精度,这样稍微地增加了计算量但是大幅度地提高了应用程序所需的精度。根据预先计算的数值,这种方法在保持同样精度的前提下也减小了查找表的尺寸/
在图像处理中,查找表经常称为LUT,它们将索引号与输出值建立联系。颜色表作为一种普通的 LUT 是用来确定特定图像所要显示的颜色和强度。
另外需要注意的一个问题是,尽管查找表经常效率很高,但是如果所替换的计算相当简单的话就会得不偿失,这不仅仅因为从内存中提取结果需要更多的时间,而且因为它增大了所需的内存并且破坏了高速缓存。如果查找表太大,那么几乎每次访问查找表都回倒置 cache miss,这在处理器速度超过内存速度的时候愈发成为一个问题。在编译器优化的 rematerialization 过程中也会出现类似的问题。在一些环境如Java 编程语言中,由于强制性的边界检查带来的每次查找的附加比较和分支过程,所以查找表可能开销更大。
何时构建查找表有两个基本的约束条件,一个是可用内存的数量;不能构建一个超过能用内存空间的表格,尽管可以构建一个以查找速度为代价的基于磁盘的查找表。另外一个约束条件是初始计算查找表的时间——尽管这项工作不需要经常做,但是如果耗费的时间不可接受,那么也不适合使用查找表。
[编辑本段]
例子

[编辑本段]
计算正弦值
许多计算机只能执行基本的算术运算,而不能直接计算给定值的正弦值,它们使用如下面泰勒级数(en:Taylor series)这样的复杂公式计算相当高精度的正弦值:
(x 接近 0)
然而,这样的计算费用可能是非常大的,尤其是在低速的处理器上。有许多的应用程序,尤其是传统的计算机图形每秒需要几千次的正弦值计算。一个常用的解决方案就是在刚开始计算许多均匀分布数值的正弦值,然后在表中查找最接近所需 x 的正弦值,这个值非常接近于正确的数值,这是因为正弦函数是一个有限变化率的连续函数。例如:
real array sine_table[-1000..1000]
for x from -1000 to 1000
sine_table[x] := sine(x/1000/pi)
function lookup_sine(x)
return sine_table[round(x/1000/pi)]
Image:Interpolation example linear.png
部分正弦函数的线性插值不幸的是,查找表需要一定的空间:如果使用 IEEE 双精度浮点数的话,将会需要 16,000 字节。如果使用较少的采样点,那么精度将会大幅度地下降。一个较好的解决方案是线性插值,在表中待计算点左右两侧两个点的值之间连直线,这个点对应的直线上的值就是所计算点的正弦值。这种方法计算速度也很快,对于如正弦函数这样的平滑函数来说也有更高的精度。这里是使用线性插值的一个例子:
function lookup_sine(x)
x1 := floor(x/1000/pi)
y1 := sine_table[x1]
y2 := sine_table[x1+1]
return y1 + (y2-y1)*(x/1000/pi-x1)
当使用插值的时候,可以得益于不均匀采样,也就是说在接近直线的地方,使用较少的采样点,在变化较快的地方使用较多的采样点以最大限度地接近实际的曲线。更多的信息请参考插值。
[编辑本段]
计算 1 的位数
population function。例如,数字 37 的二进制形式是 100101,所以它包含有三个设置成 1 的位。一个计算 32 位整数中 1 的位数的简单c语言程序是:
int count_ones(unsigned int x) {
int i, result = 0;
for(i=0; i<32; i++) {
result += x & 1;
x = x >> 1;
}
return result;
}
不幸的是,这个简单的算法在现代的架构上将需要数以百计的时钟周期才能完成,这是因为它造成了许多分支和循环,而分支的速度是很慢的。这可以使用 loop unrolling 和其它一些聪明的技巧进行改进,但是最简单快捷的解决方案是查找表:简单地构建一个 包含每个字节可能值包含的 1 的个数的256 个条目的表。然后使用这个表查找整数中每个字节包含的 1 的个数,并且将结果相加。没有分支、四次内存访问、几乎没有算术运算,这样与上面的算法相比就可以大幅度地提升速度。
int count_ones(unsigned int x) {
return bits_set[x & 255] + bits_set[(x >> 8) & 255]
+ bits_set[(x >> 16) & 255] + bits_set[(x >> 24) & 255];
}
[编辑本段]
硬件查找表
在数字逻辑中,n位查找表可以使用多路复用器来实现,它的选择线是 LUT 的输入,它的输入是常数。n 位 LUT 通过将布尔逻辑函数建模为真值表从而可以编码任意 n 位输入,这是编码布尔逻辑函数的一个有效途径,4 位 LUT 实际上是现代 FPGAs 的主要元件。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-12
1、VHDL语言的特点:功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改。

...简答题 1采用VHDL语言设计数字系统具有哪些特点? 2举例说明FPGA是如 ...
1.采用VHDL语言设计系统具有哪些特点 VHDL系统设计的基本点:(1)与其他硬件描述语言相比,VHDL具有以下特点:(2)功能强大、设计灵活。(3)强大的系统硬件描述能力。(4)易于共享和复用。2.举例说明FPGA是如何通过查找表实现其逻辑功能的?参考答案:在计算机科学中,查找表是用简单的查询操作替换运行...

vhdl语言
VHDL即硬件描述语言,是一种用于描述数字电路系统的硬件设计语言。它通过文本方式描述电子电路的行为和功能,特别是在数字集成电路设计和电子系统级描述方面,发挥了重要的作用。其主要应用领域包括FPGA设计、ASIC设计等。VHDL的主要优势在于它具有结构化设计和描述能力,支持自上而下设计流程,适用于复杂的数字...

电子技术文献综述
Vhdl语言主要针对的是电路设计等方面。密码锁在vhdl中的实现实际上就是vhdl语言在数字电路中的一种应用。 2.以下是几位专家对基于vhdl语言的密码锁设计提出一些看法: (1). 山东理工大学张雪实验师针对基于vhdl语言的设计提出了数字密码锁的设计的思想,她的观点是这样的: 她就普通的密码锁做了一些总结,提出了一些...

与软件语言相比,VHDL有什么特点
在行为级抽象建模的覆盖范围方面软语言比VHDL略差一些。FPGA的硬件描述语言VHDL,超高速集成电路硬件描述语言,符合美国电气和电子工程师协会标准,利用一种和数字电路基本知识结合较密切的语言来描述数字电路和设计数字电路系统。为适应实际数字电路的工作方式,VHDL以并行和顺序的多种语句方式来描述在同一时刻...

fpga硬件调试
由于FPGA具有布线丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。FPGA的设计流程包括算法设计、代码仿真以及设计、板机调试,设计者以及实际需求建立算法架构,利用EDA建立设计方案或HD编写设计代码,通过代码仿真保证设计方案符合实际要求,最后进行板级调试,利用配置电路将相关文件下载至FPGA芯...

VHDL的使用说明
目前,它在中国的应用多数是用在FPGA\/CPLD\/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计...

VHDL和Verilog HDL的区别与联系
硬件描述语言HDL(Hardware Description Language)与高级程序设计语言相似,通过文本形式描述数字系统硬件的结构与行为。这种语言可以表示逻辑电路图、逻辑表达式,并用于复杂数字逻辑系统的逻辑功能。使用HDL编写的设计说明文档便于存储、修改,并能被计算机识别和处理。HDL是高层次自动化设计的起点和基础。IEEE推出...

fpga 是什么??做什么的???什么平台???一定采纳
它可用于构建系统所需的任何类型的电路,并且是FPGA的设计标准。另一种基于状态机对FPGA进行编程的常用语言是VHDL。它与Verilog不同,因为它包含更多功能,如数据类型和信号名称,这使得创建复杂电路和提高效率变得更加简单。定义了FPGA编程的语法和语法。FPGA如何工作?每个FPGA制造商都有其独特的架构规范。关键组件、原则和...

vhdl在其他方面还有什么应用?
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视...

用于项目开发的可编程芯片。
VHDL是广泛使用的设计输人硬件语言,可用于数字电路与系统的描述、模拟和自动设计.CPLD\/FPGA(复杂可编程逻辑器件\/现场可编程门阵列)为数字系统的设计带灵活性,兼有串!并行工作方式和高集成度!高速!高可靠性等明显的特点,CPLD\/FPGA的时钟延迟可达纳秒级,结合其并行工作方式,在超高速领域和实时测控方面有非常广泛的应用...

相似回答