关闭
img
返回首页  |  设为首页  |  加为收藏  |  中文  |  English  |  繁体
首页     |     关于我们     |     新闻动态     |     产品展示     |     教育培训     |     大学计划     |     设计服务     |     我要报名     |     联系方式
新闻动态
大学计划
教育培训
行业动态
产品搜索
联系方式
  依元素科技有限公司
电话 : 010-8275-7632
传真 : 010-6216-6151
地址:北京市海淀区北三环西路32号恒润国际大厦801
邮箱:sales@e-elements.com
 
行业动态 你的当前位置 : 首页>>新闻动态>>行业动态
【玩转EGO1系列教程七】:使用EGO1动手学习数字逻辑系列(2)
发布时间:2017/11/20  |  点击次数:90 
【玩转EGO1系列教程七】:使用EGO1动手学习数字逻辑系列(2)
 
      当前,使用FPGA来进行数字逻辑课程实验以及相关动手实践、创新已经被越来越多的老师和学生所接受。学习数字逻辑基础课的同时,掌握FPGA设计的基本流程和技巧也会对后续的学习以及工作有莫大的好处。
 
     EGO1,这一最新的Xilinx口袋实验平台正是为此而生!各位对EGO1还不是很熟悉的小伙伴们,请点击这里详细阅读EGO1口袋实验平台的详细介绍。
 

 
EGO1配套教材-《基于Xilinx Vivado的数字逻辑实验教程》
 
     针对初学上手的小伙伴们,EGO1口袋实验平台推荐有多部参考教材。今天要介绍的就是一本来自于哈尔滨工业大学电工电子实验教学中心电子学实验室主任廉玉欣老师精心编写的-《基于Xilinx Vivado的数字逻辑实验教程》。
 
      本书由依元素科技提供技术支持,以Xilinx公司最新的Vivado FPGA集成开发环境为基础,将数字逻辑设计与硬件描述语言Verilog HDL相结合,循序渐进地介绍了基于Xilinx Vivado的数字逻辑实验的基本过程和方法。书中包含了大量的设计实例,内容翔实、系统、全面。

 
目前该书已在各大平台以及实体书店有售,使用EGO1学习数字逻辑以及FPGA设计的小伙伴们可不要错过噢!
 
今日的EGO1动手练习
 
今天我们EGO1动手练习部分要做的是一个4位比较器实验。这个实验在参考教材《基于Xilinx Vivado的数字逻辑实验教程》的第4章第3节,是组合逻辑实验部分的4位比较器实验,结果有大于、等于和小于三种情况。
 
4位比较器可以由4个1位比较器构建。本例中使用任务(Task)创建1位比较器,然后在always语句中调用任务实现4位比较器。
 
我们通过编写Verilog代码comp4t.v模块来完成这个比较器逻辑电路,然后可以通过编写Testbench文件comp4t_tb.v来给这个比较器逻辑电路施加测试激励信号,并进行仿真。
 
4位比较器的硬件描述Verilog代码如下:
 
1  module comp4t(
2     input wire [3:0] x,
3     input wire [3:0] y,
4     output reg gt,   //x大于y
5     output reg eq,   //x等于y
6     output reg lt    //x小于y
7    );
8        //内部变量
9     reg [4:0] G;
10     reg [4:0] L;
11     reg [4:0] E;
12     integer i;
13   
14     always @ (*)
15     begin
16        G[0] = 0;
17        L[0] = 0;
18        for(i=0;i<4;i=i+1)
19            comp1bit(x[i],y[i],G[i],L[i],G[i+1],L[i+1],E[i+1]);
20            gt=G[4];
21            eq=E[4];
22            lt=L[4];
23     end
24        task comp1bit(
25        input x,
26        input y,
27        input Gin,
28        input Lin,
29        output Gout,
30        output Lout,
31        output Eout
32        );
33          begin
34            Gout=x & ~y | x& Gin | ~y & Gin;
35            Eout=~x & ~y & ~Gin & ~Lin | x & y & ~Gin & ~Lin;
36            Lout=~x & y | ~x & Lin | y & Lin;
37          end
38          endtask
39   endmodule
 
4位比较器电路的仿真激励如下所示:
 
1  module comp4t_tb( );
2      reg [3:0] x;
3      reg [3:0] y;
4      wire gt;
5      wire eq;
6      wire lt;
7      initial
8          begin
9          x = 0;
10         y = 4'b1001;
11         repeat(100)
12             begin
13                 #10 x = x + 1'b1;
14             end
15         #10 $stop;
16        end
17         comp4t U1(
18             .x(x),
19             .y(y),
20             .gt(gt),
21             .eq(eq),
22             .lt(lt)
23             );
24  endmodule
 
关于实验原理部分的详细讲解,有兴趣的小伙伴们可以查阅参考书的对应章节。
 
实验源文件准备妥当之后,我们就可以开始动手实践啦。
 
首先当然是打开Vivado工具咯,这里我们使用最新的2017版本的Vivado开发环境。什么?你还没有安装Vivado么?表担心啦,我们提供有详细的Vivado安装流程。
 
Vivado开发环境成功打开后,它的主界面如下。
 

 
接下来就让我们开始使用Vivado完成这个实验吧。如果有对Vivado操作不熟悉的小伙伴们也不用担心啦,我们提供有STEP-BY-STEP的指导噢。
 
首先,我们进行实验仿真。下面是仿真的结果。

 
同时,我们可以在Vivado中查看我们RTL所对应的原理图。
 

 
在完成Vivado FPGA综合流程后,我们还可以看到这段电路综合后的原理图。
 

 
最后,我们完成设计的整体实现,可以看到这段电路在实际的FPGA芯片中的线路图。

 
接下来,就可以在硬件平台上下载验证啦。当然,我们也有使用EGO1口袋实验平台来进行硬件下载的详细步骤介绍哟。
 
硬件配置完成后,我们就可以在EGO1平台上来验证我们的设计啦,这个设计中我们将EGO1开发板的八个拨码开关分别作为x和y的输入,拨码开关上方的LED灯作为结果输出。比如,我们将SW0和SW7拉高(x=4’b0001,y=4’b1000),运算结果就直接显示在LED上面了。好啦,各位小伙伴们大家看看我们的电路计算正确么?
 

 
我们欢迎有意向合作新工科课程改革项目的老师加入Xilinx大学计划,关于联合实验室建设、Vivado软件捐赠、校企共建课程、FPGA师资培训、学生竞赛、学生讲座等联系我们。
 
联系方式:edu@e-elements.com
 

欢迎关注依元素科技公众号

  关闭窗口
 上一条:【玩转EGO1系列教程八】:使用EGO1动手学习数字逻辑系列(3)
 下一条:【玩转EGO1系列教程六】:使用EGO1动手学习数字逻辑系列(1)
地址: 北京市海淀区北三环西路32号恒润国际大厦801   邮编: 100086   邮箱: sales@e-elements.com
版权所有 © 2000-2011   依元素科技有限公司  京ICP备05005710号      Designed By Chinweb.net