这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » playblong进程帖FPGA(特向版主解释进程暂停问题...截至串口实验)

共19条 1/2 1 2 跳转至

playblong进程帖FPGA(特向版主解释进程暂停问题...截至串口实验)

助工
2012-10-18 21:54:19     打赏
playblong的FPGA_DIY开发进程,初学,请多指教,谢谢!

最近被导师派到南京调试大型望远镜的控制系统,好久没更新DIY进程了,也收到网站的询问短信,在此特向EEPW解释一下。暂时是真的没办法继续参加FPGA活动,实在可惜,也深表抱歉!待我出差归来,我会继续FPGA进程,也会继续学习FPGA,还会继续关注EEPW...还请版主谅解!
控制系统调试的过程也遇到问题,正在纠结中...
祝EEPW的网友们圣诞快乐!(2012.12.25于南京)

(严格来说,学过,没怎么用起来,便忘记了,看来知识是要用才能记得住的!)

看到大家如火如荼的FPGA起来了,我也要加油了!争取多抽时间来玩FPGA!

PS:感谢网友指点,楼层超链接已做好,呵呵!
时间 事件 位置    
2012-9-3 申请开发板  
2012-9-22 通过申请,淘宝下单  
2012-9-28 收到宝贝,小兴奋

2楼

2012-10-7 开始焊板,焊FPGA发生波折  
2012-10-12 吸收教训,学习方法,重新开始  
2012-10-13 完成核心板

4楼

2012-10-15 断续抽空焊接,完成接口板

4楼

 2012-10-19  测试板子,排除故障,正常使用  
 2012-10-20  1、跑马灯、流水灯、闪烁灯一并实现     

 10楼

 2012-10-21  2、8个按键控制8个LED,消抖             11楼  
 2012-10-22  3、DIP指拨开关控制LED  13楼
 2012-10-22  4、数码管静态显示  14楼
 2012-10-23  5、数码管动态显示

 16楼

 2012-10-23  6、蜂鸣器  16楼
 2012-10-25  7、电子琴(LED和数码管同时显示)  17楼
 2012-10-26  8、 自动演奏乐曲

 18楼

 2012-11-1  9、LCD1602显示(静态、逐步、滚动)

 19楼

 2012-11-7 10、串口实验  23楼
   

 





关键词: playblong     进程     特向     版主     解释     暂停         

助工
2012-10-18 21:57:41     打赏
2楼

收到开发板


助工
2012-10-18 22:02:37     打赏
3楼
核心板,接口板,第一次焊贴片IC,焊得不好,工业酒精洗板容易残留白渣,怎么解决?请教!呵呵





助工
2012-10-18 22:09:18     打赏
4楼
合影,下面开始做实验....

助工
2012-10-20 16:35:33     打赏
5楼
谢谢,大学时候还玩过,现在焊得少了!呵呵

助工
2012-10-20 16:36:43     打赏
6楼
我这就换个背景咯!那个是在实验室的焊接台上直接就拍了,呵呵

助工
2012-10-20 16:55:27     打赏
7楼
1.闪烁灯、跑马灯、流水灯演示
由于这三个实验很类似,我把这个三个效果一并实现了,以下是演示视频和代码
http://v.youku.com/v_show/id_XNDY0NDIzMTI4.html



