EDA技术使用教程VHDL版实验报告4

时间:2024.4.13

EDA技术实验报告

实验报告

EDA技术使用教程VHDL版实验报告4

1

EDA技术实验报告

2

EDA技术使用教程VHDL版实验报告4

EDA技术实验报告

EDA技术使用教程VHDL版实验报告4

EDA技术使用教程VHDL版实验报告4

EDA技术实验报告

4

EDA技术使用教程VHDL版实验报告4


第二篇:《EDA技术及应用》实训报告


  桂林电子科技大学信息科技学院

《EDA技术及应用》实训报告

    1151100130     

                    姓  名       龙舟      

指导教师:梁勇

               2013 年 7

实训题目:万年历

1  系统设计

1.1 设计要求

1.1.1 设计任务  

设计一个数字日历电路

1.1.2 性能指标要求 

⑴用Verilog HDL语言设计一个数字日历。

⑵数字日历能正确显示年、月、日、时、分和秒。

⑶通过开关分别控制对年、月、日或时、分、秒校对及自动切换、,并且

运用按钮对年、月、日或时、分、秒校对。

⑷通过按钮对数码管全部清零。

1.2 设计思路及设计框图

1.2.1设计思路

通过EDA课程的学习,可知运用Verilog HDL语言设计一个数字日历括计时器模块(jsq60、jsq24)、年月日模块(nyr2009)、控制模块(conr)、校时选择模块(mux_4)、显示选择模块(mux_16);然后将各个模块连接起来画成原理图再下载到实训仪上,调节开关及按钮来实现数字日历的功能

1.2.2总体设计框图

 

2  各个模块程序的设计

(1)设计一个分频器进行20MHz分频得到实训所需的1Hz的频率

 

分析:这是个20MHZ时钟的分频器,将原来EDA实训仪提供的频率为20MHZ的时钟转换成频率1HZ的时钟,然后输出到有需要的端口,触发模块起作用。

(2)分别设计一个能显示年月日和时分秒的程序

校准年月日和秒分时的原理图如下:

 

分析:①当k=0时,开关j1,j2,j3校秒时分然后将信号分别送到jsq24模块的jm(校秒)、jf(校分)、js(校时)。

②当k=1时,开关j1,j2,j3校年月日然后将信号分别送到nyr2009模块的jr(校日)、jy(校月)、jn(校年)。

计算年月日的模块如下:

 

分析:clrn是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;jn、jy和jr分别是校年、校月、校日输入端;qn[15..0]、qy[7..0]、qr[7..0]分别是年、月、日的输出端。

计时器模块如下:

 

分析: cln是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;im、if和is分别是校秒、校分、校时输入端;qm[7..0]、qf[7..0]、qs[7..0]分别是年、月、日的输出端;cout是进位;

显示时分秒与年月历的模块如下:

分析:①当k=0时,把jsq24送来的时分秒的状态信号送到数码管显示。

②当k=1时,把nyr2009送来的年月日的状态信号送到数码管显示。

3  调试过程

在这次的实训中我选择了EDA课程中讲解过的万年历的设计,在其基础上添加了时间、日期自动切换一个拓展功能,通过运用Verilog HDL语言对程序进行设计,然后运用QuartusII9.0软件对各程序进行编译,看是否能通过,如有错误可以逐条对语句进行调试,当所有模块编译成功后就下载到EDA工具实验箱进行验证。

4  功能测试

4.1 测试仪器与设备

QuartusII9.0软件以及eda实训开发箱

4.2 性能指标测试

能够正常显示计时以及显示日期及其来回切换和自动切换。

4.3 误差分析(某些题目需要)

××××××××××××××××××××

5  实训心得体会

通过这两周的EDA实训,不仅更熟练的运用Verilog HDL语言在QuartusII9.0软件上的设计方法与步骤,还在参考资料后添加了一个日期,时间自动跳转模块拓展功能完成了数字日历电路的设计。在实训过程中,设计切换模块时,不能自动切换,后来在老师的指导下,在控制模块(contr)前面加一个分频器(clkgen)就可以实现8秒自动切换功能。从一开始接受课程任务,建立设计框图,再到网上查阅相关资料,确定电路图到最终制作成型,每一步都必须真诚付出。刚开始我是做的并不成功,不能实现切换功能。在多次检修之后,最终实现了课程设计作业的全部功能。将各个部分组成起来设计成为万年历功能。通过这次EDA实训我对数字逻辑电路也更加地了解,有了更直观的了解。

6  参考文献

 例:[1] 谢自美.电子线路设计·实验·测试(第二版).武汉:华中科技大学出版社,2000

附录

附录1:仿真波形图(部分模块)

Clkgen模块波形仿真图:

 

Cnt24模块波形仿真图:

 

Jishuqi模块波形仿真图:

 

Mux_4模块波形仿真图:

 

