verilog实验--实验二:组合逻辑电路设计_第1页
verilog实验--实验二:组合逻辑电路设计_第2页
verilog实验--实验二:组合逻辑电路设计_第3页
verilog实验--实验二:组合逻辑电路设计_第4页
verilog实验--实验二:组合逻辑电路设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二:组合逻辑电路设计一、 实验目的:学习组合逻辑电路,学习译码器的功能与定义,学习Verilog语言。二、 实验内容:编写3-8译码器的Verilog 代码并仿真,编译下载验证。三、 实验环境PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境、AR1000核心板、SOPC-MBoard板、ByteBlaster II 下载电缆。四、 实验原理 译码是编码的逆过程,它的功能是将特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路成为译码器。 译码器可分为两种类型,一种是将一系列代码转换成与之一一对应得有效信号。这种译码器可以称为唯一地址译码器,它常用于计算机中对存储器单元地址的译码,即将每一个地址代码换成一个有效信号,从而选中对应的单元。另一种是将一种代码转换成另一种代码,所以也称为代码变换器。 五、实验过程1.代码2.编译成功3.波形simulation4仿真波形图实验三:时序逻辑电路设计(一)一、 实验目的:学习时序逻辑电路,学习计数器的原理,学习Verilog。二、 实验内容:编写一个带预置输入,清零输入,可加/可减计数器的Verilog 代码并仿真。三、 实验环境PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境。四、 实验原理 计数器是数字系统中用的较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时等功能。 计数器的种类很多。按脉冲方式可以分为同步计数器和异步计数器;按进制可以分为二进制计数器和非二进制计数器;按计数过程数字的增减,可分为加计数器、减计数器和可逆计数器。 本实验就是设计一个4位二进制加减法计数器,该计数器可以通过一个控制信号决定计数器时加计数还是减计数,另外,该寄存器还有一个清零输入,低电平有效。还有一个load装载数据的信号输入,用于预置数据;还有一个C的输出,用于计数器的级联。其功能表如表3-1所示;管脚定义如图3-1所示。RCLKloadup_down状态Lxxx置零HxLx置数HH0减法HH1加法表3-1 4位二进制加减法计数器功能表五,实验过程1,代码module counter4(load,clk,c,DOUT,clr,up_down,DIN);input load;input clk;wire load;input clr;input up_down;wire up_down;input3:0DIN;wire3:0DIN;output c;reg c;output3:0DOUT;wire3:0DOUT;reg3:0data_r;assign DOUT=data_r;always(posedge clk or posedge clr or posedge load)beginif(clr)data_r=0;else if(load)data_r=DIN;else begin if(up_down)beginif(data_r=4b1111)begindata_r=4b0000;c=1;endelse begindata_r=data_r+1;c=0;endendelsebeginif(data_r=4b0000)begindata_r=4b1111;c=1;endelse begindata_r=data_r-1;c=0;endendendendendmodule编译通过仿真波形图实验五:通用移位寄存器的设计一、 实验目的:学习时序逻辑电路,学习寄存器的原理,学习Verilog语言。二、 实验内容:编写一个8位的模式可控的移位寄存器的Verilog 代码并编译,仿真。三、 实验环境PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境。四、 实验原理本实验就是设计一个模式可控的移位寄存器,该寄存器可以对8位信号通过MD输入端控制移位输出的模式,其功能表如表5-1所示。CLKMD状态001带进位循环左移010带进位循环右移011自循环左移100自循环右移101加载待移数据其他保持表5-1 模式可控移位寄存器功能表五、 实验步骤1、 按照模式可控的移位寄存器的功能表编写Verilog代码。module yinwei(clk,data_in,data_out,C0,MD,CN);input clk,C0; /时钟和进位输入input 7:0 data_in;/待加载移位的数据input 2:0 MD; /移位模式控制output 7:0data_out;/移位数据输出output CN;/进位输出reg7:0 REG;reg CY;always(posedge clk)begin case(MD) 3b001:begin REG0=C0;REG7:1=REG6:0;CY=REG7;end/带进位循环左移 3b010:begin REG7=C0;REG6:0=REG7:1;CY=REG0;end/带进位循环右移 3b011:begin REG0=REG7;REG7:1=REG6:0;end/自循环左移 3b100:begin REG7=REG0;REG6:0=REG7:1;end/自循环右移 3b101:begin REG=data_in;end/加载待移数据 default:begin REG=REG;CY=CY;end/保持 endcase endassign data_out=REG;/移位后输出assign CN=CY;/移位后输出endmodule2、进行编译仿真,给出电路的时序逻辑波形。实验六:多层次设计一、 实验目的:学习加法器的功能与定义,学习Verilog语言,学习用图形方法设计多层次结构的Verilog设计。二、 实验内容:编写一个半减器和一个或门的Verilog代码,用图形的方法建立一个全加器并编译,仿真。三、 实验环境PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境。四、 实验原理算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。 1、半加器 半加法和全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。一位加法器的真值表见下表;由表6-1中可以看见,这种加法没有考虑低位来的进位,所以称为半加。半加器就是实现下表中逻辑关系的电路。 被加数A加数B和数S进位C0000011010101101表6-1 一位半加器真值表2、全加器 全加器能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号。根据它的功能,全加器可由半加器和或门组成,其结构图如图6-1所示。图6-1 全加器结构五、 实验步骤1、先建立一个工程,工程名为f_adder.v,在工程中建立两个Verilog文件,文件名分别是h_adder.v和or_2a.v。h_adder.v按半加器真值表进行编写,or_2a.v完成了或门的功能。2、分别为h_adder.v和or_2a.v两个文件设置成可调用的元件,选择File | Creat/_update | Creat Symbol Files for Current File,3、为工程建立顶层文件,选择File | New,新建文件,在对话框里选择Block Diagram/Schematic File,建立图形文件。4、在图形文件里,双击鼠标左键,出现Symbol对话框。选择Libraries | Project|h_adder添加h_adder元件。5、用相同的方法添加or2a元件6、在图形文件里,双击鼠标左键,出现Symbol对话框。选择Libraries | d:/altera/quartus60/libraries/ | primirives | pin | input 添加输入引脚。7、用相同的方法添加需要的输出引脚。8、按图6-1连接好个元件和引脚,然后分别在input和output引脚的PIN NAME上双击使其变为黑色,按图6-1修改引脚名。9、将此文件保存为与工程顶层文件名相同的名字f_adder.bdf做为此工程的顶层文件,并对此文件进行编译。10、编译好后进行仿真,给出仿真波形,分析是否满足全加器的逻辑。六、实验过程 1、代码 (1)半加器module h_adder(A,B,SO,CO); input A,B; output SO,CO; assign SO=AB; assign CO=A&B;endmodule(2)或门module or2a(a,b,c); input a,b; output c; assign c=a|b;endmodule2、图形文件3、编译通过4、仿真波形实验十:序列检测器的设计一、 实验目的:了解序列检测器的工作原理,掌握Verilog语言状态机的设计方法。二、 实验内容:用Verilog语言设计一个序列检测器,要求当检测器连续收到一组串行码(1110010)后,输出为1,其他情况输出为0,请通过QuartusII软件对其进行仿真。三、 实验环境PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境。四、 实验原理序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。五、 实验步骤1、首先打开Quartus II软件,新建一个工程,并新建一个Verilog HDL File。2、按照自己的想法,编写Verilog程序。3、对自己编写的Verilog程序进行编译并仿真。 六、实验过程1、代码module SCHK(input CLK,DIN,RST,output SOUT);parameter s0=40,s1=41,s2=42,s3=43, s4=44,s5=45,s6=46,s7=47;reg7:0ST,NST;always(posedge CLK or posedge RST) if(RST) ST=s0;else ST=NST;always(ST or DIN) begin/1110010串行输入,高位在前 case(ST) s0:if(DIN=1b1) NST=s1;else NST=s0;s1:if(DIN=1b1) NST=s2;else NST=s0;s2:if(DIN=1b1) NST=s3;else NST=s0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论