严海洲
摘要:组合逻辑电路设计实验是《数字逻辑》课程的重要实验项目。教师通过便捷、紧跟业界技术发展的口袋实验室,提出一个基础的组合逻辑电路设计实验,让学生在掌握基础实验的内容后进一步自主设计实验内容。教师在课堂上的主要工作随之转移到引导学生自主设计实验,延伸学生的认识和思维过程、引导和开发学生的创新能力。从而培养嵌入式专业方向本科生的实践技能和创新思维。
关键词:口袋实验室;数字逻辑;组合逻辑电路;嵌入式系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0268-03
口袋实验室,又称无墙实验室,就是让学生人手一个迷你“口袋实验箱”,上课带来、下课带走,课程结束时归还。学生有了一个小的实验平台,就可以结合课程内容,随时随地进行课程实验;同时,激荡在学生头脑中的创新想法可以即时得到验证,激发他们主动学习的兴趣。
口袋实验室这种形式使实验设备突破了实验室的限制、实验课时的限制,能够把最新的技术补充到学生的课余学习中,让学生随时随地都能进行实验,从而最大程度地实现了实验室的开放。
目前口袋实验室理念在国内多所高校已得到广泛的认可和贯彻,如清华大学、北京大学、哈尔滨工业大学、复旦大学、同济大学、上海交通大学、东南大学、华中科技大学等都建起了数量、规模各异的口袋实验室。
本组合逻辑电路设计就是基于Xilinx(赛灵思公司)Basys3口袋实验室的。在性能更好的NEXYS4或ZYBO实验板上也可实现。
1 口袋实验室之核心硬件Basys3
Basys3 实验板(见图1)是一款采用Xilinx最新7系列的数字电路入门级开发平台,该平台主芯片为Xilinx Artix系列中的最小型号 XC7A35T。它包含5200个slice资源,相当于33,280个逻辑单元。每个slice包含4个6输入查找表(LUT),8个触发器 。容量为1800kb的块状RAM 以及5个时钟管理单元,每个单元带有一个锁相环。Basys3同时也是一款入门级的FPGA实验板,专门针对Vivado Design Suite而设计,具有Xilinx Artix-7 FPGA架构。Basys3包含了所有Basys系列板卡的标准功能:完备的硬件规格,大 量的板载IO设备,所有需要FPGA支持的电路,以及免费的开发工具,上手即用。
采用Basys3 可以实施更贴近嵌入式方向专业要求的数字逻辑实验项目,形成符合嵌入式方向专业要求的数字逻辑实验课程。可解决现有《数字逻辑》实验课程的教学要求与嵌入式方向专业要求相比有些偏低的问题。同时可以解决现有面向嵌入式方向的基础实验课程实验平台各异,实验内容不够贯通的问题。
2 口袋实验室之核心软件Vivado
赛灵思在全球业界第一个发货和量产28nm 7系列器件后,2012年又推出了“Vivado”这一全新的FPGA设计套件,很可能在将来取代已经面世18年之久的赛灵思ISE设计套件。Vivado的推出,不仅仅是让设计的界面更加漂亮(如图2所示),更重要的是它带给行业的那种体现在设计手段和设计方法上的的创新。众所周知,对于电子设计工程师来说,一方面要求FPGA能实现所有的数字系统功能,包括:数字逻辑、嵌入式系统和数字信号处理等等;另一方面又要求基于FPGA的设计就像他们使用“C”语言给CPU、MCU编程那样的简单。Vivado将这两个看起来相互矛盾的梦想变成了现实。
在Vivado 2014.3环境下如同前期的ISE环境,可以非常方便地运用Verilog HDL语言的编程开发流程,包括源程序的输入、编译、模拟仿真及程序下载。
通过学习Verilog硬件描述语言,以及利用Verilog HDL进行数字电路设计和FPGA开发的方法。可让学生初步掌握代表当今数字逻辑设计前沿的FPGA开发的设计流程。除基本组合逻辑电路实验外,还可以追加时序逻辑电路的设计实验、。
3 口袋实验室之组合逻辑电路设计实验
本实验所用口袋实验室为Basys3电路板,板上的LED灯是共阴极的连接方式,当输入高电平‘1时,LED亮;当拨动开关靠近数字标称端输出为低电平‘0。
3.1 简单门电路的实现
在数字电路中,二输入与门电路、或门电路、非门电路、与非门电路、或非门电路和异或门电路的逻辑表达式如下所示,真值表如表1。
下面分别给出这些门电路的行为描述方式(Behavioral)和逻辑寄存器传输描述方式(Register Transfer Level,RTL)。可以看出,行为描述方式和逻辑表达式十分接近,而寄存器传输描述方式则是以真值表为依据进行编写的。 具体操作步骤如下:
(1) 利用向导,建立一个新项目,工程名为expe1,顶层文件名也指定为gate。
(2) 新建一个Verilog HDL文件。
(3) 在Verilog HDL文件中输入程序:
a 行为描述方式源程序:
module gate(a,b,c1,c2,c3,c4,c5,c6);
input a,b;
output c1,c2,c3,c4,c5,c6;
assign c1=a&b;
assign c2=a|b;
assign c3=~a;
assign c4=~(a&b);
assign c5=~(a|b);
assign c6=a^b;
endmodule
b 寄存器传输描述方式源程序:
module gate(a,b,c1,c2,c3,c4,c5,c6);
input a,b;
output c1,c2,c3,c4,c5,c6;
reg c1,c2,c3,c4,c5,c6;
always@(a or b) begin
case({a,b})
2b00:
begin
c1<=0;c2<=0;c3<=1;c4<=1;c5<=1;c6<=0;
end
2b01:
begin
c1<=0;c2<=1;c3<=1;c4<=1;c5<=0;c6<=1;
end
2b10:
begin
c1<=0;c2<=1;c3<=0;c4<=1;c5<=0;c6<=1;
end
2b11:
begin
c1<=1;c2<=1;c3<=0;c4<=0;c5<=0;c6<=0;
end
default:
begin
c1<=0;c2<=0;c3<=0;c4<=0;c5<=0; c6<=0;
end
endcase
end
endmodule
(1) 进行语法检查和综合编译。
(2) 编写testbench,进行时序仿真。
(3) 分配管脚,生成*.bit文件(管脚分配可参照后续实验结果部分)。
(4) 下载。
3.2 三态门电路的实现
在数字电路中,三态门电路是在普通门电路的基础上附加控制电路构成的。三态门主要用于可编程逻辑器件管脚的双向口设置。三态门的逻辑电路图如图3所示,真值表如表2。
根据三态门的逻辑电路图和真值表,不难看出三态门电路的基本工作原理是:当控制端口的输入使能信号EN=1,那么直接将输入端口的数据送到输出端口上;当控制端口的输入使能信号EN=0,那么这时输出端口呈高阻状态。 具体操作步骤如下:
(1) 利用向导,建立一个新项目,工程名为expe2,顶层文件名也指定为tri_gate。
(2) 新建一个Verilog HDL文件。
(3) 在Verilog HDL文件中输入程序:
module tri_gate(din,en,dout);
input din,en;
output dout;
reg dout;
always@(din or en) begin
if(en==1) dout<=din;
else dout<=1bz;
end
endmodule
(4) 进行语法检查和综合编译。
(5) 进行时序仿真。
(6) 重新分配管脚,生成*.bit文件(管脚分配可参照实验结果部分)。
(7) 下载。
3.3 实验结果
1) 两输入与门电路的管脚分配表和实验结果对照表见表3、表4。
2) 二输入或门电路、非门电路、与非门电路、或非门电路和异或门电路的管脚分配表和实验结果对照表见表5、表6。
3) 三态门电路的管脚分配表和实验结果对照表见表7、表8。
4 结束语
本组合逻辑电路设计是基于Xilinx(赛灵思公司)Basys3口袋实验室实现的,主要内容为简单门电路和三态门电路。在此口袋实验室的电路板上还可以实现编码/译码器,比较器,全加器等组合逻辑功能。项目中使用的口袋实验室由于其优秀的软、硬件平台,在本科教学中有多方面的应用价值。
1)在Vivado 2014.3环境下,可推动Verilog HDL基本语法的学习,有利于学生掌握Verilog HDL编程设计的基础。 而Verilog HDL和VHDL并称为业界最流行的两种硬件描述语言,其重要性不言而喻。
2)在本科嵌入式方向的《数字逻辑》、《计算机组成原理》、《计算机系统结构》三门课程间有一条衔接与贯通的主线:即由计算机组成基础部件到单/多周期CPU和中断/IO处理CPU,再到基本流水线CPU。本实验平台可直接应用于这三门课程。不仅能节约学生熟悉实验平台的时间,而且同一实验平台有利于他们温故而知新。
3)让嵌入式方向的学生开始学习满足较高专业需求的实验内容。打通面向嵌入式方向的基础实验课程的教学内容,有利于学生较系统、深刻地掌握满足专业要求的软硬件知识,锻炼他们的系统设计能力。
参考文献:
[1] 白中英,谢松云等.数字逻辑[M].6版.北京:科学出版社,2013.
[2] RichardE.Haskell著,郑利浩译.FPGA数字逻辑设计教程—Verilog[M].北京:电子工业出版社,2013.
[3] 何宾.Xilinx FPGA设计权威指南:Vivado集成设计环境[M].北京:清华大学出版社,2014.
[4] 何宾.Xilinx FPGA权威设计指南:Vivado 2014集成开发环境[M].北京:清华大学出版社,2015.
[5] 孟宪元.Xilinx新一代 FPGA设计套件:Vivado应用指南[M].北京:清华大学出版社,2014.