quartus正弦rom表 8位256数据的ROM表。 老师给了,但需要知道为什么ROM表要这么写,求解

如题所述

正弦表,量化精度8位,一周期采样256个数据。一个正弦波周期为360度,除以256乘以坐标地址和得到对应角度,取SIN值,乘以最大幅值127(由7位二进制数值1111111得到),最后用16进制低7位(D6~D0)表示绝对值,最高位D7是符号位。例如第一行第二列为:SIN(360/256)*127=3.12,取整换算成HEX即为10000011.若把D7=1看为正,则数据地址0~127为上半周,128~255为下半周。第64的位置对应90度,值为最大0xff. 第192的位置对应270度,最小0x00.
温馨提示:内容为网友见解,仅供参考
第1个回答  2023-06-04
ROM(Read-Only Memory)是一种存储器,用于存储固定数据,这些数据在计算机程序执行期间不会改变。在数字电路设计中,ROM被广泛用于存储常数、表格和程序等。
正弦ROM表是一种用于存储正弦函数值的ROM表。在数字电路设计中,正弦函数值通常需要频繁使用,因此将它们存储在ROM表中可以节省计算时间和空间。
对于一个8位的ROM表,通常需要存储256个数据。这是因为正弦函数的值在一个周期内是连续的,而且可以通过泰勒级数展开成多个三角函数的和。因此,一个8位的ROM表可以存储256个数据,每个数据对应正弦函数的一个值。
具体来说,对于一个8位的ROM表,我们可以将正弦函数的值从0到2π进行等间隔划分,每个划分对应一个数据。例如,我们可以将0到2π划分为256个等间隔的区间,每个区间对应一个数据。这样,我们就可以将每个区间的起始角度和结束角度分别存储在一个8位的数据中,从而得到一个8位的ROM表。
因此,ROM表的编写方式是基于正弦函数的特性进行划分的。通过将正弦函数值进行等间隔划分,我们可以将每个区间的起始角度和结束角度分别存储在一个8位的数据中,从而得到一个8位的ROM表。
第2个回答  2012-03-23
横纵坐标是ROM的地址,表里面是正弦的整数表追问

我就是想知道那个整数表是怎么写出来的

追答

用VB或者C语言或者matlab都可以产生出来

追问

就是为什么要写这堆数,而不是其他数呢,

本回答被提问者采纳

quartus正弦rom表 8位256数据的ROM表。 老师给了,但需要知道为什么ROM表...
结果零点位于128,代表0。峰值分别在255和0,代表1和-1。这个数值如果送到单极性DAC输出,可以看到正弦波。

quartus正弦rom表 8位256数据的ROM表。 老师给了,但需要知道为什么ROM表...
正弦表,量化精度8位,一周期采样256个数据。一个正弦波周期为360度,除以256乘以坐标地址和得到对应角度,取SIN值,乘以最大幅值127(由7位二进制数值1111111得到),最后用16进制低7位(D6~D0)表示绝对值,最高位D7是符号位。例如第一行第二列为:SIN(360\/256)*127=3.12,取整换算成HEX即为10...

quartus正弦rom表
首先选择ROM数据文件编辑窗,即在File 菜单中选择“New”,并在New窗中选择“Other files”项,并选“Memory Initialization File”,点击OK后产生ROM数据文件大小选择窗。这里采用1024点8位数据的情况,可选ROM的数据数Number为1024,数据宽Word size取8位。点击“OK”,将出现空的mif数据表格,表格中的...

怎么在modelsim中生成和使用rom
这个过程很复杂。首先纠正一下:ROM是用FPGA芯片对应厂商的综合环境生成的。Altera就要用Quartus或者maxplus中的megawizard Xilinx要用ISE中的Core Generator。生成ROM以后,还需要赋初始值。就是你ROM中的查找表值。光有这几步还不够。因为生成的东西是一个黑盒文件。modelsim只有借助对应开发商的IP编译库...

quartusii9.0做正弦波发生器时要定制ROM元件,打开TOOLS下的MegaWizard...
我查看了下我的Quartus9.0,确实直接打开MegaWizard里只能找到ROM:1 PORT和ROM:2PORT。不过在Block Diagram File里面可以library--megefuctions--storage里找到lpm_rom

怎么用matlab产生正弦表数据?
一个完整的正弦波为0-2pi 正弦波ROM的深度为4096(地址总数)由于FPGA中不识别负数,加入一个直流分量,加8192则用matlab产生正弦表的函数为:Y=ceil((16384\/2-1)*sin(0:pi*2\/4096:2*pi)+8192)其中ceil函数描述如下:ceil(x) : 大于x 的最小整数>> ceil( [3.12 -3.12])ans =4-3。如...

怎么用matlab产生正弦表数据?
一个完整的正弦波为0-2pi 正弦波ROM的深度为4096(地址总数)由于FPGA中不识别负数,加入一个直流分量,加8192则用matlab产生正弦表的函数为:Y=ceil((16384\/2-1)*sin(0:pi*2\/4096:2*pi)+8192)其中ceil函数描述如下:ceil(x) : 大于x 的最小整数>> ceil( [3.12 -3.12])ans =4-3。如...

如何用matlab产生正弦表数据
(一)这个方法只在matlab中生成数据表,需要自己手动的 往mif文件中添加数据 1.假设用到的DA芯片为14为,则2^14=16384 2.一个完整的正弦波为0-2pi 3.正弦波ROM的深度为4096(地址总数)4.由于FPGA中不识别负数,加入一个直流分量,加8192 则用matlab产生正弦表的函数为:Y=ceil((16384\/2-1)*...

如何用matlab产生正弦表数据
(一)这个方法只在matlab中生成数据表,需要自己手动的 往mif文件中添加数据 1.假设用到的DA芯片为14为,则2^14=16384 2.一个完整的正弦波为0-2pi 3.正弦波ROM的深度为4096(地址总数)4.由于FPGA中不识别负数,加入一个直流分量,加8192 则用matlab产生正弦表的函数为:Y=ceil((16384\/2-1)*...

如何用matlab产生正弦表数据
这里介绍两种方式:(一)这个方法只在matlab中生成数据表,需要自己手动的往mif文件中添加数据1.假设用到的DA芯片为14为,则2^14=163842.一个完整的正弦波为0-2pi3.正弦波ROM的深度为4096(地址总数)4.由于FPGA中不识别负数,加入一个直流分量,加8192则用matlab产生正弦表的函数为:Y=ceil((16384...

相似回答