Mux_16模块波形仿真图:

 

Nry2009模块波形仿真图:

 

附录2:程序清单

1、contr模块程序

module contr(clk,k1,k2,k);

  input      clk,k1,k2;

  output reg k;

  reg [3:0]  qc;

  reg        rc;

 always @(posedge clk)

  begin qc=qc+1;

   if  (qc<8)  rc=0;

    else rc=1;

  case({k1,k2})

    0:k=rc;

    1:k=0;

    2:k=1;

    3:k=rc;

   endcase

  end

endmodule

2、 mux_4模块程序

module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3);

  input        k,j1,j2,j3;

  output reg   jm,jf,js,jr,jy,jn;

 always

  begin

   if(k==0) {jm,jf,js}={j1,j2,j3};

    else {jr,jy,jn}={j1,j2,j3};

     end

endmodule

3、clkgen模块程序

module clkgen(clk,cout);

input clk;

reg[24:0] q;

output reg cout;

always @(posedge clk)

begin

 if(q==20000000-1) q=0;

  else q=q+1;

 if(q==20000000-1) cout=1;

  else cout=0;

  end

endmodule

4、 cnt60模块程序

module cnt60(clk,cln,j,q,cout);

   input         clk,cln,j;

   output  reg [7:0] q;

   output  reg  cout;

always @(posedge clk^j or negedge cln)

