‘壹’ 求利用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、当程序编写、调试完成,就可以编译为可执行程序。