基于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. RTL图

5. Testbench

6. 仿真图


部分代码展示:

module jiaogu(
input clk,//时钟
input reset,//复位
input [15:0] data_in,//输入16bit数据
input start,//开始信号
output reg [15:0] cnt,//输出循环次数
output reg [15:0] data_out,//输出最终结果
output reg done//输出循环完成信号
);
reg [2:0] state=3'd0;//定义状态
parameter s_idle=3'd0;
parameter s_start=3'd1;
parameter s_judge=3'd2;
parameter s_odd=3'd3;
parameter s_even=3'd4;
parameter s_end=3'd5;
reg [17:0] data=18'd0;//定义数据
always@(posedge clk)
if(reset)
data<=0;//复位
else
if(start)
data<=data_in;//输入原始数据
else if(state==s_odd)
data<=data*3+1;//奇数时
else if(state==s_even)
data<=data/2;//偶数时
always@(posedge clk)
if(reset)
state<=s_idle;
else
case(state)
s_idle://空闲状态
if(start==1)//启动
state<=s_start;
else
state<=s_idle;
s_start://开始状态
state<=s_judge;
s_judge://判断
if(data==1)
state<=s_end;//结果为1,结束
else 
if(data[0]==1)
state<=s_odd;//奇数
else
state<=s_even;//偶数
s_odd://奇数状态
state<=s_judge;
s_even://偶数状态
state<=s_judge;
s_end://结束状态
state<=s_idle;
default:;
endcase
always@(posedge clk)
if(reset)//复位
begin
data_out<=0;
done<=0;
end

代码文件(付费下载):



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

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

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