begin

 if(~cln)q=0;

  else begin

 if(q=='h59) q=0;

 else  q=q+1;

 if(q[3:0]=='ha) begin

   q[3:0]=0;q[7:4]=q[7:4]+1;end

 if(q=='h59) cout=1;

 else cout=0;end

 end

endmodule

5、cnt24模块程序

module cnt24(clk,q,j,cln,cout);

   input         clk,cln,j;

   output  reg [7:0] q;

   output  reg  cout;

always @(posedge clk^j or negedge cln)

begin

 if(~cln) q=0;

 else begin

  if(q=='h23) q=0;

 else  q=q+1;

  if(q[3:0]=='ha) begin

   q[3:0]=0;q[7:4]=q[7:4]+1;end

 if(q=='h23) cout=1;

 else cout=0;end

 end

endmodule

6、nyr2009模块程序

module nyr2009(clrn,clk,jn,jy,jr,qn,qy,qr);

    input clrn,clk,jn,jy,jr;

    output [15:0]   qn;

    output [7:0]    qy,qr;

    reg [15:0]      qn;

    reg [7:0]       qy,qr;

    reg             clkn,clky;

    reg [7:0]       date;

    reg             clkn1,clkn2,clkn3;

   

  initial begin clkn1=1;clkn2=1;clkn3=1;end

 

  initial begin qn='h2000;qy=1;qr=1;end

 

  always@(posedge (clk^jr) or negedge clrn)

     begin

       if(~clrn) qr=1;

        else begin

         if(qr==date) qr=1;

         else qr=qr+1;

          if(qr[3:0]=='ha) begin

            qr[3:0]=0;qr[7:4]=qr[7:4]+1;end

       if(qr==date) clky=1;

        else clky=0;end

     end

    

   always@(posedge clky^jy or negedge clrn)

    begin

     if(~clrn ) qy=1;

      else begin

           if (qy=='h12) qy=1;

            else qy=qy+1;

             if(qy[3:0]=='ha) begin

              qy[3:0]=0;qy[7:4]=qy[7:4]+1;end

               if(qy=='h12) clkn = 1;

               else clkn = 0;end

    end

   

   

   always

      begin

       case(qy)

       'h01: date = 'h31;

       'h02:   begin

        if((qn/4==0)&(qn/100 !=0)|(qn/400 ==0)) date='h29;

         else date = 'h28;end

       'h03: date = 'h31;   

       'h04: date = 'h30;   

       'h05: date = 'h31;

       'h06: date = 'h30;   

       'h07: date = 'h31;   

       'h08: date = 'h31;   

       'h09: date = 'h30;   

       'h10: date = 'h31;   

       'h11: date = 'h30;   

       'h12: date = 'h31;   

       default :date='h30;

       endcase

     end

    

    always @(posedge (clkn^jn) or negedge clrn )

     begin

      if (~clrn) qn[3:0]=0;

       else begin if(qn[3:0]==9) qn[3:0]=0;

        else qn[3:0]=qn[3:0]+1;

      if(qn[3:0]==9) clkn1=0;

        else clkn1=1;end

     end

   

    always @(posedge clkn1 or negedge clrn)

     begin

     if(~clrn) qn[7:4]=0;

      else begin if (qn[7:4]==9) qn[7:4]=0;

       else qn[7:4]=qn[7:4]+1;

     if(qn[7:4]==9) clkn2=0;

      else clkn2=1;end

    end

   

    always @(posedge clkn2 or negedge clrn)

     begin

      if(~clrn) qn[11:8]=0;

       else begin if (qn[11:8]==9) qn[11:8]=0;

        else qn[11:8]=qn[11:8]+1;

      if(qn[7:4]==9) clkn3=0;

       else clkn3=1;end

    end

     

    always @(posedge clkn3 or negedge clrn)

     begin

      if(~clrn) qn[15:12]=2;

       else if (qn[15:12]==9) qn[15:12]=0;

        else qn[15:12]=qn[15:12]+1;

     

    end

endmodule 

7、 mux_16模块程序

module mux_16(k,qm,qf,qs,qr,qy,qn,q);

   input             k;

   input [7:0]       qm,qf,qs,qr,qy;

   input [15:0]      qn;

   output reg [31:0] q;

  always

   begin

    if (k==0)  begin

      q[31:24]=0;

      q[23:0]={qs,qf,qm};end

      else q={qn,qy,qr};

    end

endmodule

更多相关推荐:
电子技术应用实验报告

电子技术应用实验报告一实验项目四人智力竞赛抢答器要求1每个参赛者控制一个按钮用按动按钮发出抢答信号2竞赛主持人另有一个开关用于将电路复位3抢答器具有锁存功能即竞赛开始后先按动按钮者将对应的一个LED灯点亮此后其...

电子技术实验教程实验五

实验五场效应管放大器系别姓名学号实验日期一实验目的1学习场效应管放大电路设计和调试方法2掌握场效应管基本放大电路的设计及调整测试方法二实验仪器345678示波器函数信号发生器直流稳压电源数字万用表多功能电路实验...

电子技术应用实验实验报告—抢答器

电子技术应用实验实验报告八一实验项目名称4人智力竞赛抢答器实验内容设计并实现一个4人智力竞赛用抢答器电路具体要求为1每个参赛者控制一个按钮用按动按钮发出抢答信号2竞赛主持人另有一个按钮用于将电路复位3抢答器具有...

模拟电子技术基础实验教程

模拟电子技术基础实验教程教材内容依照教学规律按照由浅入深循序暂进的学习和能力培养原则分层次安排实验内容后一层次的内容以前一层次为基础逐步加深模拟电子技术基础实验教程肇庆学院光机电一体化综合性实验教学示范中心实验...

电子技术实验报告(二极管应用电路)

实验报告二课程名称电子技术实验项目二极管应用电路专业班级姓名座号09实验地点仿真室实验时间指导老师成绩一实验目的1通过二极管的伏安特性的绘制加强对二极管单向导通特性的理解2掌握直流稳压电源的制作及其特点二实验内...

模拟电子技术课程设计实验报告

xxxxxxx学院模拟电子课程设计综合实验班级姓名学号指导教师设计时间电子信息工程xxxxxx120xx5022720xx年xxxxxxx学院二一四年一实验目的通过集成直流稳压电源的设计安装和调试要求学会1选择...

电子科技大学电子技术应用实验报告(四人抢答器)

电子技术应用试验实验报告八电子科技大学实验报告任课教师实验教师姓名学号时间20xx年12月1011日课程名称电子技术应用试验实验名称4人智力竞赛抢答器一实验项目名称4人智力竞赛抢答器实验内容设计并实现一个4人竞...

应用电子技术—电工技术实验教学大纲

电工技术课程实验教学大纲课程名称电工技术课程总学时72课程代码0720xx1实验学时16实验学分05适用专业应用电子技术专业通信技术专业三年制专科一实验教学的性质和任务1实验教学的性质电工技术实验是应用电子技术...

电子技术实验报告(集成运放应用电路)

实验报告四课程名称电子技术实验项目集成运放应用电路专业班级姓名座号09实验地点仿真室实验时间指导老师成绩一实验目的1通过运放应用电路的Multisim仿真映证运放应用电路估算方法的可行性二实验内容1比例运算电路...

《电路与模拟电子技术》EDA实验报告(实验一)

电路与模拟电子技术EDA实验报告实验一一实验目的1验证叠加原理的正确性2验证戴维南定理二实验内容求下图电路的戴维南等效电路用此电路验证叠加原理的正确性1戴维南等效电路第一步测ab间的开路电压第二步测ab间的短路...

20xx年模拟电子技术实验报告模板[1]

武汉职业技术学院电信学院模拟电子技术实验报告实验科目模拟电子技术实验实验名称实验专业实验者实验时间20xx20xx年第二学期实验指导教师黄老师武汉职业技术学院实验训项目单Trainingitem

电子科技大学电子技术实验报告Multisim4.16

416两级放大电路放大倍数的测量416两级放大电路输入电阻的测量416两级放大电路输出电阻的测量未接负载接负载416两级放大电路幅频特性曲线测量电路图416两级放大电路幅频特性曲线

电子技术应用实验教程实验报告(15篇)