当前位置:   article > 正文

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

diamond 生成烧录文件

相关参考:lattice_diamond的使用 [小脚丫STEP开源社区]

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

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

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

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

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

5.选择综合工具:Synplify Pro(第三方)和Lattice LSE(原厂)都可以,我们就使用Lattice LSE,直接Next

6.工程信息确认:上面选择的所有信息都在这里,确认没有问题,直接Finish

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

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

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

  1. // --------------------------------------------------------------------
  2. // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
  3. // --------------------------------------------------------------------
  4. // Module: LED_shining
  5. //
  6. // Author: Step
  7. //
  8. // Description: LED_shining
  9. //
  10. // Web: www.stepfpga.com
  11. //
  12. // --------------------------------------------------------------------
  13. // Code Revision History :
  14. // --------------------------------------------------------------------
  15. // Version: |Mod. Date: |Changes Made:
  16. // V1.0 |2015/11/11 |Initial ver
  17. // --------------------------------------------------------------------
  18. module LED_shining
  19. (
  20. input clk_in, //输入系统12MHz时钟
  21. input rst_n_in, //输入复位信号
  22. output led1, //输出led1
  23. output led2 //输出led2,与led1取反
  24. );
  25. parameter CLK_DIV_PERIOD=12_000_000; //分频常数定义
  26. reg clk_div=0; //定义reg型变量,用作分频后时钟输出
  27. //wire led1,led2; //wire型变量定义,可以省略,verilog里默认是wire型
  28. assign led1=clk_div; //持续赋值语句,将分频后时钟赋给led1,产生闪烁效果
  29. assign led2=~clk_div; //取反赋值给led2,与led1形成交替闪烁
  30. //偶数分频电路 clk_div = clk_in/CLK_DIV_PERIOD, 占空比50%,CLK_DIV_PERIOD必须为偶数
  31. reg[23:0] cnt=0; //分频用的计数器,2**cnt-1>CLK_DIV_PERIOD,计数器最大值要大于分频常数
  32. always@(posedge clk_in or negedge rst_n_in)
  33. begin
  34. if(!rst_n_in)
  35. begin
  36. cnt<=0;
  37. clk_div<=0;
  38. end
  39. else begin
  40. if(cnt==(CLK_DIV_PERIOD-1)) cnt<=0;
  41. else cnt<=cnt+1'b1;
  42. if(cnt<(CLK_DIV_PERIOD>>1)) clk_div<=0;
  43. else clk_div<=1;
  44. end
  45. end
  46. endmodule

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

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

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

netlist_analyzer

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/453697?site
推荐阅读
相关标签
  

闽ICP备14008679号