EDA-Verilog-实验教案-11

时间:2024.4.20

实验教学说明

1所有实验的软件设计平台主要是QuartusII 9.1。

2所有实验的硬件平台可选Cyclone FPGA:EP1C6。

3上机所有实验项目文档均建立在C:\DXnnn。

nnn为学号后三位数。

4. 注:目录、文件名不能有中文字;每个实验单独在DXnnn下建子目录。

共4个实验(Project),即4个子目录。

5必须符合实验报告给定的格式,即在本教案中添加实验内容,不改变格式。

   实验报告完成后,将教学说明和目录删去。正文5号宋体。

    ▲注:实验报告为word文档,名为DXnnn姓名.doc,中间没有空格。

6各实验要含输入(图或Verilog程序)、RTL综合电路图和仿真结果等主要

部分的屏幕硬拷贝。每个贴图要清晰、信息要全又没有多余。

7每位同学要提交实验报告(电子稿),同时提交打印稿或手写稿,

总页数控制在10—16页。课程设计报告提交wly88623390@126.com

8QuartusII 的操作方法、步骤与及设计内容,参见教材章节。

其余可参考老师提供的电子文档。


青 岛 科 技 大 学

实验报告

实验课程:EDA技术与Verilog实验

        

     姓名: 标准名       学号:  07030100 

        

     年级:  07级    专业班级:  电信071  

           台号:          实验日期: 20##-12-18

自动化与电子工程学院


目  录

实验一  运算电路的设计与仿真. 4

实验二  触发器的设计与仿真. 6

实验三  模15加法计数器的设计与仿真. 8

实验四  3位线性反馈移位寄存器的设计与仿真. 10


实验一  运算电路的设计与仿真

一、实验目的

1.设计一个1位全加器,设计模块分层次。

2. 先设计半加器,再用半加器构成1位全加器。

3.对设计的两层电路分别进行编译综合与仿真分析。

二、实验准备

1.阅读教材第4章有关内容。

2.画出设计的逻辑电路图。

三、实验内容与步骤

1.在自己建立的工作目录下,输入所设计的逻辑电路图。

   2.按步骤进行编译综合。

3. 编辑输入波形。

4. 进行仿真和分析。

四、仿真结果及分析

(屏幕硬拷贝图:半加器、全加器电路图、全加器综合RTL图、全加器仿真波形)

(仿真结果简单分析: 一定要对照输入输出波形结果一一进行分析)

注:先创建项目,后输入设计文档。

注:全加器为顶层模块,必须与创建项目时指定的顶层模块名一致。

      半加器另命名,不能与顶层模块名一样。

注:画完半加器后,file→create→create symbol生成库模块。

注:编辑输入波形前,一定先设置end time:100uS;并且Fit in window。

注:仿真前,再全编译一次。

注:若有修改,则再全编译一次。


实验二  触发器的设计与仿真

一、实验目的

1.用Verilog设计一个边沿触发器(可选T、RS),要求带有一个异步、一个同步置位或复位端。

2.对设计的触发器进行编译综合、仿真分析。

二、实验准备

1.阅读教材第7章相关内容。

2.用Verilog语言写出设计描述。

三、实验内容与步骤

1.在自己建立的工作目录下,编写输入所设计的程序。

   2.按步骤进行编译综合。

3. 编辑输入波形。

4. 进行仿真和分析。

四、仿真结果及分析

(屏幕硬拷贝图:Verilog描述、综合RTL电路图、仿真波形)

(仿真结果简单分析: 一定要对照输入输出波形结果一一进行分析)

注:先创建项目,后输入设计文档。

注:项目的顶层命名 、Verilog文件名、module 定义的模块名三者

必须一致。

注:仿真时,注意set和reset只在初始时短时有效一次,

并且不能同时有效。注意是同步还是异步方式。

注:编辑输入波形前,一定先设置end time:100uS;并且Fit in window。

注:仿真前,再全编译一次。

注:若有修改,则再全编译一次。


实验三 模15加法计数器的设计与仿真

一、实验目的      

1.用Maxplus2库中的74161模块,设计一个模15加法计数器。

2.对设计的电路进行编译综合、仿真分析。

二、实验准备

1.阅读教材第8章相关内容。

2.画出设计的电路图。

三、实验内容与步骤

1.在自己建立的工作目录下,编写各模块程序,绘制总电路框图。

   2.按步骤进行编译综合。

3. 编辑输入波形。

4. 进行仿真和分析。

