音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 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

有一困擾已久的問題想弄明白

作者:sailorljg 欄目:EDA技術(shù)
有一困擾已久的問題想弄明白
  是這樣的,CPLD與單片機(jī)在編程上的主要區(qū)別是一個(gè)是并發(fā)一個(gè)是順序,由此產(chǎn)生了另外一個(gè)問題,在CPLD中,一個(gè)變量只能在一個(gè)進(jìn)程塊中進(jìn)行值的修改,不能在其它進(jìn)程塊中進(jìn)行修改,于是在一個(gè)進(jìn)程塊中的變量要進(jìn)行值的改變就我現(xiàn)在所遇情況我把它們分成三種,一是以另外一個(gè)變量的改變作為標(biāo)志,二是在此進(jìn)程塊中延時(shí)后自動改變,就是用timescale 再加上#N,但此法行不通,據(jù)說timescale   只能用于仿真,而不能被綜合,于硬件無用!! 于是我又有了第三種思路,另外設(shè)一進(jìn)程進(jìn)行延時(shí)(定時(shí))控制,以本進(jìn)程為A進(jìn)程,延時(shí)(定時(shí))進(jìn)程為B進(jìn)程,以A進(jìn)程中變量I0的上升沿為啟動條件來啟動定時(shí)器進(jìn)程B工作,定時(shí)滿后再置進(jìn)程B中的定時(shí)滿標(biāo)志I1,然后A進(jìn)程再以I1的上升沿作為I0清零的條件.I1標(biāo)志可在工作中某工作周完結(jié)時(shí)自動清零,大俠們看看我的思中對否,會遇到何種問題?
  在這種方式指導(dǎo)下,我遇到了一個(gè)非常頭疼的問題,這個(gè)問題現(xiàn)在都還理不出頭緒來,讓我再想想.我現(xiàn)在真的很暈。。!

2樓: >>參與討論
oaipoaip
電路中的延時(shí)一般用計(jì)數(shù)器實(shí)現(xiàn)
 
3樓: >>參與討論
sailorljg
哦!忘記說了,我的第三種方式是用計(jì)數(shù)器對時(shí)鐘計(jì)數(shù)來實(shí)現(xiàn)的!
 
4樓: >>參與討論
tuoluo

用信號取代變量是否可以避免這個(gè)問題??

5樓: >>參與討論
sailorljg
不太明白,您能不能再說的詳細(xì)些?
 先謝了!!!

6樓: >>參與討論
hover99
在cpld上邊寫的是電路而不是程序
注意在單片機(jī)內(nèi)寫的code是程序,而用cpld實(shí)現(xiàn)的rtl代碼是電路而不是程序!對于電路來講,一個(gè)節(jié)點(diǎn)的多個(gè)驅(qū)動源試圖在同一時(shí)刻改變該節(jié)點(diǎn)的邏輯值,會導(dǎo)致競爭,事實(shí)上真實(shí)電路有這種情況,比如兩個(gè)首尾相連而驅(qū)動能力不同的反相器可以構(gòu)成bus keeper。
雖然我們有在多個(gè)進(jìn)程中改變同一個(gè)信號的企圖,但是事實(shí)上,我們并不會要求在同一時(shí)刻將這個(gè)信號賦為幾個(gè)值,所以這個(gè)問題其實(shí)很容易解決。例如進(jìn)程a對信號c賦為A,進(jìn)城b對信號c賦為B,可以這樣解決:
進(jìn)程a:
...
a_set_c = 1;
a_set_c_value = A;
...
進(jìn)程b:
...
b_set_c = 1;
b_set_c_value = B;
...
always @(posedge clk or negedge rst_n) begin
       if (~rst_n)
           c <= #`RD n'b0;
       else if (a_set_c)
            c <= # `RD a_set_c_value;
       else if (b_set_c)
            c <= # `RD b_set_c_value;
end       

7樓: >>參與討論
sailorljg
請問大俠:"# `RD "在此是何意?
  我在書上好象沒有看到過這個(gè)語法!

8樓: >>參與討論
hover99
赫赫
# `RD代表延遲RD個(gè)單位時(shí)間。綜合器回忽略這個(gè)延遲,如果不加有些仿真器可能會產(chǎn)生錯(cuò)誤。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
困惑:用QUARTUS 2 還是FPGAdvantage
HDL與原理圖
求教CPLD FPGA復(fù)位引腳問題
請教:xilinx 的封裝尺寸怎么DATA SHEET里找不到?
EPC1441可以用JTAG接口寫入嗎?
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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