随课实验是一种时尚

在物联网与人工智能时代,新技术层出不穷,人工智能对高速数据处理和高速计算提出了新的需求。数字电路课程作为大学的专业基础课,完全可以把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. 实现彩虹效果呼吸灯,拓展功能:用按键控制呼吸频率、单灯或双灯同步等功能。(选做)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181105B00G5900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券