sin查找表 matlab,利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨
1.使用matlab制作.coe文件
查找表的構造
構造256點的正余弦表
exp(-j*2*pi*(0:255)/256),分別得到 cos和sin的查找表
matlab代碼: 求sin
fid = fopen('sin.txt','a' );
str1 = 'MEMORY_INITIALIZATION_RADIX=10;';
str2 = 'MEMORY_INITIALIZATION_VECTOR=';
fprintf(fid,'\t%s\n \t%s\n', str1,str2);
for k=:;
y(k) =sin(*pi*k/);
y(k) = int16(y(k)*^); // 這一步主要是考慮是表中數據的格式Q(s,,),完成浮點數到定點數之間的轉換.
fprintf(fid,'\t%d%c\n',y(k),',');
end
fclose(fid);
matlab代碼:求cos
fid = fopen('cos.txt','a' );
str1 = 'MEMORY_INITIALIZATION_RADIX=10;';
str2 = 'MEMORY_INITIALIZATION_VECTOR=';
fprintf(fid,'\t%s\n \t%s\n', str1,str2);
for k=:;
y(k) =cos(*pi*k/);
y(k) = int16(y(k)*^);
fprintf(fid,'\t%d%c\n',y(k),',');
end
fclose(fid);
運行這兩個matlab程序可以得到cos.txt, sin.txt文件,里面存放了適合放在ROM中的數據格式。
注意點:
(1). COE文件格式
在txt文件開頭:
MEMORY_INITIALIZATION_RADIX=10;????//表示ROM內容的數據格式是10進制
MEMORY_INITIALIZATION_VECTOR=
在txt文件的最后一個數字后加入分號“;”。這里需要修改cos.txt,sin.txt,將最后的,改為;
(2)將cos.txt, sin.txt文件后綴直接改為coe文件類型。
-->如何修改txt 文件類型?
默認情況下,Windows的文件后輟名是隱藏的,因此,為了更改文件的后輟名,首先必須讓文件名的后輟顯示出來。
方法如下:在文件窗口下選擇工具>文件夾選項>查看>高級設置中不勾選隱藏已知文件類型的擴展名,即可顯示文件后綴名,然后直接更改為.coe后綴即可!
2. 定制rom
注意點:
(1)memory type :single port ROM
(2)memory size :
width 為數據的寬度
Depth?為數據的個數,它決定了輸入的addr的位數。比如,depth = 256, addr則為8位。
(3)選擇初始化文件。cos.coe, sin.coe ,選擇旁邊的show 可以查看添加是否正確。
這一步會生成對應的.mig、.vhd 文件。
3. 仿真驗證ROM是否正常工作
(1)新建top文件
entity look_up_sin is
port(
clk: in std_logic;
rst: in std_logic;
addr:in std_logic_vector( downto ); --Q(,)
sin_out:out std_logic_vector( downto )--Q(,)
);
end look_up_sin;
architecture Behavioral of look_up_sin is
COMPONENT sin_rom
PORT (
clka : IN STD_LOGIC;
addra : IN STD_LOGIC_VECTOR( DOWNTO );
douta : OUT STD_LOGIC_VECTOR( DOWNTO )
);
END COMPONENT;
begin
Inst_sin_rom : sin_rom
PORT MAP (
clka => clk,
addra => addr,
douta => sin_out
);
end Behavioral;
(2)remove sin_rom.XCO ip核文件,添加sin_rom.vhd文件。當文件sin.coe放在ipcore_dir目錄下面時,不需要這一步。應直接用sin_rom.xco,不然仿真會提醒
sin.mif文件找不到!!
(3)新建testbench文件。
仿真結果如下:
對比sin_txt文件
利用.Net中Process類調用netstat命令來判斷計算端口的使用情況
利用.Net中Process類調用netstat命令來判斷計算端口的使用情況:?Process?p?=?new?Process();p.StartInfo?=?new?ProcessStartInfo ...
Lua查找表元素過程(元表、__index方法是如何工作的)
近日開始研究Lua,在元表的使用上照貓畫虎地搞了兩下,實現了“面向對象”,但究其本質卻略有不解,后咨詢牛哥得解,特此記錄. Lua的表本質其實是個類似HashMap的東西,其元素是很多的Key-Val ...
算法與數據結構(九) 查找表的順序查找、折半查找、插值查找以及Fibonacci查找
今天這篇博客就聊聊幾種常見的查找算法,當然本篇博客只是涉及了部分查找算法,接下來的幾篇博客中都將會介紹關于查找的相關內容.本篇博客主要介紹查找表的順序查找.折半查找.插值查找以及Fibonacci查找 ...
OpenCV基礎篇之查找表
程序及分析 /* * FileName : lookup_table.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Su ...
Speed-BI 多事實表與表間計算的應用:銷售目標達成分析 另一種實現方法
在前一篇http://www.powerbibbs.com/forum. ... 7583& ...
OpenCV學習筆記:如何掃描圖像、利用查找表和計時
目的 我們將探索以下問題的答案: 如何遍歷圖像中的每一個像素? OpenCV的矩陣值是如何存儲的? 如何測試我們所實現算法的性能? 查找表是什么?為什么要用它? 測試用例 這里我們測試的,是一種簡單的 ...
1.2OpenCV如何掃描圖像,利用查找表和計時
查找表 顏色縮減法:如果矩陣元素存儲的是單通道像素,使用C或C++的無符號字符類型,那么像素可有256個不同值. 但若是三通道圖像,這種存儲格式的顏色數就太多了(確切地說,有一千六百多萬種).用如此之 ...
OpenCV從入門到放棄系列之——如何掃描圖像、利用查找表和計時
目的 如何遍歷圖像中的每一個像素? OpenCV的矩陣值是如何存儲的? 如何測試我們所實現算法的性能? 查找表是什么?為什么要用它? 測試用例 顏色空間縮減.具體做法就是:將現有顏色空間值除以某個輸入 ...
Quarter square 查找表乘法器,手動建立rom
建立一個C的范圍為0~255,內容是(C)2/4的查表 占用256個存儲空間,但可以計算出+-127的兩個數之積.傳統算法需要至少127×127個存儲空間. 查找表模塊的建立: module lut_ ...
隨機推薦
使用MyEclipse Swing/Matisse
經常使用JBuilder開發工具的人都知道,在JBuilder中開發Swing應用程序是比較方便的,雖然比不上曾經紅遍一時的Visual Basic,但開發界面的工作確實被大大簡化了. ??? JB ...
VC++編程中為程序加入啟動畫面功能
如何為自己的程序加入啟動畫面 觀察我們平常使用的軟件,當我們雙擊軟件的時候,會在主界面出現前,先行出現一個啟動畫面,由于前一陣子寫了一個基于對話框的程序,親自實驗了下,今天就為大家簡單的介紹下,在我 ...
UIPickerView基本用法
#import "ViewController.h" #import @interface ViewController : UIVie ...
ubuntu14.04下arm-linux-gcc 4.5.1的安裝與配置
使用的是友善之臂mini6410自帶光盤中的. 1.對新版本arm-linux-gcc-5.4.1進行解壓(注意,下面的C是大寫的) tar zxvf arm-linux-gcc-4.5.1-v6-v ...
hdu 4706 Children's Day 2013年ICPC熱身賽A題 模擬
題意:按字母順序排列成n型,簡單的模擬題. 當字母排到z時從a開始重新排起. 代碼: /* * Author: illuz * Blog: ...
override和重載的區別
1.父類:public virtual string ToString(){return "a";}子類:public override string ToString(){ret ...
ROC曲線的概念和意義
ROC曲線 受試者工作特征曲線 (receiver operating characteristic curve,簡稱ROC曲線),又稱為感受性曲線(sensitivity curve).得此名的原因 ...
百度地圖API 自定義標注圖標
通過Icon類可實現自定義標注的圖標,下面示例通過參數MarkerOptions的icon屬性進行設置,?也可以使用marker.setIcon()方法.
總結
以上是生活随笔為你收集整理的sin查找表 matlab,利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多元统计分析matlab,MATLAB的
- 下一篇: 海马先生绘本教案一等奖