欢迎来到天天文库
浏览记录
ID:15880224
大小:632.50 KB
页数:51页
时间:2018-08-06
《硬件描述语言与fpga技术实验指导书(2012版)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《硬件描述语言与FPGA技术》实验指导书西北工业大学2012/10/1051目录实验一简单的组合逻辑设计3实验二简单分频时序逻辑电路的设计5实验三利用条件语句实现计数分频时序电路8实验四阻塞赋值与非阻塞赋值的区别11实验五用always块实现较复杂的组合逻辑电路15实验六在Verilog中使用函数19实验七在VerilogHDL中使用任务(task)22实验八利用有限状态机进行时序逻辑的设计26实验九利用状态机实现比较复杂的接口设计32练习十利用SRAM设计一个FIFO3951实验一简单的组合逻辑设计一、实验目的1.学习Quartus和ModSim两种EDA工具
2、的使用方法;2.掌握基本组合逻辑电路的实现方法;3.初步了解两种基本组合逻辑电路的生成方法;4.学习测试模块的编写;5.通过综合和布局布线了解不同层次仿真的物理意义。二、实验内容本次实验采用VerilogHDL语言设计一个可综合的数据比较器,其功能是比较数据a与数据b的结果,如果两个数据相同,则输出结果1,否则给出结果0;并写出测试模型,使其进行比较全面的测试。三、实验仪器、设备预装了开发工具ModelSimSE、synplify的PC机。四、实验原理1.组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合而与电路以前状态无关,而与其他时间的状态
3、无关。其逻辑函数如下:Li=f(A1,A2,A3……An)(i=1,2,3…m)其中,A1~An为输入变量,Li为输出变量。2.组合逻辑电路的特点归纳如下:①输入、输出之间没有返馈延迟通道;②电路中无记忆单元。3.组合逻辑设计示例:可综合的数据比较器。它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0。描述组合逻辑时常使用assign结构。注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。模块源代码://---------------compare.v-----------------modulecom
4、pare(equal,a,b);inputa,b;51outputequal;assignequal=(a==b)?1:0;//a等于b时,equal输出为1;a不等于b时,//equal输出为0。endmodule测试模块源代码:`timescale1ns/1ns`include"./compare.v"modulecomparetest;rega,b;wireequal;initialbegina=0;b=0;#100a=0;b=1;#100a=1;b=1;#100a=1;b=0;#100$stop;endcomparecompare1(.equal(equ
5、al),.a(a),.b(b));endmodule仿真波形如下:五、实验步骤1.建立工程文件,编写模块源码和测试模块,要求测试模块对源文件进行比较全面的测试;512.编译源码和测试模块,用测试模块对源文件进行测试,并进行仿真;3.观察综合后生成的文件和源文件的不同点和相同点。4.综合时采用不同的FPGA器件,观察综合后的结果有什么不同。六、实验报告要求1.要求实验报告中有编写模块源码和测试模块;2.要求实验报告中有综合后RTL图形;3.要求实验报告中有仿真后的波形;4.对课后思考题进行分析说明。七、实验注意事项1.采用Altera公司的CycloneII系列的
6、EP2C35型FPGA作为建立工程、代码编译、综合库时使用的库器件;2.综合使用synplify工具,布局布线使用quartusII自带工具;3.仿真使用ModelSim工具。八、思考题1.课本练习一的测试方法二中,第二个initial块有什么用?它与第一个initial块有什么关系?2.如果在第二个initial块中,没有写出#10000或者$stop,仿真会如何进行?3.比较两种测试方法,哪一种更全面?51实验二简单分频时序逻辑电路的设计一、实验目的1.掌握条件语句在简单时序模块设计中的使用;2.掌握verilog语句在简单时序模块设计中的使用;3.学习在V
7、erilog模块中应用计数器;4.学习测试模块的编写、综合和不同层次的仿真。二、实验内容1.使用always块和@(posedgeclk)或@(negedgeclk)的结构来表述时序逻辑,设计1/2分频的可综合模型。得到如下波形图:2.对模块进行RTL级仿真、综合后门级仿真,布局布线仿真;三、实验仪器、设备预装了开发工具synplify、ModelSimSE的PC机。四、实验原理1.使用always过程赋值语句对上升沿进行响应,当时钟信号上升沿到来时,系统判断清零信号是否为0,如果为0,则clk_out信号清零,否则clk_out信号翻转clk_out=~clk
8、_out。2.系统1/2
此文档下载收益归作者所有