Ise考试问题

这个程序肯定是不能用的,所以你需要自己做点什么:

首先,FPGA本身不支持非2的指数乘除运算,所以算法中的乘除运算需要调用乘除核心,核心调用在这里无法表述。你需要在quaters或ISE上生成一个IP核,然后调用它。

其次,标准信号的周期是不确定的,因此无法确定结果何时超出范围;

不知道是哪个傻逼老师给你出的这道考题。只是挑战FPGA的极限,专门在FPGA不擅长的领域出题。

可以先用。如果你选择了最佳答案,你可以问我任何问题。我通常每隔一段时间就去看他一眼。

`时间刻度1纳秒/1纳秒

//////////////////////////////////////////////////////////////////////////////////

//公司:

//工程师:吓唬大米飞机

//

//创建日期:09:30:31 06/29/2010

//设计名称:

//模块名称:频率

//项目名称:

//目标设备:

//工具版本:

//描述:

//

//依赖关系:

//

//修订版:

//修订版0.01 -文件已创建

//附加注释:

//

//////////////////////////////////////////////////////////////////////////////////

模块频率(clk,En,zhamen,Input,LED4,LED1,LED2,LED3,LED5,低,高

);

输入clk//时钟输入,也就是所谓的标准信号。

输入En;

输入夔门;//栅极输入

输入输入;//测试数据输入

输出LED4//五个发光二极管作为输出。

输出led 1;

输出LED2

输出LED3

输出LED5

输出低电平;

输出高电平;

wire clk

wire En

铁丝扎门;

有线输入;

reg zhamen _ En//实际阈值使能

reg[10:0]Nx;//数据

reg[11:0]Ns;//标准计数

reg[7:0]led 1;

reg[7:0]led 2;

reg[7:0]led 3;

reg[7:0]led 4;

reg[7:0]led 5;

reg标志;

reg[10:0]结果;

reg低电平;//提示LED输出低于或高于测试范围。这里因为门限值设置多少和clk的频率有关,所以需要自己设置。

reg高;

始终@(posedge时钟)

开始

if(En==1)

开始

if(zhamen==1)

开始

if(输入==1)

Zha men _ En = 1;

结束

if(zhamen==0)

开始

if(输入==1)

开始

Zha men _ En = 0;

结束

结束

if(zhamen_En==1)

开始

Ns = Ns+1;

flag = 1;

结束

结束

其他

开始

led 5 = 0;

led 1 = 0;

led 2 = 0;

led 3 = 0;

led 4 = 0;

Zha men _ En = 0;

flag = 0;

结束

结束

始终@(posedge输入)

开始

if(zhamen_En==1)

Nx = Nx+1;

结束

始终@(posedge时钟)

开始

if(Zha men _ En = = 0 & amp;& ampflag==1)

开始

flag = 0;

结果=(Nx/Ns)*Fs//这只是一个例子。这里需要调用除法内核和乘法内核,调用后直接输入即可。

Case(result%10)//这里还调用了除法核心来生成余数和结果,下面同样如此。

4 ' b 0000:led 1 = 8 ' b 11111101;

4 ' b 0001:led 1 = 8 ' b 01100001;

4 ' b 0010:led 1 = 8 ' b 110110111;

4 ' b 0011:led 1 = 8 ' b 11110011;

4 ' b 0100:led 1 = 8 ' b 011001111;

4 ' b 0101:led 1 = 8 ' b 101101111;

4 ' b 0110:led 1 = 8 ' b 101111111;

4 ' b 0111:led 1 = 8 ' b 11100001;

4 ' b 1000:led 1 = 8 ' b 111111111;

4 ' b 1001:led 1 = 8 ' b 111111111;

默认:led 1 = 8 ' b 11111101;

结束案例

案例((结果-结果%10)%100)/10)

4 ' b 0000:led 2 = 8 ' b 11111100;

4 ' b 0001:led 2 = 8 ' b 01100000;

4 ' b 0010:led 2 = 8 ' b 11011010;

4 ' b 0011:led 2 = 8 ' b 11110010;

4 ' b 0100:led 2 = 8 ' b 01100110;

4 ' b 0101:led 2 = 8 ' b 101101110;

4 ' b 0110:led 2 = 8 ' b 101111110;

4 ' b 0111:led 2 = 8 ' b 11100000;

4 ' b 1000:led 2 = 8 ' b 111111110;

4 ' b 1001:led 2 = 8 ' b 111101110;

默认:led 2 = 8 ' b 11111100;

结束案例

案例((结果% 1000-结果% 100-结果%10)/100)

4 ' b 0000:led 3 = 8 ' b 11111100;

4 ' b 0001:led 3 = 8 ' b 01100000;

4 ' b 0010:led 3 = 8 ' b 11011010;

4 ' b 0011:led 3 = 8 ' b 11110010;

4 ' b 0100:led 3 = 8 ' b 01100110;

4 ' b 0101:led 3 = 8 ' b 101101110;

4 ' b 0110:led 3 = 8 ' b 101111110;

4 ' b 0111:led 3 = 8 ' b 11100000;

4 ' b 1000:led 3 = 8 ' b 111111110;

4 ' b 1001:led 3 = 8 ' b 111101110;

默认:led 3 = 8 ' b 111111100;

结束案例

案例((结果% 10000-结果% 1000-结果% 100-结果%10)/1000)

4 ' b 0000:led 4 = 8 ' b 11111100;

4 ' b 0001:led 4 = 8 ' b 01100000;

4 ' b 0010:led 4 = 8 ' b 11011010;

4 ' b 0011:led 4 = 8 ' b 11110010;

4 ' b 0100:led 4 = 8 ' b 01100110;

4 ' b 0101:led 4 = 8 ' b 101101110;

4 ' b 0110:led 4 = 8 ' b 101111110;

4 ' b 0111:led 4 = 8 ' b 11100000;

4 ' b 1000:led 4 = 8 ' b 111111110;

4 ' b 1001:led 4 = 8 ' b 111101110;

默认:led 4 = 8 ' b 11111100;

结束案例

案例((结果-结果% 10000-结果% 1000-结果% 100-结果%10)/10000)

4 ' b 0000:led 5 = 8 ' b 11111100;

4 ' b 0001:led 5 = 8 ' b 01100000;

4 ' b 0010:led 5 = 8 ' b 11011010;

4 ' b 0011:led 5 = 8 ' b 11110010;

4 ' b 0100:led 5 = 8 ' b 01100110;

4 ' b 0101:led 5 = 8 ' b 101101110;

4 ' b 0110:led 5 = 8 ' b 101111110;

4 ' b 0111:led 5 = 8 ' b 11100000;

4 ' b 1000:led 5 = 8 ' b 111111110;

4 ' b 1001:led 5 = 8 ' b 111101110;

默认:le D5 = 8 ' b 11111100;

结束案例

结束

结束

末端模块