欢迎来到天天文库
浏览记录
ID:35456551
大小:3.58 MB
页数:20页
时间:2019-03-24
《verilog实验--实验二:组合逻辑电路设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验二:组合逻辑电路设计一、实验目的:学习组合逻辑电路,学习译码器的功能与定义,学习Verilog语言。二、实验内容:编写3-8译码器的Verilog代码并仿真,编译下载验证。三、实验环境PC机(Pentium100以上)、AlteraQuartusII6.0CPLD/FPGA集成开发环境、AR1000核心板、SOPC-MBoard板、ByteBlasterII下载电缆。四、实验原理译码是编码的逆过程,它的功能是将特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路成为译码器。译码器可分为两种类型,一种是将一系列代码转换成与之一一对应得有效信号。这种译码器可
2、以称为唯一地址译码器,它常用于计算机中对存储器单元地址的译码,即将每一个地址代码换成一个有效信号,从而选中对应的单元。另一种是将一种代码转换成另一种代码,所以也称为代码变换器。五、实验过程1.代码2.编译成功3.波形simulation4.仿真波形图实验三:时序逻辑电路设计(一)一、实验目的:学习时序逻辑电路,学习计数器的原理,学习Verilog。二、实验内容:编写一个带预置输入,清零输入,可加/可减计数器的Verilog代码并仿真。三、实验环境PC机(Pentium100以上)、AlteraQuartusII6.0CPLD/FPGA集成开发环境。四、实验原理计数器是数字系
3、统中用的较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时等功能。计数器的种类很多。按脉冲方式可以分为同步计数器和异步计数器;按进制可以分为二进制计数器和非二进制计数器;按计数过程数字的增减,可分为加计数器、减计数器和可逆计数器。本实验就是设计一个4位二进制加减法计数器,该计数器可以通过一个控制信号决定计数器时加计数还是减计数,另外,该寄存器还有一个清零输入,低电平有效。还有一个load装载数据的信号输入,用于预置数据;还有一个C的输出,用于计数器的级联。其功能表如表3-1所示;管脚定义如图3-1所示。RCLKloadup_down状态Lxxx置零Hx
4、Lx置数H↑H0减法H↑H1加法表3-14位二进制加减法计数器功能表五,实验过程1,代码modulecounter4(load,clk,c,DOUT,clr,up_down,DIN);inputload;inputclk;wireload;inputclr;inputup_down;wireup_down;input[3:0]DIN;wire[3:0]DIN;outputc;regc;output[3:0]DOUT;wire[3:0]DOUT;reg[3:0]data_r;assignDOUT=data_r;always@(posedgeclkorposedgeclrorp
5、osedgeload)beginif(clr)data_r<=0;elseif(load)data_r<=DIN;elsebeginif(up_down)beginif(data_r==4'b1111)begindata_r<=4'b0000;c=1;endelsebegindata_r<=data_r+1;c=0;endendelsebeginif(data_r==4'b0000)begindata_r=4'b1111;c=1;endelsebegindata_r<=data_r-1;c=0;endendendendendmodule编译通过仿真波形图实验五:通用移位寄存
6、器的设计一、实验目的:学习时序逻辑电路,学习寄存器的原理,学习Verilog语言。二、实验内容:编写一个8位的模式可控的移位寄存器的Verilog代码并编译,仿真。三、实验环境PC机(Pentium100以上)、AlteraQuartusII6.0CPLD/FPGA集成开发环境。四、实验原理本实验就是设计一个模式可控的移位寄存器,该寄存器可以对8位信号通过MD输入端控制移位输出的模式,其功能表如表5-1所示。CLKMD状态↑001带进位循环左移↑010带进位循环右移↑011自循环左移↑100自循环右移↑101加载待移数据↑其他保持表5-1模式可控移位寄存器功能表五、实验步骤
7、1、按照模式可控的移位寄存器的功能表编写Verilog代码。moduleyinwei(clk,data_in,data_out,C0,MD,CN);inputclk,C0;//时钟和进位输入input[7:0]data_in;//待加载移位的数据input[2:0]MD;//移位模式控制output[7:0]data_out;//移位数据输出outputCN;//进位输出reg[7:0]REG;regCY;always@(posedgeclk)begincase(MD)3'b001:beginREG[0]<=C0;
此文档下载收益归作者所有