Diamond3.5软件的使用--(2)新建工程并生成可烧录文件

相关参考:https://www.stepfpga.com/doc/lattice_diamond%E7%9A%84%E4%BD%BF%E7%94%A8

====1. 新建工程并导入verilog文件 ====

1.双击运行Diamond软件,首先新建工程:选择File →New →Project →Next

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第1张图片

2.工程命名:我们将新工程命名为LEDshining,工程目录G:/LEDshining,然后点击Next

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第2张图片

3.添加相关设计文件或约束文件(如果已经有设计文件和约束文件,我们可以选择添加进工程):这里我们新建工程,没有相关文件,不需添加,直接Next

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第3张图片

4.器件选择:按照Step FPGA开发板器件LCMXO2-4000HC-4MG132C配置,Next(器件型号必须确认正确,否则在管脚设置时会报错)

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第4张图片

5.选择综合工具:Synplify Pro(第三方)和Lattice LSE(原厂)都可以,我们就使用Lattice LSE,直接NextDiamond3.5软件的使用--(2)新建工程并生成可烧录文件_第5张图片

6.工程信息确认:上面选择的所有信息都在这里,确认没有问题,直接FinishDiamond3.5软件的使用--(2)新建工程并生成可烧录文件_第6张图片

7.工程已经建好,我们下面新建verilog设计文件, 再input files文件夹点击鼠标右键→Add →New File

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第7张图片

8.选择Verilog Files(选择自己使用的硬件描述语言),Name填写LED_shining,然后点击New,这样我们就创建了一个新的设计文件LED_shining.v,然后我们就可以在设计文件中进行编程了

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第8张图片

 

9.程序源码已经准备好,如下,将代码复制到设计文件LED_shining.v中,并保存。

// --------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// --------------------------------------------------------------------
// Module: LED_shining
// 
// Author: Step
// 
// Description: LED_shining
// 
// Web: www.stepfpga.com
// 
// --------------------------------------------------------------------
// Code Revision History :
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2015/11/11   |Initial ver
// --------------------------------------------------------------------
module LED_shining
(
input clk_in,             //输入系统12MHz时钟
input rst_n_in,           //输入复位信号
output led1,              //输出led1
output led2               //输出led2,与led1取反
);
parameter CLK_DIV_PERIOD=12_000_000; //分频常数定义
reg clk_div=0;            //定义reg型变量,用作分频后时钟输出
//wire led1,led2;           //wire型变量定义,可以省略,verilog里默认是wire型
assign led1=clk_div;      //持续赋值语句,将分频后时钟赋给led1,产生闪烁效果
assign led2=~clk_div;     //取反赋值给led2,与led1形成交替闪烁
//偶数分频电路 clk_div = clk_in/CLK_DIV_PERIOD, 占空比50%,CLK_DIV_PERIOD必须为偶数
reg[23:0] cnt=0;                 //分频用的计数器,2**cnt-1>CLK_DIV_PERIOD,计数器最大值要大于分频常数
always@(posedge clk_in or negedge rst_n_in)
begin
	if(!rst_n_in) 
		begin
			cnt<=0;
			clk_div<=0;
		end
	else begin
		if(cnt==(CLK_DIV_PERIOD-1)) cnt<=0;
		else cnt<=cnt+1'b1; 
		if(cnt<(CLK_DIV_PERIOD>>1)) clk_div<=0;
		else clk_div<=1;
	end
end
endmodule

 

==== 2.设计综合====

2.1程序编写完成,需要综合,在软件左侧Process栏,选择Process,双击Synthesis Design,对设计进行综合,综合完成后Synthesis Design显示绿色对勾(如果显示红色叉号,说明代码有问题,根据提示修改代码),如图

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第9张图片

 

 

2.2通过综合工具,我们的代码就被综合成了电路,生成的具体电路,我们可以通过选择Tools → Netlist Analyzer查看(仅限Lattice的综合工具,第三方综合工具无法查看),如图

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第10张图片Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第11张图片

 

2.3综合生成电路后,分配管脚,选择Tools → Spreadsheet View,按照下图分配FPGA管脚,然后设置IO_TYPE为LVCMOS33,保存,界面如下

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第12张图片Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第13张图片

 

2.4在软件左侧Process栏,选择Process,直接双击Export Files,所有布局布线输出依次完成,结束后,所有选项显示绿色对勾。到这里完成了第一个程序流文件的生成。

Diamond3.5软件的使用--(2)新建工程并生成可烧录文件_第14张图片

你可能感兴趣的:(FPGA,fpga/cpld)