当前位置:文档之家› Verilog实验报告

Verilog实验报告

实验报告格式要求一、实验报告内容包括:(1)实验名称。

(2)实验目的。

(3)实验仪器及编号。

写明仪器名称、型号、编号。

(4)实验原理。

简单叙述有关实验原理(包括电路图或光路图或实验装置示意图)及测量中依据的的公式,式中各量的物理含义及单位,公式成立所应满足的实验条件等。

(5)实验内容及步骤。

根据实验内容及实际的实验过程写明关键步骤和安全注意要点。

(6)实验观测记录。

记录原始测量数据、图形等有关原始量,形式上要求整齐规范。

(7)数据处理结果。

根据实验要求,采用合适的方法进行数据处理,误差分析,最后写出实际结果。

(8)小结或讨论。

内容不限。

可以是实验中的现象分析,对实验关键问题的体会,实验的收获和建议,也可解答思考题。

二、书写次序(1)到(5)是进行实验预习时就应该完成的。

(6)在实验中完成。

做完实验后再在预习报告基础上完成(7)(8)两项。

完成一个实验,就是一次最基本的科研训练,从预习到写出一个实验报告,每一步都有极其丰富的学习内容,要积极思考,认真对待。

实验(一)简单的组合逻辑设计实验日期2014-10-31 同组者姓名一、实验目的[1] 掌握基本组合逻辑电路的实现方法[2] 初步了解两种基本组合逻辑电路的生成方法[3] 学习测试模块的编写[4] 通过综合和布局布线了解不同层次仿真的物理意义二、实验仪器计算机、FPGA开发板三、实验内容[1] 在ISE软件环境中进行一次完整的设计流程,并在FPGA开发板上实现与门的功能。

[2] 完成一个可综合的数据比较器的程序。

[3] 完成数据比较器的测试模块。

[4] 发挥部分:设计一个多位(2位)的数据比较器并在FPGA开发板上实现该比较器。

四、实验步骤、分析及结果(在下面写出你的代码)代码:module compare(input a,input b,output c);assign c=a&b;endmodule结果如图所示:拓展代码如下:module compare( Y ,A ,B ); input [1:0] A ;input [1:0] B ;output reg [1:0] Y ; always @ (A or B )beginif ( A > B )Y <= 3'b01;else if ( A == B)Y <= 3'b10;elseY <= 3'b11;endendmodule结果如下:指导师(签名)时间实验(二)简单分频时许逻辑电路的设计实验日期2014-11-7 同组者姓名一、实验目的[1] 掌握最基本时序电路的实现方法。

[2] 学习时序电路测试模块的编写。

[3] 学习综合和不同层次的仿真。

二、实验仪器计算机、FPGA开发板。

三、实验内容[1] 设计一个实现2分频时序逻辑电路。

[2] 完成2分频时序电路的测试模块。

[3] 发挥部分:设计一个实现225次分频的电路,并在FPGA开发板上实现,用信号灯的闪烁来观察分频的结果。

考虑不同暂空比分频的结果。

四、实验步骤、分析及结果(在下面写出你的代码)代码:module div_2 (clk_out,clk,reset);output reg clk_out;input reset;input clk;always @ (posedge clk or posedge reset)if (reset)clk_out=0;elseclk_out= ~clk_out;endmodule结果如图所示:发挥部分:module div_225(clk_out,clk,rst);output reg clk_out;input rst;input clk;reg [27:0] counter;always @(posedge clk or posedge rst)begin if (rst)begin clk_out<=0 ; counter<=0; endelse if(counter==16777216)begin clk_out<=~clk_out ;counter<=0; end else counter<=counter+1 ;endendmodule结果如图所示:指导师(签名)时间实验(三)利用条件语句实现计数分频时序电路实验日期2014-11-14 同组者姓名一、实验目的[1] 掌握条件语句在简单时序模块设计中的使用。

[2] 学习在Verilog模块中应用计数器。

[3] 学习测试模块的编写、综合和不同层次的仿真。

二、实验仪器计算机、FPGA开发板。

三、实验内容[1] 设计一个可综合的分频器,将50M系统时钟分频为1M的时钟。

[2] 完成50分频时序电路的测试模块。

[3] 发挥部分:设计一个模拟交通灯黄灯闪烁的电路,并在FPGA开发板上实现,要求黄灯每1s闪烁一次(0.5s亮,0.5s灭)。