四、仿真结果及分析

    (屏幕硬拷贝图:设计输入、综合RTL电路图、仿真波形)

(仿真结果简单分析: 一定要对照输入输出波形结果一一进行分析)

注:先创建项目,后输入设计文档。

注:项目的顶层命名 、Verilog文件名、module 定义的模块名三者

必须一致。

注:仿真时,注意置数、复位方式。

注:编辑输入波形前,一定先设置end time:200uS,Tclk=10uS;

并且Fit in window。

注:仿真前,再全编译一次。

注:若有修改,则再全编译一次。



  实验四  3位线性反馈移位寄存器的设计与仿真

一、实验目的

1.用Verilog设计一个3位线性反馈移位寄存器。

2.对设计的电路进行仿真分析。

二、实验准备

1.阅读教材第8章有关内容。(P200)

2.用Verilog语言设计一个3位线性反馈移位寄存器。

三、实验内容与步骤

1.在自己建立的工作目录下,编写输入所设计的程序。

  2.按步骤进行操作和仿真

四、仿真结果及分析

    (屏幕硬拷贝图)

注:先创建项目,后输入设计文档。

注:项目的顶层命名 、Verilog文件名、module 定义的模块名三者

必须一致。

注:在操作中间做修改后,一定要再存盘,并全编译一次。

注:Project中,不能有多余的文件(如多余的Verilog,描述、多余的波

形文件),若有,将可能导致全编译时加入修改前的中间结果。

注:编辑输入波形前,一定先设置end time:10S,Tclk=1S;

Tsignal=0.1S,0.05S。并且Fit in window。

注:仿真前,再全编译一次。

注:若有修改,则再全编译一次。

注:仿真波形输入,初始状态不能为0.


第二篇:eda电子设计使用verilog语言电子琴实验报告


      

电子设计自动化课程设计报告

  系:      信息工程学院      

    业:     电子信息工程      

    号:                        

    名:                        

指导教师:                        

 

  

2013          

       

1设计目的………………………………………………………3

2题目描述与要求………………………………………………3

3课程设计报告内容……………………………………………3

 3.1设计原理与思路……………………………………………3

 3.2操作过程……………………………………………………4

 3.3设计和调试过程中出现的问题及解决方法………………7

4设计总结和心得体会…………………………………………8


一、课程设计目的

使用VerilogHDL语言进行前端设计,并使用Quaruts软件在实验箱上实现仿真,实现硬件电子琴。电子琴要求有8个音阶,使用外部时钟信号32MHz,能同步显示音阶。

二、课程设计题目描述和要求

题目:简易电子琴的设计

主要功能:(1)设计一个八音电子琴。

(2)由键盘输入控制音响,同时可自动演奏乐曲。

