利用Quartus Prime实现DE2-115流水灯

这篇具有很好参考价值的文章主要介绍了利用Quartus Prime实现DE2-115流水灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FPGA(1)在DE-115上电亮流水灯


前言

  1. 什么是fpga?
    FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点
  2. 我们需要哪些工具?
    1.DE2-115开发板利用Quartus Prime实现DE2-115流水灯 2. Quartus Prime软件

一、Quartus Prime基础步骤

  1. 建立新的设计项目
    进入主界面,选择File->New Project Wizard命令,点击next至项目界面,选择保存的位置,并输入项目名和顶层实体文件名。选择目标器件Cyclone IV E,再设置筛选条件,选择package中的FBGA,Pin count选择780,Core speed grade选择7,target选择specfic device selected 那个选项,再在最下方的devices目录里选择EP4CE115F29C7
    利用Quartus Prime实现DE2-115流水灯再点击next至finish

  2. 输入设计文件
    File->New的design files中 选择verilog HDL Flies,输入设计文件,输入完成后保存,文件名输入waterlight.v,勾选下方的add file to current project,单击保存。

  3. 分配引脚
    手工分配引脚的流程为assignments中Pin Planner,但在分配引脚前最好进行一次全编译(progressing中的start compilation。分配引脚的方式是双击端口旁的location,再右键点击箭头,或者手动输入引脚。该例中引脚如下利用Quartus Prime实现DE2-115流水灯
    利用Quartus Prime实现DE2-115流水灯

  4. 编译设计文件

  5. 编辑器件,测试功能
    使用JTAG编程模式对FPGA器件编程,测试功能。首先将开发板左下角的SW19拨到上方,选择tools中的programmer,将文件导入后,确认器件名为EP4CE115F29,并确认program小方框勾选,选择mode下拉列表框中的JTAG,单击左上角Hardward Setup,在弹出的窗口中选择USB-Blaster,单击start开始

二、文件部分

1.设计管脚

代码如下(示例):

module waterlight(input En,input CP,output reg [0:7] Out);//匹配8个灯,故宽度为8
reg [25:0] cnt;
reg cnt1;
reg Cn;
parameter cnt_max = 26'd49_999_999;//时钟的频率是50mhz,要实现几秒钟变一次就调到//相应时间,例子为1s每次

2.读秒部分

代码如下(示例):

always@(posedge CP or negedge En)//该always循环实现的是一秒钟的计数
   if(En==1'b0)
 	cnt<=26'd0;
   else if(cnt == cnt_max)
	cnt<=26'd0;
   else 
	cnt<=cnt + 1'b1;
always @(posedge CP or negedge En) //cnt每次为1代表到了一秒钟
   if(En==1'b0)
 	cnt1<=1'b0;
   else if(cnt == cnt_max-1'd1)
	cnt1<=1'b1;
   else 
	cnt1<=1'b0;

利用两个循环,用cnt1代表到1s时间

3.亮灯部分

代码如下(示例):

always @(posedge CP or negedge En)
	if(En==1'b0) begin
	  if(Dn==1'b1)                  //用 Dn来判断赋不同的值,1为亮,也就可以实现两个灯一起移动的选择
 	     Out <=8'b00000001;
	  else
	     Out <=8'b00000011;
	 end
   else begin
	    if (Out[0]==1'b1)//不用判断整个Out,只需要判断最边上的1,为1则表示需要改变方向,方向由Cn判断
		      Cn<=1'b1;
		 else if(Out[7]==1'b1)
		      Cn<=1'b0;
	      if (cnt1==1'b1) begin
		      if(Cn==1'b1)
			       Out<={1'b0,Out[0:6]};//右移
			    else
			       Out<={Out[1:7],1'b0};//左移
			 end
   end


endmodule


利用两个循环,用cnt1代表到1s时间文章来源地址https://www.toymoban.com/news/detail-469162.html


反思和易错点

  1. 管脚位置需要到网上查询清楚,并不是呈顺序分布,可以参考其他博主的说明书
  2. 该灯可以选择两个灯一起移动,但是赋值的时候不可多次任意赋值,可能会出问题
  3. 可以使用ModelSim进行仿真
  4. 使用无阻塞的<=赋值

到了这里,关于利用Quartus Prime实现DE2-115流水灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Quartus II使用——3 LED流水灯

    1.学习要求 目标:实现8个LED灯(LED 0~LED 7)间隔100ms依次点亮,然后全部熄灭,再依次点亮。 2.仿真分析 clk是50Mhz时钟,那么一个周期为(1X10^9)/(50X10^6)=20ns,1秒对应50000000个时钟周期,100ms=5000000个时钟周期。 复位时,LED灯全部熄灭    :led=8\\\'hff 点亮第1个LED灯               

    2023年04月22日
    浏览(24)
  • FPGA新起点V1开发板(三)——Quartus II软件的使用(流水灯的烧录以及sof转jic的方法记录)

    先创建一个工程文件夹 flow_led 再创建四个子文件夹 doc存放工程的设计文档或者其他一些datasheet文档、数据手册 par存放工程文件 rtl存放设计文件,也就代码 sim存放工程的仿真文件 第一个第四个可以为空,但是做此可以有良好的习惯 这是打开一个工程向导 这是选择FPGA的芯片

    2024年02月04日
    浏览(31)
  • 51单片机---编程实现流水灯----键盘控制数码管显示--利用74LS164扩展并行输出口---定时中断方式驱动一个数码管

    目录 基于51单片机,用c语言编程实现流水灯 代码: 使用C语言编写的基于51单片机的键盘控制数码管显示 代码: 基于51单片机,用c语言编程实现利用74LS164扩展并行输出口 代码: 基于51单片机,用c语言编程实现定时中断方式驱动一个数码管  代码:  1- 2- 上述代码中,使用

    2024年02月16日
    浏览(34)
  • 【FPGA】VGA显示文字、彩条、图片——基于DE2-115

    **VGA(Video Graphics Array)**视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号

    2024年02月02日
    浏览(31)
  • 【FPGA实验】基于DE2-115平台的VGA显示

    VGA(Video Graphics Array)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号以及

    2024年02月03日
    浏览(22)
  • Verilog 实现流水灯

    信号定义 信号名 端口类型 信号说明 Clk i 输入时钟信号,50MHz Rst_n i 输入复位信号,低电平有效 Led[7:0] o 输出LED信号,低电平有效 仿真图 关于Modelsim的使用,请自行百度 如果是第一次使用开发板的童鞋,参看这里更新驱动,切记,前提条件是开发板正确和PC连接,并且已经通

    2024年02月11日
    浏览(26)
  • 流水灯实现

    流水灯指的是LED像水流一样点亮,即LED依次点亮但不立刻熄灭,等到4个LED都点亮后,再把所有灯一次性熄灭。

    2024年02月16日
    浏览(22)
  • C51实现流水灯

    1、 先八盏灯从左至右依次点亮,同一时刻仅有一盏灯处于被点亮状态,每盏灯亮0.5s,然后八盏灯从右至左依次点亮,同一时刻仅有一盏灯处于被点亮状态,每盏灯亮0.5s,循环两遍; 2、 八盏灯同时闪烁,亮1s,灭0.5s;,实现4次; 3、 上述过程周而复始的循环运行; 代码如

    2024年02月07日
    浏览(28)
  • stm32实现流水灯

    目录 一、STM32F103C8实现流水灯  二、注意事项  三、总结 打开keil,创建新项目 选择对应芯片    实验代码 c语言代码 汇编语言 添加驱动文件   烧录,烧录前设置生成hex文件    构筑完成后在项目文件的Objects文件中会生成hex文件 接好线路  hex文件生成后用mcuisp进行烧录 实

    2024年02月05日
    浏览(28)
  • 51单片机实现流水灯

    我们之前说过可以控制管脚口电平来控制LED的亮灭,低电平灯亮,高电平灯灭,具体可以看我之前的博客。 P20~P27可以用八位二进制数来表示每一位的电平,第八位是P20,第一位是P27,那么11111110就代表P20亮,其他灭,11101111就代表P24亮,其他灭。流水灯的代码就可以写成这样

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包