『壹』 求利用cordic演算法來得到自然對數in(t)的verilog代碼,數據輸入是16位
其實我也想知道。。。最近一直被這個問題困惑。cordicIP 對輸入數據有要求。
http://wenku..com/link?url=_
詳情參考以上鏈接
python">wirea,b;
regc,d;
wire[15:0]n;
reg[15:0]m;
reg[31:0]data;
reg[47:0]datab;
wire[23:0]odata;
cordic_1arctanh(
.aclk(clk),//inputwireaclk
.s_axis_cartesian_tvalid(c),//inputwires_axis_cartesian_tvalid
.s_axis_cartesian_tuser(m),//inputwire[15:0]s_axis_cartesian_tuser
.s_axis_cartesian_tlast(d),//inputwires_axis_cartesian_tlast
.s_axis_cartesian_tdata(datab),//inputwire[31:0]s_axis_cartesian_tdata
.m_axis_dout_tvalid(a),//outputwirem_axis_dout_tvalid
.m_axis_dout_tuser(n),//outputwire[15:0]m_axis_dout_tuser
.m_axis_dout_tlast(b),//outputwirem_axis_dout_tlast
.m_axis_dout_tdata(odata)//outputwire[15:0]m_axis_dout_tdata
);
initialbegin
#200c=1;
d=0;
m=0;
datab=48'h0a00004a0000;
#20datab=48'h000000580000;
end
『貳』 遺傳演算法的matlab代碼實現是什麼
遺傳演算法我懂,我的論文就是用著這個演算法,具體到你要遺傳演算法是做什麼?優化什麼的。。。我給你一個標准遺傳演算法程序供你參考:
該程序是遺傳演算法優化BP神經網路函數極值尋優:
%% 該代碼為基於神經網路遺傳演算法的系統極值尋優
%% 清空環境變數
clc
clear
%% 初始化遺傳演算法參數
%初始化參數
maxgen=100; %進化代數,即迭代次數
sizepop=20; %種群規模
pcross=[0.4]; %交叉概率選擇,0和1之間
pmutation=[0.2]; %變異概率選擇,0和1之間
lenchrom=[1 1]; %每個變數的字串長度,如果是浮點變數,則長度都為1
bound=[-5 5;-5 5]; %數據范圍
indivials=struct('fitness',zeros(1,sizepop), 'chrom',[]); %將種群信息定義為一個結構體
avgfitness=[]; %每一代種群的平均適應度
bestfitness=[]; %每一代種群的最佳適應度
bestchrom=[]; %適應度最好的染色體
%% 初始化種群計算適應度值
% 初始化種群
for i=1:sizepop
%隨機產生一個種群
indivials.chrom(i,:)=Code(lenchrom,bound);
x=indivials.chrom(i,:);
%計算適應度
indivials.fitness(i)=fun(x); %染色體的適應度
end
%找最好的染色體
[bestfitness bestindex]=min(indivials.fitness);
bestchrom=indivials.chrom(bestindex,:); %最好的染色體
avgfitness=sum(indivials.fitness)/sizepop; %染色體的平均適應度
% 記錄每一代進化中最好的適應度和平均適應度
trace=[avgfitness bestfitness];
%% 迭代尋優
% 進化開始
for i=1:maxgen
i
% 選擇
indivials=Select(indivials,sizepop);
avgfitness=sum(indivials.fitness)/sizepop;
%交叉
indivials.chrom=Cross(pcross,lenchrom,indivials.chrom,sizepop,bound);
% 變異
indivials.chrom=Mutation(pmutation,lenchrom,indivials.chrom,sizepop,[i maxgen],bound);
% 計算適應度
for j=1:sizepop
x=indivials.chrom(j,:); %解碼
indivials.fitness(j)=fun(x);
end
%找到最小和最大適應度的染色體及它們在種群中的位置
[newbestfitness,newbestindex]=min(indivials.fitness);
[worestfitness,worestindex]=max(indivials.fitness);
% 代替上一次進化中最好的染色體
if bestfitness>newbestfitness
bestfitness=newbestfitness;
bestchrom=indivials.chrom(newbestindex,:);
end
indivials.chrom(worestindex,:)=bestchrom;
indivials.fitness(worestindex)=bestfitness;
avgfitness=sum(indivials.fitness)/sizepop;
trace=[trace;avgfitness bestfitness]; %記錄每一代進化中最好的適應度和平均適應度
end
%進化結束
%% 結果分析
[r c]=size(trace);
plot([1:r]',trace(:,2),'r-');
title('適應度曲線','fontsize',12);
xlabel('進化代數','fontsize',12);ylabel('適應度','fontsize',12);
axis([0,100,0,1])
disp('適應度 變數');
x=bestchrom;
% 窗口顯示
disp([bestfitness x]);
『叄』 如何用CORDIC的FPGA演算法計算平方和開根號
用向量模式cordic演算法
輸入x,y
輸出x即為伸縮系數乘以sqrt(x^2+y^2)
『肆』 演算法代碼怎麼寫
按照你的要求編寫的C語言程序如下:
#include
int main(){
int n=0;
while(1){
if(n%1==0 && n%2==1 && n%3==0 && n%4==1 && n%5==1 && n%6==3 && n%7==0 && n%8==1 && n%9==0){
printf("筐里有%d個雞蛋",n);
『伍』 rc4演算法該怎樣寫一個完整的程序代碼用的是c/c++都行。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef unsigned long ULONG;
void rc4_init(unsigned char *s, unsigned char *data,unsigned Len) { //初始化函數
int i,j;
unsigned char k[256] = {0},tmp;
for(i = 0;i < 256;i++) {
s[i] = i;
k[i] = data[i%Len];
}
for(i = 0; i < 256; i++) {
j = (j + s[i] + k[i])%Len;
tmp = s[i];
s[i] = s[j]; //交換s[i]和s[j]
s[j] = tmp;
}
}
void rc4_crypt(unsigned char *s, unsigned char *Data, unsigned long Len) { //加解密
int i = 0, j = 0, t = 0;
unsigned long k = 0;
unsigned char tmp;
for(k = 0;k < Len;k++) {
i = (i + 1)%256;
j = (j + s[i])%256;
tmp = s[i];
s[i] = s[j]; //交換s[x]和s[y]
s[j] = tmp;
t = (s[i] + s[j])%256;
Data[k] ^= s[t];
}
}
int main() {
unsigned char s[256] = {0},st[256] = {0}; //S-box
char key[256] = "just for test";
char pData[512] = "待加密數據Data";
ULONG len = strlen(pData);
printf("pData = %s\n",pData);
printf("key = %s, length = %d\n\n",key,strlen(key));
rc4_init(s,(unsigned char *)key,strlen(key)); //初始化
printf("完成對S[i]的初始化,如下:\n\n");
for(int i = 0; i < 256; i++) {
printf("%-3d ",s[i]);
}
printf("\n\n");
for(i = 0; i < 256;i++) { //用st[i]暫時保留經過初始化的s[i],很重要的!!!
st[i] = s[i];
}
printf("已經初始化,現在加密:\n\n");
rc4_crypt(s,(unsigned char *)pData,len);//加密
printf("pData = %s\n\n",pData);
printf("已經加密,現在解密:\n\n");
rc4_init(s,(unsigned char *)key,strlen(key)); //初始化密鑰
rc4_crypt(st,(unsigned char *)pData,len);//解密
printf("pData = %s\n\n",pData);
return 0;
}
『陸』 怎樣把一個演算法變成程序
怎樣把一個演算法變成程序
演算法的意義,你網路搜索網路,然後再看我下面的回答:
一個合格的演算法,相當於能通過特定設置生成特定的結果的一段小程序,
通常在編程的時候,我們會這樣做:例如以個加法運算,並顯示結果
製作程序界面,提供2個輸入控制項(假定名稱為A和B)用於輸入數字,1個標簽控制項(假定名稱為C)用於顯示結果!
1個按鈕控制項用於當使用者點擊按鈕時執行 C=加法函數(A,B)
然後在程序中編寫一個加法函數,並制定需提供2個數值型參數,以及提供返回值!
細節略過...
通過這樣設計,就實現了將演算法或者說是函數,運用於能與用戶交互的程序上了!
這就是我們編程的基礎出發點!然而在實際應用中,演算法往往會更為復雜多變!
那麼通過上面的舉例,再來一段簡單點的解答:
將 函數,與界面進行有機結合,就變成了程序!
由於你的提問也許很復雜,那麼我就再復雜點去理解來回答:
也許你在某書本上看到一段演算法,你想把其變成能應用於程序上!又不知道如何著手!
那麼,我建議你要實現為可交互的程序,就需要學會編程,
其次就是你能看懂這段演算法,並把其改寫為程序代碼!
總結這個可能性的疑問,就是需要會編程,看得懂演算法的意思和步驟!
***********回答完畢啦,手工的,希望對你有幫助,有疑問繼續追問吧!
***********如果說我的回答不是你想了解的,那麼還請你詳細描述相關的問題吧!
***********採納答案別忘記點贊同!謝謝,祝您生活愉快!
『柒』 程序編程怎麼寫
1、先安裝程序編譯軟體。
2、打開程序編譯器,編寫代碼。
3、當程序編寫、調試完成,就可以編譯為可執行程序。