差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
实验1-1_2输入基本门电路 [2017/02/24 15:41]
zhijun
实验1-1_2输入基本门电路 [2017/02/24 16:55] (当前版本)
zhijun
行 1: 行 1:
-====== 实验1-2输入基本电路 ======+<WRAP center ​ 60%> 
 +====== 实验1.1 基本组合逻辑电路 ====== 
 +</​WRAP>​ 
 ===== 1.实验目的 ===== ===== 1.实验目的 =====
  
-  * 熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法// +  * 熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法 
-  * 通过实验理解基本门电路// +  * 通过实验理解基本门电路 
-  * 掌握用Verilog HDL数据流基本门电路的方法//+  * 掌握用Verilog HDL数据流基本门电路的方法
  
 ===== 2.实验任务 ===== ===== 2.实验任务 =====
  
-利用Verilog语言实现不同的2输入基本逻辑门。//+利用Verilog语言实现不同的2输入基本逻辑门。
  
 ===== 3.实验原理 ===== ===== 3.实验原理 =====
  
-// 与门,或门,与非门,或非门,异或门,同或门真值如下表所示:+ 与门,或门,与非门,或非门,异或门,同或门真值如下表所示: 
 + 
 +{{ :​2选1选择器逻辑单元真值表.png |}}  
 +   
 + ​原理图如下所示: 
 +  
 +{{ :​2选1输入电路原理图.png |}}  
  
-// 
  
 ===== 4.Verilog HDL建模描述 ===== ===== 4.Verilog HDL建模描述 =====
-程序清单gates.v 
  