四、实验步骤、分析及结果(在下面写出你的代码)代码:module div50(input clk,rst,output reg clk_out);reg [5:0] counter;always @(posedge clk or posedge rst)beginif(rst) begin clk_out<=0;counter<=0 ;endelse if(counter==24) begin clk_out<=~clk_out;counter<=0;endelse counter<=counter+1;endendmodule结果如图所示:发挥部分:module div1s(input clk,rst,output reg clk_out);reg [25:0] counter;always @(posedge clk or posedge rst)beginif(rst) begin clk_out<=0;counter<=0 ;endelse if(counter==12500000) begin clk_out<=~clk_out;counter<=0;end else counter<=counter+1;endendmodule指导师(签名)时间实验(四)利用有限状态机进行时序逻辑的设计实验日期2014-12-5 同组者姓名一、实验目的[1] 掌握利用有限状态机实现一般时序逻辑分析的方法。

[2] 掌握用Verilog编写可综合的有限状态机的标准模版。

[3] 掌握用Verilog编写状态机模版的测试文件的一般方法。

二、实验仪器计算机、FPGA开发板。

三、实验内容[1] 设计一个检测二进制序列“10010”的电路。

[2] 完成上述序列检测电路的测试模块。

[3] 利用分频器控制检测电路检测的时间间隔。

四、实验步骤、分析及结果(在下面写出你的代码)代码:module seqdet (rst, clk,seq, det);input clk, rst;input seq;output det;reg det;reg [2:0] cstate, nstate;parameter IDLE = 3'd0,A_1 = 3'd1,B_10 = 3'd2,C_100 = 3'd3,D_1001 = 3'd4,E_10010 = 3'd5;always @ (posedge clk or posedge rst)if (rst)cstate <= IDLE;elsecstate <= nstate;always @ (seq or cstate)case (cstate)IDLE : if (seq == 1) nstate <= A_1;else nstate <= IDLE; A_1: if (seq == 0) nstate <= B_10;else nstate <= A_1; B_10: if (seq == 0) nstate <= C_100;else nstate <= A_1; C_100: if (seq == 1) nstate <= D_1001;else nstate <= IDLE; D_1001: if (seq == 0) nstate <= E_10010;else nstate <= A_1; E_10010: if (seq == 0) nstate <= C_100;else nstate <= A_1; default: nstate <= IDLE;endcasealways @ (cstate)if (cstate == E_10010) det <= 1;else det <= 0; endmodule结果如图所示:发挥部分:module onesecond(input sys_clk,input rst,output clk_out );reg clk_out;reg[24:0]counter;parameter N=50000000;always @(posedge sys_clk or posedge rst)if(rst) begin counter<=1'b0;clk_out<=1'b0; endelseif(counter<N/2) begin counter<=counter+1'b1; endelse begin counter<=1'b0; clk_out<=~clk_out; endendmodulemodule seqdet (rst, clk,seq, det);input clk, rst;input seq;output det;reg det;reg [2:0] cstate, nstate;parameter IDLE = 3'd0,A_1 = 3'd1,B_10 = 3'd2,C_100 = 3'd3,D_1001 = 3'd4,E_10010 = 3'd5;always @ (posedge clk or posedge rst)if (rst)cstate <= IDLE;elsecstate <= nstate;always @ (seq or cstate)case (cstate)IDLE : if (seq == 1) nstate <= A_1;else nstate <= IDLE;A_1: if (seq == 0) nstate <= B_10;else nstate <= A_1; B_10: if (seq == 0) nstate <= C_100;else nstate <= A_1; C_100: if (seq == 1) nstate <= D_1001;else nstate <= IDLE; D_1001: if (seq == 0) nstate <= E_10010;else nstate <= A_1; E_10010: if (seq == 0) nstate <= C_100;else nstate <= A_1; default: nstate <= IDLE;endcasealways @ (cstate)if (cstate == E_10010) det <= 1;else det <= 0; endmodulemodule Control(input clk,input rst,output clk_out,);Wire seq,det;reg [1:0] state;module onesecond(clk,rst,clk_out );seqdet (rst, clk,seq, det);endmodule指导师(签名)时间实验(五)交通灯控制器设计实验日期2014-12-12 同组者姓名一、实验目的[1] 掌握模块化设计方法。

相关主题