基于FPGA的角谷猜想的实现设计Verilog代码VIVADO仿真

名称:基于FPGA的角谷猜想的实现设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

角谷猜想的实现:

如果n为奇数,则3n+1

如果n的偶数,则n/2

最后n=1

要求:

1输入一个16位二进制数(用状态机来控制,用计数器记循环次数)

2.写出来的代码要为可综合电路

结果要包括:

1.输入二进制数判断奇偶后是否为3n+1或n/2

    2.最后是否回到1

    3.循环次数m的具体值


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

1. 工程文件

2. 程序代码

3. 程序编译

4. Testbench代码

5. 仿真图


部分代码展示:

module jiaogu_test(
input clk,//时钟
input enable,//使能信号
input [15:0] data_in,//输入16bit数据
output reg [15:0] result,//输出最终结果
output reg flag,//完成信号
output reg [15:0] cycle//循环次数
);
reg [2:0] state=3'd0;//状态寄存器
reg [17:0] temp=18'd0;//数据存储器
always@(posedge clk)
case(state)
3'd0://起始状态
if(enable==1)//启动
state<=3'd1;
else
state<=3'd0;
3'd1://启动状态
begin
state<=3'd2;
flag<=0;
temp<=data_in;//加载原数据
result<=0;
end
3'd2://循环状态
if(temp==1)//结果为1
state<=3'd5;//结束
else 
if(temp[0]==0)
state<=3'd4;//奇数
else
state<=3'd3;//偶数
3'd3://奇数状态
begin
state<=3'd2;
temp<=temp*3+1;//奇数时
end
3'd4://偶数状态
begin
state<=3'd2;
temp<=temp/2;//偶数时
end
3'd5://完成状态
begin
state<=3'd0;
flag<=1;//输出循环完成信号
result<=temp;//生输出结果
end
default:;
endcase
always@(posedge clk)
if(state==3'd1)
cycle<=0;//清零
else if(state==3'd2)
cycle<=cycle+1;//循环次数
endmodule

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 基于FPGA的角谷猜想的实现设计Verilog代码VIVADO仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员