基于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
演示视频:
设计文档:
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仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 基于FPGA的角谷猜想的实现设计Verilog代码VIVADO仿真