-// +==== 程序清单gates.v ====
  
 +<code verilog>
 +// --------------------------------------------------------------------
 +// >>>>>>>>>>>>>>>>>>>>>>>>>​ COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<​
 +// --------------------------------------------------------------------
 +// File name    : gates.v
 +// Module name  : gates
 +// Author ​      : Step
 +// Description ​ : Logic gates
 +// Web          : www.stepfpga.com
 +// 
 +// --------------------------------------------------------------------
 +// Code Revision History :
 +// --------------------------------------------------------------------
 +// Version: |Mod. Date:   ​|Changes Made:
 +// V1.0     ​|2015/​11/​11 ​  ​|Initial ver
 +// --------------------------------------------------------------------
   module gates   module gates
   (   (
行 55: 行 79:
       assign ​ empty=8'​b1111_1111;​ //​led'​s defualt mode is lighted ​       assign ​ empty=8'​b1111_1111;​ //​led'​s defualt mode is lighted ​
     ​     ​
-  endmodule ​    ​+  endmodule ​
  
 +</​code> ​  
 +
 +==== 仿真程序清单gates_tb.v ====
 +
 +
 +<code verilog>
 +//​********************************************************
 +//
 +//   ​Copyright(c)2016,​ STEP FPGA 
 +//   All rights reserved
 +//
 +//   File name       : ​  ​gates_tb.v
 +//   ​Module name     : ​  ​gates_tb
 +
 +//   ​Author ​         :   STEP
 +//   ​Email ​          : ​  ​info@stepfpga.com
 +//   ​Data ​           :   ​2016/​08/​19
 +
 +//   ​Version ​        : ​  V1.0
 +//   ​Description ​    : ​  ​testbench module
 +//
 +//   ​Modification history
 +//   ​----------------------------------------------------------------------------
 +// Version ​      ​Data(2016/​08/​19) ​  V1.0
 +// Description ​  
 +//
 +//​********************************************************
 +//
 +//
 +//​*******************
 +//DEFINE MODULE PORT
 +//​*******************
 +`timescale 1ns/100ps
 +module gates_tb;
  
-===== 5.实验步骤 ​===== +reg a,b; 
-==== (1)新建工程 ==== +wire [5:0] led; 
-双击打开Lattice Diamond软件,点击File—New—Project新建工程,输入工程名称,指定工程保存目录,单击Next,选择设备如下:+initial  
 + begin  
 + a=0; 
 + b=0; 
 + #50; 
 + a=0; 
 + b=1; 
 + #50; 
 + a=1; 
 + b=0; 
 + #50; 
 + a=1; 
 + b=1
 + #50;  
 + end 
 +gates gates_tb_uut( 
 + .a (a)
 + .b (b),​ 
 + .led (led),​ 
 + .empty () 
 + ); 
 +endmodule
  
-  ​* Family选择MachXO2, +</​code> ​  ​
-  * Device选择LCMXO2-4000HC,​  +
-  * Performance grade选择4, +
-  * Package type选择CSBGA132, +
-  * Operating conditions选择Commercial, +
-  * Part Names为LCMXO2-4000HC-4MG132C。 +
-  * 选择综合工具Lattice LSE,完成。+
  
-==== (2)输入Verilog文件 ==== 
-点击File—New—File新建文件,类型选择Verilog Files,输入文件名称,选择保存路径,输入实验中的源代码后保存,编辑器会自动检查有无编辑错误,在下面的Output一栏会输出检查结果,如果有错误更正后重新保存直到没有报错为止。 
  
-==== (3)输入仿真文件 ==== 
-按照步骤2)新建一个Verilog仿真文件,输入实验例程中仿真文件的代码后保存。在软件File List一栏中,右键单击“仿真文件”—Include for—Simulation,​将文件设置为仿真文件(设置完成后文件图标的V会消失)。 
  
-==== (4)功能仿真 ==== 
  
-点击Tools选择Simulation Wizard或点击图标,按照仿真向导指示新建仿真工程, +===== 五实验步骤===== 
-  * 输入工程名称,选择工程目录,选择Simulator为Active-HDL, +\\
-  * Process Stage选择RTL, +
-  * Add and Reorder Source:确认参与仿真的文件列表,Next +
-  * Parse HDL files for simulation:软件会编译仿真文件,若报错需修改后重新仿真 +
-  * Summary:确认仿真工程信息,勾选Run simulatorAdd top-level signals to waveform display和Run simulation,然后Finish +
-  * 仿真软件会自动启动、运行仿真并显示仿真结果。查看仿真结果是否符合预期功能,如果不符合电路功能,则修改Verilog代码保存后,在Active-HDL中选择Design—Compile All 重新编译文件,编译通过后,在Simulation中重新开始仿真。+
  
-==== (5)综合 ==== +=== 1.新建工程 ​=== 
-Lattice Diamond软件的Process一栏第一项Synthesize Design进行综合(确仿真文件设置为simulation后不参与综合)综合结果会在下面的Output一栏中给出,如果有错误则修改Verilog文件后重新综合直至综合成功为止。+\\ 
 +双击{{:​diamond图标.png?​28|}}打开Lattice Diamond软件,**File—New—Project**新建工程,输入工程名称,指定工程存目录单击**Next**选择设备下:\\
  
-==== (6)分配引脚 ==== +  * **Family**选择**MachXO2**, 
-打开Tools—Spreadsheet View或是点击图标在Port Assignments一栏中对输入输出信号分配引脚+  * **Device**选择**LCMXO2-4000HC**,​  
 +  * **Performance grade**选择**4**, 
 +  * **Package type**选择**CSBGA132**, 
 +  * **Operating conditions**选择**Commercial**, 
 +  * **Part Names**为**LCMXO2-4000HC-4MG132C**。 
 +  * 选择综合工具**Lattice LSE**,完成\\
  
-==== (7)布局布线 ​==== +=== 2. 输入Verilog文件 ​===
-双击Process一栏的Map Design和Place & Route Design完成FPGA内部的布局布线。+
  
-==== (8)生成配置文件 ​==== +\\ 
-勾选并双击JEDEC File生成可下载的jed文件。+点击**File—New—File**新建文件,类型选择**Verilog Files**,输入文件名称,选择保存路径,输入实验中的源代码后保存,编辑器会自动检查有无编辑错误,在下面的**Output**一栏会输出检查结果,如果有错误更正后重新保存直到没有报错为止。\\ 
 +\\ 
 +=== 3. 输入仿真文件 ​=== 
 +\\ 
 +按照步骤**(2)**新建一个**Verilog**仿真文件,输入实验例程中仿真文件的代码后保存。在软件File List一栏中,右键单击“仿真文件”**—Include for—Simulation**,​将文件设置为仿真文件(设置完成后文件图标的V会消失)。\\ 
 +\\ 
 +=== 4. 功能仿真 === 
 +\\ 
 +点击**Tools**选择**Simulation Wizard**或点击图标,按照仿真向导指示新建仿真工程, 
 +  * 输入工程名称,选择工程目录,选择**Simulator**为**Active-HDL**, 
 +  * **Process Stage**选择**RTL**, 
 +  * **Add and Reorder Source**:确认参与仿真的文件列表,**Next** 
 +  * **Parse HDL files for simulation**:软件会编译仿真文件,若报错需修改后重新仿真 
 +  * **Summary**:确认仿真工程信息,勾选**Run simulator**、**Add top-level signals to waveform display和Run simulation**,然后**Finish** 
 +仿真软件会自动启动、运行仿真并显示仿真结果。查看仿真结果是否符合预期功能,如果不符合电路功能,则修改Verilog代码保存后,在**Active-HDL**中选择**Design—Compile All** 重新编译文件,编译通过后,在**Simulation**中重新开始仿真。 
 +\\ 
 +\\ 
 +=== 5. 综合 === 
 +\\ 
 +在Lattice Diamond软件的**Process**一栏,双击第一项**Synthesize Design**进行综合(确保仿真文件设置为**simulation**后不参与综合),综合结果会在下面的**Output**一栏中给出,如果有错误则修改Verilog文件后重新综合直至综合成功为止。 
 +\\ 
 +\\ 
 +=== 6. 分配管脚 === 
 +\\ 
 +打开**Tools—Spreadsheet View**或是点击图标{{::​分配管脚.png|}}在**Port Assignments**一栏中对输入输出信号分配引脚。 
 +\\ 
 +\\ 
 +=== 7. 布局布线 === 
 +\\ 
 +双击**Process**一栏的**Map Design**和**Place & Route Design**完成**FPGA**内部的布局布线。 
 +\\ 
 +\\ 
 +=== 8. 生成配置文件 === 
 +\\ 
 +勾选并双击**JEDEC File**生成可下载的**jed**文件。 
 +\\ 
 +\\ 
 +=== 9. 下载 === 
 +\\ 
 + ​打开**Tools—Programmer**或单击图标,根据下图选择设备和下载文件,点击上面的绿色按钮**Program**,下载**jed**文件到FPGA,下载成功后**Status**状态显示**PASS**(下载前确保下载器驱动成功安装)。 
 +{{:​下载成功.png|}} 
 +观察开发板现象
  
-==== (9)下载 ==== 
- ​打开Tools—Programmer或单击图标,根据下图选择设备和下载文件,点击上面的绿色按钮Program,下载jed文件到FPGA,下载成功后Status状态显示PASS(下载前确保下载器驱动成功安装)。