|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
對于Altera 的FPGA和CPLD當(dāng)IO定義為輸出時的一種情況請教? |
| 作者:wag 欄目:EDA技術(shù) |
問題1: //如下代碼,當(dāng)sel一直為低的時候,data_out輸出是高還是低呢?(沒有初始化它) OUTPUT [7:0] data_out; input sel; input [7:0] a; reg [7:0] data_out; always @(posegde sel) begin data_out=a; end 問題2: //這樣的語句會不會產(chǎn)生不確定呢? OUTPUT [7:0] a1,a2; input clk; input [7:0] a3; reg [7:0] a1,a2; always @(posegde clk) begin a1=a2; end always @(posegde clk) begin a2=a3; end //因為a1=a2和a2=a3是并行執(zhí)行呢,那么是不是根據(jù)這個就得出在一個clk上升沿來到的時候a1一定等于上一次的a3的值。如果我把 always @(posegde clk) begin a1=a2; end 改為 always @(posegde clk) begin ......//在這里加一些語句 a1=a2; end 那么在一個clk上升沿來到的時候a1還一定等于上一次的a3的值嗎? 請DX幫助!謝謝! |
| 2樓: | >>參與討論 |
| 作者: 吳明詩 于 2005/3/27 17:25:00 發(fā)布:
你應(yīng)該看看數(shù)字電路里面關(guān)于jk觸發(fā)器的章節(jié) |
|
| 3樓: | >>參與討論 |
| 作者: xjg1111 于 2005/3/28 8:29:00 發(fā)布:
re 對于ALTERA的FPGA,首先說它不支持initial指令,也就是就不能用它來初始化。其次,在REG在沒有clk這前,ALTERA的編輯器會給它賦0,(當(dāng)然你要是加復(fù)位時賦值的話,它會初始為你復(fù)位時賦的值,)你可以仿真試試. 這是我仿真得出的結(jié)論。不敢說一定對 |
|
| 4樓: | >>參與討論 |
| 作者: wag 于 2005/3/28 8:51:00 發(fā)布:
謝謝! |
|
| 5樓: | >>參與討論 |
| 作者: wag 于 2005/3/28 8:57:00 發(fā)布:
對于第二問,我是覺得有可能a1等于本次a3的值。 雖然這不和并行執(zhí)行的邏輯,但是由于是在上升沿采樣,由于在FPGA中的路徑延時的差別有可能在執(zhí)行完了a1=a2才執(zhí)行a2=a3(不管FPGA的速度多快,還是有時間的)。 問題2(上面有問題,改為下面): //這樣的語句會不會產(chǎn)生不確定呢? OUTPUT [7:0] a1,a2; input clk; input [7:0] a3; reg [7:0] a1,a2; always @(posegde clk) begin a1=a2; end always @(posegde clk) begin a2=a3; end //因為a1=a2和a2=a3是并行執(zhí)行呢,那么是不是根據(jù)這個就得出在一個clk上升沿來到的時候a1一定等于上一次的a3的值。如果我把 always @(posegde clk) begin a2=a3; end 改為 always @(posegde clk) begin ......//在這里加一些語句 a2=a3; end 那么在一個clk上升沿來到的時候a1還一定等于上一次的a3的值嗎? |
|
| 6樓: | >>參與討論 |
| 作者: luoqiang28 于 2005/3/28 14:04:00 發(fā)布:
a1一定等于上本次的a3的值 實際上信號都有穩(wěn)定時間,當(dāng)A1穩(wěn)定時那么A3也穩(wěn)定了 |
|
| 7樓: | >>參與討論 |
| 作者: 吳明詩 于 2005/3/29 10:06:00 發(fā)布:
a1一定等于上次a3的值 上升沿到來時,a2輸出還未變化前,a1的輸入已經(jīng)鎖死 |
|
| 8樓: | >>參與討論 |
| 作者: luoqiang28 于 2005/3/29 14:23:00 發(fā)布:
仿真證明吳大峽是正確的 |
|
| 9樓: | >>參與討論 |
| 作者: wag 于 2005/3/29 16:54:00 發(fā)布:
我是這樣理解的。 由于D觸發(fā)器在CLK到來之前數(shù)據(jù)必須是穩(wěn)定的,所以得到的數(shù)據(jù)是滿足數(shù)據(jù)建立時間前的數(shù)據(jù),也就是上次的數(shù)據(jù)(如果FPGA的數(shù)據(jù)建立小于上面我們給的“在這里加些語句”所執(zhí)行代碼的延遲時間,那么我覺得就等于本次a3的值,不知道對不對,請指教,謝謝!)。 上面我認(rèn)為的延時包括:門延時和寄存器延時等。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |