北京科技大学 计算机与通信工程学院
硬件描述语言实验报告
专 业:
班 级:
学生姓名:
学 号:
指导教师:
实验地点:
实验时间:
实验成绩:
计算机科学与技术
2017 年 月 日~ 月 日
________________________________
一、实验目的与实验要求
1 实验目的
(1)熟悉常用的EDA设计工具、设计流程,掌握前端设计要点;
(2)通过简单的逻辑功能模块的设计,加深对硬件描述语言的理解和对逻辑设计的认识;
(3)理解逻辑综合的概念,熟悉Verilog的编码风格,掌握可综合的逻辑设计; (4)训练组合逻辑设计、时序逻辑设计的能力,以及基本的设计验证能力。
2 实验要求
(1)在有限的实验课内学时可能难以较好完成所有实验内容,因此将实验板分组下发,要求在实验课之外抽时间完成剩余实验内容;
(2)对于每个实验都需要完成逻辑电路设计以及TestBench模块的编写,能够根据前仿真的波形图给粗结果分析;针对需要板子上验证的题目,需进一步给出相关控制逻辑的设计及板级验证说明。
(3)完成的每个实验需要在实验课内经指导教师或助教现场检查、解释波形及验证逻辑,回答指导教师提出的问题,以确保实验完成的质量;
二、实验设备(环境)及要求
实验室提供Windows 7操作系统下的Xilinx开发平台vivado2015.4环境,以及EGO开发板。
三、实验内容、步骤与结果分析
1 实验1 1.1 实验内容
设计一个周期为40个时间单位的时钟信号,其占空比为25%。使用always和initial块进行设计。将其在仿真0时刻的值初始化为0。
1.2 实验步骤
源代码: `timescale 1ns / 1ps module clock_40(); output clock; endmodule
1.3 结果分析
Text bench 设计: module clock_40_tb( ); reg clock; initial clock<=0; always begin
#30 clock<=1; #10 clock<=0; end endmodule
周期为40个时间单位的时钟信号仿真波形截图
验证说明:可以由图中看出该时钟产生占空比为25%的时钟波形。
2 实验2 2.1 实验内容
设计一个1位的二选一多路选择器 方法一:使用门级描述实现 方法二:使用逻辑表达式实现 方法三:使用if条件语句实现
2.2 实验步骤
方法一使用门级语言实现: module mul21_1( input a, input b, input sel, output out);
wire a1,a2,unsel; not(unsel,sel); and(a1,unsel,a); and(a2,sel,b); or(out,a1,a2); endmodule
方法二使用逻辑表达式实现 module mul21_2( input a, input b, input sel, output out ); reg out;
always@(a or b or sel) begin
assign out=sel?b:a; end endmodule
方法三 使用if表达式实现 module mul21_3( input a, input b, input sel, output out); reg out;
always @(a or b or sel) begin if(sel) out=b; else out=a; end