module LED_all(clk,rst_n,led);
 input clk;
 input rst_n;
 output[7:0] led;
 
 reg[23:0] count;
 reg[7:0] led_t;
 reg[1:0] indicator;
 reg[2:0] sec;
 
 
 always @(posedge clk or negedge rst_n)
 begin
  if(!rst_n)
   count = 24'b0;
  else
   count = count+1'b1;
 end
   
 always @(posedge clk or negedge rst_n)
 begin 
  if(!rst_n)
  begin 
   led_t = 8'b11111111;
   indicator = 2'b0;
   sec = 3'b0;
  end
  else if(count == 24'hfffff)
  begin
   case(indicator)
   2'b00:
   begin 
    led_t = led_t << 1;
    if(led_t == 8'b0)
    begin 
     led_t = 8'b11111110; 
     indicator = 2'b01;
    end
   end
   2'b01:
   begin 
    led_t = led_t << 1;
    led_t[0] = 1'b1;
    if(led_t == 8'b11111111)
    begin 
     led_t = 8'b01010101;
     indicator = 2'b10;
    end
   end
   2'b10:
   begin 
    led_t = ~led_t;
    sec = sec + 1'b1;
    if(sec == 3'b111)
    begin
     led_t = 8'b11111111;
     indicator = 2'b00; 
    end
   end
   default:
   begin
    led_t = 8'b11111111;
    indicator = 2'b00;
    sec = 3'b000;
   end
   endcase
    
  end
 end
     
 assign led = led_t;  
   
endmodule



助工
2012-10-21 20:51:34     打赏
8楼
2、8个按键控制8个LED的点亮

以下是视频与代码
http://v.youku.com/v_show/id_XNDY0OTI1NjE2.html



module Key_led(key,led,clk,rst_n);
 input[7:0] key;
 output[7:0] led;
 input clk;
 input rst_n;
 
 reg[19:0] cnt;
 reg[7:0] led_r;
 reg[7:0] key_t;
 reg cnt_sta;
 
 always@(posedge clk or negedge rst_n)
 begin 
  if(!rst_n)
   cnt = 20'b0;
  else if(cnt_sta)
   cnt = cnt + 1'b1;
 end
 
 wire delay_over = cnt == 20'hfffff;
 
 always@(posedge clk or negedge rst_n)
 begin 
  if(!rst_n)
  begin 
   key_t = 8'b11111111;
   cnt_sta = 0;
  end
  else if((key ^ 8'b11111111) != 8'b0)
  begin 
   key_t = key;
   cnt_sta = 1;
   if(delay_over == 1'b1)
    cnt_sta = 0;
  end 
  
  else if(delay_over == 1'b1)
  begin
   cnt_sta = 0;
  end
 end
   
 always@(posedge clk or negedge rst_n)
 begin 
  if(!rst_n)
   led_r = 8'b0;   
  else if(delay_over == 1'b1)
  begin 
   if(key == key_t)
    led_r = key_t; 
  end
 end
 
 assign led = led_r;
 
endmodule

助工
2012-10-22 22:55:25     打赏
9楼
3.DIP指拨开关

这个代码太简单,就懒得贴了啊!
http://v.youku.com/v_show/id_XNDY1MTY2MDA4.html







助工
2012-10-22 23:02:29     打赏
10楼
4.数码管静态显示

http://v.youku.com/v_show/id_XNDY1MTY2NjMy.html

有一位数码管坏了,检查电路板,发现焊接正常,能演示功能就好!




module Seg7_static(clk,rst_n,dig_t,seg_t);
 input clk;
 input rst_n;
 output[7:0] dig_t;
 output[7:0] seg_t;
 
 reg[23:0] cnt;
 reg next;
 reg[3:0] data;
 reg[7:0] dig_t;
 reg[7:0] seg_t;
 
 always@(posedge clk or negedge rst_n)
 begin
  if(!rst_n)
  begin 
   cnt = 24'b0;
   dig_t = 8'b11111111;
  end
  else
  begin 
   cnt = cnt + 1'b1;
   dig_t = 8'b0;
  end
 end
   
 always@(posedge clk or negedge rst_n)
 begin
  if(!rst_n)
   next = 1'b0;
  else if(cnt == 24'hffffff)
   next = 1'b1;
  else
   next = 1'b0; 
 end
 
 always@(posedge clk or negedge rst_n)
 begin
  if(!rst_n)
   data = 4'h0;
  else if(next)
   data = data + 1'b1;
 end
 
 always@(posedge clk or negedge rst_n)
 begin
  if(!rst_n)
   seg_t = 8'h00;
  else
   case(data)
    4'h0:seg_t = 8'hc0;
    4'h1:seg_t = 8'hf9;
    4'h2:seg_t = 8'ha4;
    4'h3:seg_t = 8'hb0;
    4'h4:seg_t = 8'h99;
    4'h5:seg_t = 8'h92;
    4'h6:seg_t = 8'h82;
    4'h7:seg_t = 8'hf8;
    4'h8:seg_t = 8'h80;
    4'h9:seg_t = 8'h90;
    4'ha:seg_t = 8'h88;
    4'hb:seg_t = 8'h83;
    4'hc:seg_t = 8'hc6;
    4'hd:seg_t = 8'ha1;
    4'he:seg_t = 8'h86;
    4'hf:seg_t = 8'h8e;
   endcase
 end
endmodule

共19条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]