在物联网与人工智能时代,新技术层出不穷,人工智能对高速数据处理和高速计算提出了新的需求。数字电路课程作为大学的专业基础课,完全可以把FPGA引入教学,理论与实践相融合的教学模式才更适应时代的节奏。经过几年的尝试,一个小小的口袋型FPGA开发板,可以极大地调动学生的学习积极性和学习热情,使数字电路课程不再枯燥,也使这个课程具有了鲜明的时代气息。
学生手里有的玩,他们就高兴,教学效果就好。
有了这款FPGA开发板,数字电路书本上的中的所有电路,比如3-8译码器、加法器、计数器的电路实现和功能测试都可以用这款板子来验证。实际上Quartus软件提供了强大的仿真功能,所有实验都可以通过观察Quartus软件综合出来的电路和仿真波形去进行验证,但为了增加初学者的兴趣,使实验结果更为直观,我们在FPGA开发板上增加了一定量的输入和输出资源。输入资源包括:2路按键、8路拨码开关,输出资源包括:8个用户LED、2个RGB彩色LED、2位7段数码管。例如,在FPGA中实现3-8译码器时,就可以用拨码开关模拟地址输入,同时用8个LED来显示结果。
标准FPGA开发板
由于FPGA芯片价格都不便宜,开发成本高,所以很多FPGA开发板动辄就上千元的价格,我们这款口袋型FPGA开发板再压缩成本,企业售价也得在190元左右。为满足低价需求,北邮学生又研制了一款超低价FPGA开发板,企业销售价估计在38元左右。
超低价FPGA开发板
从知识体系上讲,可编程逻辑器件和Verilog语言等内容是放在数字电路课程后面的章节,排在时序逻辑电路之后。但在实际教学中,可以将Verilog语法通过各章的实例逐步引入,初期学生并不需要知道FPGA的内部结构,只需理解它是一个载体即可,这段时间的主要任务是用FPGA验证门电路的逻辑关系,当然,也顺便熟悉了FPGA的开发流程和思想。
两款FPGA开发板合照
Verilog HDL语法简单,与C语言很相似,学生入手速度很快,结合实例去讲解Verilog,比专门讲语言和语法有趣,也更容易掌握。
因为加入基于FPGA的课内实验,使数字电路课程有了“浴火重生”的感觉,学生们积极性很高,老师也能把传统的基础理论跟最新的实践应用融合在一起,使整个课程充满了时代的气息,充满了朝气。
作业
设计一个3-8译码器74LS138,并用该译码器实现全加器。
//全加器adder.v
module adder (sum,co,a,b,c,en);
output sum;
input [2:0]en;
output co;
input a,b,c;
wire [7:0]out;
decoder38 m1(.data_in(),.data_out(out),.enable(en)) ;
gate m2(.a(out),.b(sum),.c(co));
endmodule
//译码器输出后的处理门电路gate.v
module gate(b,c,a);
input [7:0]a;
output b,c;
wire b,c;
assign b=~(a[1]&a[2]&a[4]&a[7]);
assign c=~(a[3]&a[5]&a[6]&a[7]);
endmodule
//带使能端的3-8译码器decoder38.v
module decoder38 (data_out,data_in,enable) ;
input [2:0] data_in; //3位输入
input [2:0] enable; //使能端
output [7:0] data_out;//8位输出
reg [7:0] data_out;
always @(data_in or enable)
begin
if ((enable[0]&~enable[1]&~enable[2])==1)
case (data_in )
default:data_out=8'bxxxxxxxx;
endcase
else
end
endmodule
谁能把上述代码改的更规范一些?
重磅!全新版摇摇棒惊现江湖!
为降低11.11购买力,特将数电期中考试安排在11月14日,望周知。
FPGA实验作业
第六周(10.29—11.04):
1. 设计一个3-8译码器74LS138,并用该译码器实现全加器。
2. 设计一个具有清零功能的按键计数器,对按键进行计数并显示。
第七周(11.05—11.11):
1. 设计一个4位奇偶校验器。
2. 设计一个4位数据分配器。
3. 实现彩虹效果呼吸灯,拓展功能:用按键控制呼吸频率、单灯或双灯同步等功能。(选做)
领取专属 10元无门槛券
私享最新 技术干货