我是靠谱客的博主 糟糕蜜粉,最近开发中收集的这篇文章主要介绍FPGA代码练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

01、8位加法器
功能代码
module adder_8 ( cout,sum,a,b,cin );
input [7:0] a,b;
input cin;
output cout;
output [7:0] sum;
assign {cout,sum} = a + b + cin;
endmodule
2、8位计数器
功能代码
module counter(out,clk,enable,rst);
output[7:0] out;
input clk, rst, enable;
reg[7:0] out;
always @ (posedge clk) begin
if (rst) begin
out <= 8’b0;
end else if (enable) begin
out <= out + 1;
end
end
endmodule
3、二选一多路选择器
连续赋值方式
module onInTwo(a,b,s,d);
input a,b,s;
output d;
assign d = (s == 0)?a:b;
endmodule
阻塞赋值方式
module onInTwo2(out,d,a,s);
input a,b,s;
output out;
always @(*)begin
if (s==0) begin
out = a;
end else begin
out = b;
end
end
endmodule
05、四位移位寄存器
功能代码
module register(out,clk,in);
input clk,in;
output [3:0] out;
always @(posedge clk) begin
out = (out<<1);
out[0] = in;
end
endmodule
06、for循环七人表决器
功能代码
module vote_7(output pass,input [6:0] vote);
integer i;
reg[2:0] vote_count;
always@(vote)begin
vote_count=0;
for(i = 0;i<7;i = i+1) begin
if (vote[i])
vote_count = vote_count+1;
end
end
assign pass = (vote_count>3) ? 1 : 0;
endmodule
09、空调机
​ 设计一个空调机的控制机。温度传感器控制两个输入端temp_high和temp_low, 如果室内温度较高,则temp_high为’1’, 同时temp_low为’0’; 如果室内温度较低,则temp_high为’0’, 同时temp_ low为’1’; 如果室内温度正常,则temp_high为’0’, 同时temp_low为’0’。 根据输入端temp_high和temp_ _low的值来判断当前的状态是: 1.too_hot (太热) ; 2. too_cold (太冷) ; 3.just_right (正好),然后决定输出端heat和cool的值是’1’还是’0’,从而控制是制冷还是制热。
要求:
1.画出有限状态机,标明状态转换条件;
2.写出程序代码,标注说明和解释;
3.写出验证程序,对设计进行全面的验证。
module air_ad(
input i_sys_clk ,
input i_sys_rst ,
input temp_high ,//1为高温
input temp_low ,//1为低温
output heat , //1为输出制热
output cool //1为输出制冷
);
reg cool = 0;
reg heat = 0;
reg [1:0] cstate = 2’d0 ;
reg [1:0] air_hot = FSM_H ;
reg [1:0] air_cool = FSM_C ;
reg [1:0] air_right = FSM_R;

parameter FSM_H = 1 ;
parameter FSM_C = 2 ;
parameter FSM_R = 3 ;
assign o_temp = temp_reg ;

assign air_hot = (temp_high && (!temp_low) );
assign air_cool = (temp_low && (!temp_high) );
assign air_right = ((!temp_high) && (!temp_low) );

always @ (posedge i_sys_clk or posedge i_sys_rst)
begin
if(i_sys_rst)
begin
cool <= 0;
heat <= 0;
end
else
case(cstate)
FSM_H :
begin
heat <= 0;
cool <= 1;
end

FSM_C :
begin
cool <= 0;
heat <= 1;
end
FSM_R :
begin
cool <= 0;
heat <= 0;
end
default : begin end
endcase
end
endmodule

最后

以上就是糟糕蜜粉为你收集整理的FPGA代码练习的全部内容,希望文章能够帮你解决FPGA代码练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部