音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請教一個單片機讀寫FPGA的問題

作者:2_1_I_C 欄目:EDA技術
請教一個單片機讀寫FPGA的問題
小弟剛剛接觸FPGA, 在書上看到一個單片機讀寫FPGA的程序,單片機和FPGA的程序都有,但就是沒有結(jié)果,請各位幫我看看是那兒的問題。
FPGA接八個按鍵、八個二極管,單片機讀FPGA的按鍵狀態(tài),然后將數(shù)據(jù)寫到FPGA的二極管。
FPGA的程序
`define key_addr  16'hff00
`define led_addr  16'hff01
`define no_rw     2'h0
`define key_rw    2'h1
`define led_rw    2'h2
MODULE wr(MCU_data,MCU_addr,keyin,led,WR,RD,ALE,int);
input[7:0] MCU_addr;
inout[7:0] MCU_data;
input[7:0] keyin;
OUTPUT[7:0] led;
OUTPUT int;
input WR,RD,ALE;
reg[1:0] addr_sel;
reg[7:0] led_reg;
reg[7:0] MCU_data_reg;
reg[7:0] key_status;
reg int_reg;
always@(negedge ALE)
begin
if({MCU_addr,MCU_data}==`key_addr)
   addr_sel=`key_rw;
else
if({MCU_addr,MCU_data}==`led_addr)
  addr_sel=`led_rw;
else
  addr_sel=`no_rw;
end
always@(keyin)
begin
if(keyin==key_status)
  int_reg=1;
else
  int_reg=0;
end
always@(negedge WR)
begin
if(addr_sel==`led_rw)
  led_reg=MCU_data;
end
always@(negedge RD)
begin
if(addr_sel==`led_rw)
  MCU_data_reg=led_reg;
else
if(addr_sel==`key_rw)  
begin
  MCU_data_reg=keyin;
  key_status=keyin;
end
end
assign led=led_reg;
assign int=int_reg;
assign MCU_data=((RD==1'b1)||(addr_sel==`no_rw)) ?  8'hzz : MCU_data_reg ;
endMODULE

單片機的程序
#include
#define KEY_WR 0xff00
#define LED_WR 0xff01
unsigned CHAR led_buf;
void getkey(unsigned CHAR keyin)
{
SWITCH(keyin)
{
  case 0xfe: led_buf=0xfe; break;
  case 0xfd: led_buf=0xfc; break;
  case 0xfb: led_buf=0xf8; break;
  case 0xf7: led_buf=0xf0; break;
  case 0xef: led_buf=0xe0; break;
  case 0xdf: led_buf=0xc0; break;
  case 0xbf: led_buf=0x80; break;
  case 0x7f: led_buf=0x00; break;
  default :  break;
}
}
void wr_cpld(unsigned int ADDR,unsigned CHAR DAT)
{
*((unsigned CHAR xdata *)ADDR)=DAT;
}
unsigned CHAR rd_cpld(unsigned CHAR ADDR)
{
return *((unsigned CHAR xdata*) ADDR);
}
main()
{
unsigned CHAR key_buf,buffer;
key_buf=0xff;
led_buf=0xff;
while(1)
{
  buffer=rd_cpld(KEY_WR);
  if(!(key_buf==buffer)&&(buffer!=0xff))
  {
   key_buf=buffer;
   getkey(key_buf);
   wr_cpld(LED_WR,led_buf);
  }
}
}

結(jié)果是FPGA的二極管什么都沒顯示

2樓: >>參與討論
2_1_I_C
沒人回復,自己回了.
我等!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
quartus4.2下用maxii系列的芯片問題
求助:如何實現(xiàn)pipeline?
請教:如何在單時鐘設計處理延時?
大家?guī)臀艺艺疫@種類型的IC
誰有maxplus2下的Drivers\\win2000\\Win2000.inf
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號