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

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

小弟CPLD初入門,有些語法請大俠們指正,先行謝過了!

作者:sailorljg 欄目:EDA技術(shù)
小弟CPLD初入門,有些語法請大俠們指正,先行謝過了!
我的原程序如下面所示:


MODULE TEST(en_data,all_data,en_flag,ledout,data9850,fqud,wclk,fq50,fq500k,outpwm,outbb,startch);
       input[3:0] en_data;    //選通使能地址數(shù)據(jù)
       input[7:0] all_data;   //8位數(shù)據(jù)輸入CPLD
       input en_flag;         //單片機(jī)控制使能數(shù)據(jù)端口數(shù)據(jù)有效
       input fq50;           //單片機(jī)輸入重復(fù)頻率信號
       input fq500k;          //DDS輸入500K信號

       OUTPUT ledout;         //驅(qū)動發(fā)光管
       OUTPUT[7:0] data9850;  //輸出8位9850數(shù)據(jù)
       OUTPUT fqud;           //9850 fqud控制`
       OUTPUT wclk;           //9850 wclk控制
       OUTPUT outpwm;         //輸出PWM包絡(luò)信號
       OUTPUT outbb;          //輸出波包信號
       OUTPUT[3:0] startch;   //啟動通道數(shù)據(jù)

       reg[3:0] reg_en_data; //使能地址數(shù)據(jù)寄存器
       reg[7:0] reg_data9850;//9850數(shù)據(jù)寄存器
       reg reg_ledout;       //led發(fā)光管輸出寄存器
       reg reg_fqud;         //9850 FQUD控制寄存器
       reg reg_wclk;         //9850 WCLK控制寄存器
       reg[3:0]reg_plusnum;      //需發(fā)射的脈沖個數(shù)數(shù)據(jù)寄存器
       reg[3:0]reg_plusnumbak;   //脈沖個數(shù)初始值
       reg[3:0]reg_chstartdata;  //啟動某通道數(shù)據(jù)寄存器
       reg startstatic_flag;  //啟動靜態(tài)標(biāo)志
       reg reg_outpwm;
       reg reg_outbb;
       
       initial
       begin
            reg_ledout=0;
            reg_data9850=2'h00;
            reg_fqud=0;
            reg_wclk=0;
            reg_plusnum=1'h0;
            startstatic_flag=0;
            reg_outpwm=0;
            reg_outbb=0;
            reg_plusnumbak=1'h0;
       end
       always @(negedge en_flag)                          //接受單片機(jī)發(fā)送數(shù)據(jù)模塊
               begin
               reg_en_data=en_data;
               case(reg_en_data)
                    4'b0001: reg_data9850<=all_data;        //打入9850數(shù)據(jù)
                    4'b0010: reg_fqud<=all_data[0];         //打入9850控制信號
                    4'b0011: reg_wclk<=all_data[0];
                    4'b0100: begin                          //打入脈沖個數(shù)數(shù)據(jù)
                                  reg_plusnum[0]<=all_data[0];
                                  reg_plusnum[1]<=all_data[1];
                                  reg_plusnum[2]<=all_data[2];
                                  reg_plusnum[3]<=all_data[3];
                                  //reg_plusnumbak<=reg_plusnum;
                             end
                    4'b0101: begin                          //打入啟動通道數(shù)據(jù),并置標(biāo)志
                                  reg_chstartdata[0]<=all_data[0];
                                  reg_chstartdata[1]<=all_data[1];
                                  reg_chstartdata[2]<=all_data[2];
                                  reg_chstartdata[3]<=all_data[3];
 
2樓: >>參與討論
吳明詩
re
從第二項(xiàng),initial只能用在測試文件中,這里你可以這樣做
always @(negedge en_flag or rst)
if(!rst)
begin
開始賦0值,不過注意,同一個reg不能在兩個進(jìn)程中賦值。
說到這,第一項(xiàng)錯誤就是由此而來。
第四項(xiàng)以后所說的是因?yàn)閞eg-ledout沒有信號驅(qū)動,不信你就看看你的程序,找不到reg-ledout<=,,。
第七個,實(shí)時鐘的問題,你暫時可以不管。管不管,大部分情況下沒有影響。
                            

3樓: >>參與討論
sailorljg
老大您給我這一解釋真是突然地長進(jìn)不小啊!!
  第一項(xiàng)中應(yīng)該是說同一個always語句中不能包含阻塞與非阻塞兩種賦值語句是吧?
  您說initial只能用作測試文件,那在這里就沒有多大意義了呢!!我的一些寄存器和一些標(biāo)志想作初始化不就無法進(jìn)行了,如何能在程序運(yùn)行的開頭對一些變量作初始化呢?因?yàn)椴荒茉趦蓚always語句中同時對一個變量賦值,那么用always語句對變量初始化好像就不現(xiàn)實(shí)了是吧?因?yàn)檫@些變量在后面的操作中是避免不了要進(jìn)行賦值操作的!
  還有,第五項(xiàng)與第六項(xiàng)我還是想不通,明明75腳是I/O口,為什么它會告訴我是GND呢?

4樓: >>參與討論
sailorljg
另外
還有,小弟剛接觸CPLD不久,大俠您能不能針對我上面的程序給我提出一些編寫不規(guī)范的地方來,給我引引路,感激不盡!!!

5樓: >>參與討論
sailorljg
快沉了,我自己頂一下吧!
 
6樓: >>參與討論
andior
ding
ding.........

7樓: >>參與討論
dengzhenli
我比你還菜,但是頂一下
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
想在FPGA上實(shí)現(xiàn)8051IP核,請大家給指導(dǎo)指導(dǎo)
用Verilog HDL,如何將255--0轉(zhuǎn)換成100--0的?
有關(guān)FPGA容量問題請教
請教,以下語句是什么意思啊
下面段程序是不是有問題
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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