资源描述
电子信息工程学系实验报告
成 绩:
课程名称:微机原理与接口技术
指导教师(签名):
实验项目名:简单分频时序逻辑电路的设计 实验时间:2012.10.9
班级:通信 姓名:陈小凡 学号:
实 验 目 的:
1、 熟悉ALTERA公司EDA设计工具软件max+plusII的安装和工作环境。
2、 熟练的使用max+plusII软件中的各按钮的操作和原理。
3、学习和掌握使用max+plusII软件进行文本设计(二分频的设计为例)。
实 验 环 境:
max+plusII软件
Windows7系统
实 验 内 容 及 步 骤:
一、clk-in的二分频clk-out的文本设计
1、 打开实验的工作环境,界面如下:
图(一)工作环境界面
2、按屏幕上方的“新建文件”按钮,或选择菜单“File”→“New”,出现如图4.13所示的对话框,在框中选中“Text Editor file”,按“OK”按钮,即选中了文本编辑方式。
其界面如图(二):
图(二)选择文本
3、在编辑窗口中输入在文本编辑窗口,输入Verilog语言 ,代码如下图(三)所示:其中字体的格式和大小均可在以上界面的上方的状态栏来改变。
图(三)二分频的always语句编辑代码
4、在 File Name 对话框内输入设计文件名(如half-clk.v),然后选择 OK 即可保存文件。在 File菜单中选择 Save & Check项,检查设计是否有错误。 如果没有,在 File菜单中选择 Create Default Symbol 项,即可创建一个设计的符号。在 MAX+PLUS II 菜单内选择Compiler 项。则出现编译器窗口,如图(四)所示:
图(四)检查文件显示可行
选择 Start即可开始编译, MAX+PLUS II 编译器将检查项目是否有错,并对项目进行逻辑综合,然后配置到一个 Altera 器件中,同时将产生报告文件、编程文件和用于时间仿真用的输出文件。
5、选择菜单“File”→“New”,在出现的“New”对话框中选择“Waveform Editor File”按“OK”后将出现波形编辑器,选择菜单“Node ” →“Enter Nodes from SNF”,出现如图所示的选择信号结点对话框。按右上侧的“List”按钮,左边的列表框将立即列出所有可以选择的信号结点,然后按中间的“=>”按钮,将左边列表框的结点全部选中到右边的列表框,按“OK”按钮,选中的信号将出现在图(五)所示的波形编辑器中。
图(五)波形端口选择
6、在菜单“File ”→“Save ”在弹出的窗口中将波形文件存在以上的同一目录中,文件取名为compare.scf。并在波形观察窗左排按钮是用于设置输入信号的,使用时只要先用鼠标在输入波形上拖一需要改变的黑色区域,然后点击左排相应按钮即可。其中,“0”、“l”、“X”、“Z”、“INV”、“G”分别表示低电平、高电平、任意、高阻态、反相和总线数据设置。选择主菜单“MAX+plus II”→“Simulator”,按下“Simulator”,出现仿真参数设置与仿真启动窗,这时按下该窗口中的“Start”按钮,即刻进行仿真运算(注意,在启动仿真时,波形文件必须已经存盘)。仿真运算结束后出现如图4.23所示的对话框。对话框中显示如下图(六)“0 errors,0 warnings”,表示仿真运算结束。
图(六)检查可行性
二、 块语句(begin-end和fork-join)的比较
(1)、重复以上的第1和第2步。
(2)、在编辑窗口中输入在文本编辑窗口,输入Verilog语言 ,代码如下图(七、八)所示:
图(七)begin—end语句的Verilog语言代码
图(八)fork-join语句的Verilog语言代码
(3) 、在 File Name 对话框内输入设计文件名(如seriall.v),然后选择 OK 即可保存文件。
(4) 、在 File菜单中选择 Save & Check项,检查设计是否MAX+PL有错,其界面如下图(九、十)所示:
图(九)begin—end语句检查可行性
图(十)fork-join语句检查可行性
(5) 、 选择菜单“File”→“New”,在出现的“New”对话框中选择“Waveform Editor File”(如图所示),按“OK”后选择菜单“File”→“New”,在出现的“New”对话框中选择“Waveform Editor File”按“OK”后将出现波形编辑器,选择菜单“Node ” →“Enter Nodes from SNF”,出现如图所示的选择信号结点对话框。按右上侧的“List”按钮,左边的列表框将立即列出所有可以选择的信号结点,然后按中间的“=>”按钮,将左边列表框的结点全部选中到右边的列表框,将出现波形编辑器如图(十一)所示。
图(十一)波形端口选择
(6)、在菜单“File ”→“Save ”在弹出的窗口中将波形文件存在以上的同一目录中,文件取名为compare8.scf。并在波形观察窗左排按钮是用于设置输入信号的,使用时只要先用鼠标在输入波形上拖一需要改变的黑色区域,然后点击左排相应按钮即可。其中,“0”、“l”、“X”、“Z”、“INV”、“G”分别表示低电平、高电平、任意、高阻态、反相和总线数据设置。选择主菜单“MAX+plus II”→“Simulator”,按下“Simulator”,出现仿真参数设置与仿真启动窗,这时按下该窗口中的“Start”按钮,即刻进行仿真运算(注意,在启动仿真时,波形文件必须已经存盘)。仿真运算结束后出现如图4.23所示的对话框。对话框中显示如下图(十二)“0 errors,0 warnings”,表示仿真运算结束。
图(十二)检查可行性
三、 两顺序语句的比较
(a)、重复以上的第1和第2步。
(b)、在编辑窗口中输入在文本编辑窗口,输入Verilog语言 ,代码如下图(a、b)所示:
图(a)语句1的Verilog语言代码
图(b)语句2的Verilog语言代码
(c)、重复以上的第4、5和第6步。便可以得到两语句的波形图。
四、 语句2的非阻塞语句的赋值和比较
(a)、重复以上的第1和第2步。
(b)、在编辑窗口中输入在文本编辑窗口,输入Verilog语言 ,代码如下图(c)所示:
图(c)语句2的非阻塞Verilog语言代码
(c)、重复以上的第4、5和第6步。便可以得到两语句的波形图。
实 验 结 果 及 分 析:
经过以上的实验步骤以后,再进行仿真运算便可得到以上各实验波形图:
一、以下是clk-in的二分频clk-out的文本设计的波形图结果:
图(1)clk-in的二分频clk-out的文本设计仿真结果
二、块语句1(begin-end和fork-join)的比较的文本设计的波形图结果:
图(2)块语句begein-end的文本设计仿真结果
三、 两顺序语句的比较文本设计的波形图结果:
图(3)语句1的文本设计仿真结果
图(4)语句2的文本设计仿真结果
四、 语句2的非阻塞语句的赋值和比较文本设计的波形图结果:
图(5)语句2的非阻塞语句的文本设计仿真结果
1、 所谓的分频就是对信号中不同频率成分的各种信号分开,分成几个频率段。而二分频就是通过有分频作用的电路结构,在时钟每触发2个周期时,电路输出1个周期信号。比如用一个脉冲时钟触发一个计数器,计数器每计2个数就清零一次并输出1个脉冲。那么这个电路就实现了二分频功能。
2、 在仿真Begin—end串行块语句时每条语句前面的延时时间都是相对前一条语句执行结果的相对时间。而fork—join语句在执行时,并行块语句中的每条语句的延时都是相对该并行块的起始执行时间的。例如在以下的两条语句的执行结果是不同的:
Begin fork
Regb=rega; regb=rega;
Regc=regb; regc=regb;
end join
Begin—end中的语句是顺序执行的,因此,regb和regc的值都要更新为rega的值,即regc=regb=rega;而在执行fork—join语句时,语句是同时执行的,因此,regb更新为rega的值,但是regc为regb还没有更新的值,也就是regb和regc结果是不相等的。
3、 在比较两块语句的仿真时,从波形图来看是有区别的,原因是因为在always模块中,把两个语句的顺序给交换了,因此结果是语句1的是a和q的值不同,在语句2中a和q的值是相同的。
4、 使用阻塞方式对一个变量进行赋值时,此变量的值在在赋值语句执行完后就立即改变。
使用非阻塞赋值方式进行赋值时,各个赋值语句同步执行;因此,通常在一个时钟沿对临时变量进行赋值,而在另一个时钟沿对其进行采样。因此在实验四中的波形图可以发现q值是落后于a值的。
实 验 心 得:
8
展开阅读全文