(3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。

三、课程设计报告内容

 3.1设计原理与思路

  系统由数控分频器、乐曲存储模块以及发声模块组成。数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。由发声模块产生音符对应的频率的信号来使扬声器发音。

(1)模块automusic

模块automsic由auto信号来选择发声的方式,auto=0时系统自动播放内置的音乐,auto=1时由键盘来手动演奏音乐。

(2)模块TONE

    模块Tone是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的显示数码,如‘5’,并由High输出指示音阶高8度显示。

(3)模块Speaker

模块Speaker中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speaker由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。

 3.2操作过程

新建工程

添加模块

查找对应芯片

调试程序

波形仿真

生成逻辑图

设置管脚

3.3设计和调试过程中出现的问题及解决方法

   在初次编写分频模块时候,使用的是比较基本的计数器分频法,编写程序后在modelsim软件中进行了仿真,发现无法观察到分频情况。经过分析,原因是由于分频比过大,因此在波形图中很难观察到。而且由于预分频的占空比很小,更难以观察到高电平。在原因找到后,为了考察程序的性能,我们将输入频率减小。同时适当缩小分频比,这样就得到了模块仿真中的分频波形。

四、设计总结和心得体会

通过这次课程设计发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。这个实验十分有意义 我获得很深刻的经验。通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。

参考文献:(五号,宋体加粗)

[1]       潘松,《EDA实用教程》,科学出版社,20##年

附录:(源程序)

module top(clk32MHz,handTOauto, code1,index1,high1,spkout);

input clk32MHz,handTOauto;    //32MHz系统时钟,键盘输入/自动演奏

input [7:0] index1;//键盘输入信号

output [6:0] code1;   //音符显示信号

output high1,spkout;//高低音节信号,音频信号

wire [10:0] tone;

wire [7:0] indx;

automusic u0(.clk(clk32MHz),.index2(index1),.index0(indx),.auto(handTOauto));

tone u1(.index(indx),.tone0(tone),.code(code1),.high(high1));

speaker u2(.clk1(clk32MHz),.tone1(tone),.spks(spkout));

Endmodule

module automusic(clk,auto,index2,index0);//实现自动演奏功能。

input clk,auto;//系统时钟;键盘输入/自动演奏

input  [7:0] index2;//键盘输入信号

output [7:0] index0;//音符信号输出

reg [7:0] index0;

reg [4:0] count0;

reg clk2;

reg [22:0] count;

always @(clk,auto)  //此过程完成对系统时钟8M的分频,得到4Hz的信号clk2

begin

    if (auto)

        begin

            count=23'd0;

            clk2<=1'b1;

        end

    else if (clk)

    begin

        count=count+1'b1;

        if  (count==23'd4000000) clk2<=1'b1;

        else if  (count==23'd8000000) begin clk2<=1'b0; count=23'd0;end

    end

end

always @(posedge clk2)//此过程完成自动演奏部分曲的地址累加     

begin

    if (count0==5'd31) 

        count0<=5'd0;

    else

        count0<=count0+1'b1;

end

always @(count0,auto,index2)     

begin

    if (!auto)

        case(count0)                        //此case语句:存储自动演奏部分的曲             

        5'd0:     index0<=8'b00000100;  //3

        5'd1:     index0<=8'b00000100; 

        5'd2:     index0<=8'b00000100;

        5'd3:     index0<=8'b00000100;

        5'd4:     index0<=8'b00010000;//5

        5'd5:     index0<=8'b00010000;

        5'd6:     index0<=8'b00010000;

        5'd7:     index0<=8'b00100000;//6

        5'd8:     index0<=8'b10000000;//8

        5'd9:     index0<=8'b10000000;

        5'd10:    index0<=8'b10000000;

        5'd11:    index0<=8'b00000100;

        5'd12:    index0<=8'b00000010;//2

        5'd13:    index0<=8'b00000010;

        5'd14:    index0<=8'b00000001;//1

        5'd15:    index0<=8'b00000001;

        5'd16:    index0<=8'b00010000;//5

        5'd17:    index0<=8'b00010000;

        5'd18:    index0<=8'b00001000;//4  

        5'd19:    index0<=8'b00001000;

        5'd20:    index0<=8'b00001000;

        5'd21:    index0<=8'b00000100;

        5'd22:    index0<=8'b00000010;

        5'd23:    index0<=8'b00000010;

        5'd24:    index0<=8'b00010000;

        5'd25:    index0<=8'b00010000;

        5'd26:    index0<=8'b00001000;

        5'd27:    index0<=8'b00001000;

        5'd28:    index0<=8'b00000100; 

        5'd29:    index0<=8'b00000100; 

        5'd30:    index0<=8'b00000010; 

        5'd31:    index0<=8'b00000010; 

        default:   ;

    endcase

else index0<=index2;   //键盘输入音符信号输出 

end           

Endmodule

module tone(index,code,high,tone0); //音阶发生器程序。

input [7:0] index;//音符输入信号

output [6:0]  code;//音符显示信号

output high;//高低音显示信号

output [10:0] tone0;//音符的分频系数

reg high;

reg [6:0] code;

reg [10:0] tone0;

always @(index)//此过程完成音符到音符的分频系数译码,音符的显示,高低音阶

begin

    case(index)

    8'b00000001: begin tone0=11'd773; code=6'b1001111;high=1'b1;end

    8'b00000010: begin tone0=11'd912; code=6'b0010010;high=1'b1;end

    8'b00000100: begin tone0=11'd1116;code=6'b1001100;high=1'b1;end

    8'b00010000: begin tone0=11'd1197;code=6'b0100100;high=1'b1;end

    8'b00100000: begin tone0=11'd1290;code=6'b0100000;high=1'b0;end

    8'b01000000: begin tone0=11'd1372;code=6'b0001111;high=1'b0;end

    8'b10000000: begin tone0=11'd1410;code=6'b0000000;high=1'b0;end

    default:     begin tone0=11'd2047;code=6'b0000001;high=1'b0;end

    endcase

end

endmodule  

module speaker(clk1,tone1, spks);//实现数控分频

input clk1;//系统时钟

input [10:0] tone1;//音符分频系数

output spks;//驱动扬声器的音频信号

reg [10:0] tone2;

reg spks;

reg preclk,fullspks,count2;

reg [3:0] count;

reg [10:0] count11;

always @(posedge clk1) //此过程对系统时钟进行4分频

begin

    count=count+1'b1;

    if (count==4'h2)

        preclk<=1'b1;

    else

    if (count==4'h4)

        begin

            preclk<=1'b0;

            count=4'h0;

        end

end

always @(posedge preclk) //此过程按照tone1输入的分频系数对8MHz的脉冲再次分频,得到所需要的音符频率

begin

    if (count11<tone1)

        begin

            count11=count11+1;

            fullspks<=1'b1;

        end

    else

        begin

            count11<=0;

            fullspks<=1'b0;

        end

end

always @(posedge fullspks) //此进程对fullspks进行2分频

begin

    count2=~count2;

    if (count2)

        spks<=1'b1;

    else

        spks<=1'b0;

end

Endmodule

更多相关推荐:
Verilog实验报告(电子)

西安邮电大学VerilogHDL大作业报告书学院名称学生姓名专业名称班级电子工程学院电子信息工程实验一异或门设计一实验目的1熟悉Modelsim软件2掌握Modelsim软件的编译仿真方法3熟练运用Models...

Verilog 实验报告

实验一简单组合逻辑电路的设计一实验要求1用verilogHDL语言描写出简单的一位数据比较器及其测试程序2用测试程序对比较器进行波形仿真测试画出仿真波形3总结实验步骤和实验结果二实验原理与内容4这是一个可综合的...

北航verilog实验报告

北京航空航天大学电子电路设计数字部分实验报告实验一简单组合逻辑设计2实验二简单分频时序逻辑电路的设计3一实验目的1掌握最基本组合逻辑电路的实现方法32学习时序电路测试模块的编写33学习综合和不同层次的仿真3实验...

Verilog实验报告

实验报告格式要求一实验报告内容包括1实验名称2实验目的3实验仪器及编号写明仪器名称型号编号4实验原理简单叙述有关实验原理包括电路图或光路图或实验装置示意图及测量中依据的的公式式中各量的物理含义及单位公式成立所应...

Verilog HDL 实验报告

实验一Modelsim仿真软件的使用一实验目的1熟悉Modelsim软件2掌握Modelsim软件的编译仿真方法3熟练运用Modelsim软件进行HDL程序设计开发二实验内容1实验要求用VerilogHDL程序...

数字系统设计与Verilog HDL实验报告(一)

数字系统设计与VerilogHDL实验报告一班级自动1003班姓名刘洋学号06101103实验一ModelSim认识及四位比较器一实验目的1了解及掌握ModelSim2通过软件的基本功能ModelSim软件编写...

verilog hdl电子时钟实验报告

电子时钟电子时钟的功能可以显示时间还可以修改时间结构图NO7此电路适合于设计时钟定时器秒表等因为可利用键8和键5分别控制时钟的清零和设置时间的使能利用键75和1进行时分秒的设置87654321扬声器译码器译码器...

Verilog HDL硬件描述语言实验报告

VerilogHDL实验报告学院应用科学学院班级电科姓名学号132班1实验一组合逻辑电路设计1实验目的1234熟悉FPGA设计流程熟悉DE2开发板的基本元件使用开关发光二极管学习基本组合逻辑元件的Verilog...

北航三系verilog实验报告20xx

20xx20xx2G02A30501电子电路设计训练数字EDA部分实验报告20xx年5月20日教学班学号姓名组长签名成绩自动化科学与电气工程学院北京航空航天大学电子电路设计训练数字EDA部分实验报告目录20xx...

数字系统设计与Verilog HDL实验报告(二)

数字系统设计与VerilogHDL实验报告二班级自动1003班姓名刘洋学号06101103实验二四位并串转换电路一实验目的1了解及掌握时序电路的基本结构常用数字电路2通过ModelSim软件编写时序电路的程序进...

eda电子设计使用verilog语言电子琴实验报告

电子设计自动化课程设计报告院系信息工程学院专业电子信息工程学号姓名指导教师20xx年月1日目录1设计目的32题目描述与要求33课程设计报告内容331设计原理与思路332操作过程433设计和调试过程中出现的问题及...

基于verilog的密码开关,含testbench——实验报告

16进制数密码开关NCCGS1306242920##11816进制数密码开关一.设计规范(一)功能描述(1)可以用16进制数预先设置5个数密码(共20bit),例如:F1A2E,密码可更改,上电后(复位)密码默…

verilog实验报告(21篇)