|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
下面段程序是不是有問題 |
| 作者:wangyibo 欄目:EDA技術(shù) |
下面一段程序我覺得有問題,在同一個MODULE里的: always @ ( posedge clk or negedge rst_n ) if ( !rst_n ) x_cnt <= 10'd0; else if ( x_cnt == 10'D1000 ) //x_cnt are max 50x1000; x_cnt <= 10'd0; else x_cnt <= x_cnt + 1'b1; always @ ( posedge clk or negedge rst_n ) if ( !rst_n ) y_cnt <= 10'd0; else if ( y_cnt == 10'D665 ) y_cnt <= 10'd0; else if ( x_cnt == 10'D1000 ) y_cnt <= y_cnt + 1'b1; always @ ( posedge clk or negedge rst_n ) if ( !rst_n ) begin hsync <= 1'b0; vsync <= 1'b0; end else begin hsync <= x_cnt <= 10'd50;//?????????? vsync <= y_cnt <= 10'd6;。?????????? 在打???的地方,與上面的是不是沖突了,給值的順序是不是:10'd50>>x_cnt, x_cnt>>hsync ? 還有個地方請教: assign word0 = ypos[8:4] == 5'h03 ; 這句話是不是先比較ypos[8:4] 與 5'h03 是否相等,后1或0給word0 ? 謝謝! end |
| 2樓: | >>參與討論 |
| 作者: wangyibo 于 2006/3/16 20:38:00 發(fā)布:
有沒人幫幫啊,小弟實在急啊 |
|
| 3樓: | >>參與討論 |
| 作者: 吳明詩 于 2006/3/16 22:28:00 發(fā)布:
肯定是沖突,好像不是你寫的一樣。 assign word0 = ypos[8:4] == 5'h03 我好像沒見過這么些的 assign portc[0] = trisc[0]? port_int_c[0]: 1'bz; assign portc[1] = trisc[1]? port_int_c[1]: 1'bz;這是判斷賦值 |
|
| 4樓: | >>參與討論 |
| 作者: wangyibo 于 2006/3/17 11:39:00 發(fā)布:
還是不明白 說實話不是我寫的,是別人的,我學(xué)習(xí)的,謝謝你的回復(fù),不過還是有些不清楚,懇請指教: 1,可不可以這樣說: hsync <= x_cnt <= 10'd50;//?????????? vsync <= y_cnt <= 10'd6;。????????? 在CLK跳變時,hsync <= x_cnt 和vsync <= y_cnt 都要重新給值.也就是說,上面的計數(shù)器跟本起不到作用是吧,如下: always @ ( posedge clk or negedge rst_n ) if ( !rst_n ) x_cnt <= 10'd0; else if ( x_cnt == 10'D1000 ) //x_cnt are max 50x1000; x_cnt <= 10'd0; else x_cnt <= x_cnt + 1'b1; always @ ( posedge clk or negedge rst_n ) if ( !rst_n ) y_cnt <= 10'd0; else if ( y_cnt == 10'D665 ) y_cnt <= 10'd0; else if ( x_cnt == 10'D1000 ) y_cnt <= y_cnt + 1'b1; ) 但事實上他們是可以按要求計數(shù)的,不解? 2, assign word0 = ypos[8:4] == 5'h03 ,確實我不知道怎么解讀,但在ISE時也不報錯,并且項目也可以下到FPGA里運行正常.也是不解? 謝謝 |
|
| 5樓: | >>參與討論 |
| 作者: 吳明詩 于 2006/3/17 13:17:00 發(fā)布:
能得到結(jié)果么 當 x_cnt!= 10'D1000 時,你說她是計數(shù)呢x_cnt <= x_cnt + 1'b1,還是hsync <= x_cnt <= 10'd50。因為著兩個執(zhí)行的條件一樣的,我試過了得不出任何結(jié)果。是不是不是完整的程序 |
|
| 6樓: | >>參與討論 |
| 作者: wangyibo 于 2006/3/17 14:29:00 發(fā)布:
謝謝,其實我的理解也是一樣的, |
|
| 7樓: | >>參與討論 |
| 作者: xjg1111 于 2006/3/18 23:51:00 發(fā)布:
re 1、在打???的地方,與上面的是不是沖突了,?? 這個地方?jīng)]有沖突,在非阻塞觸發(fā)中,書寫的先后順序沒有區(qū)別的。 2, assign word0 = ypos[8:4] == 5'h03 ,確實我不知道怎么解讀,但在ISE時也不報錯,并且項目也可以下到FPGA里運行正常.也是不解? assign word0 = ypos[8:4] == 5'h03 ; 這句話是不是先比較ypos[8:4] 與 5'h03 是否相等,后1或0給word0 ? 你自己的回答是對的,就是這樣的。 |
|
| 8樓: | >>參與討論 |
| 作者: 吳明詩 于 2006/3/19 9:54:00 發(fā)布:
斑竹可要看仔細了呀 |
|
| 9樓: | >>參與討論 |
| 作者: zjz0319 于 2006/3/19 10:20:00 發(fā)布:
re:這段代碼應(yīng)該綜合不過吧! 這段代碼應(yīng)該綜合不過吧!怎么可以在兩個always 里對一個變量賦值呢!! x_cnt <= 10'd0; hsync <= x_cnt <= 10'd50; |
|
| 10樓: | >>參與討論 |
| 作者: ys3663391 于 2006/3/19 21:14:00 發(fā)布:
賦值有問題 沒看見過你這么賦值的 |
|
| 11樓: | >>參與討論 |
| 作者: xjg1111 于 2006/3/19 21:36:00 發(fā)布:
re always @ ( posedge clk or negedge rst_n ) if ( !rst_n ) y_cnt <= 10'd0; else if ( y_cnt == 10'D665 ) y_cnt <= 10'd0; else if ( x_cnt == 10'D1000 ) y_cnt <= y_cnt + 1'b1; always @ ( posedge clk or negedge rst_n ) if ( !rst_n ) begin hsync <= 1'b0; vsync <= 1'b0; end else begin hsync <= x_cnt <= 10'd50;//?????????? vsync <= y_cnt <= 10'd6; //?????????? 這兩個always 賦值確實有問題,不能在兩個always塊中對同一reg 賦值。 |
|
| 12樓: | >>參與討論 |
| 作者: xjg1111 于 2006/3/19 21:53:00 發(fā)布:
re assign word0 = ypos[8:4] == 5'h03 ; hsync <= x_cnt <= 10'd50; 單純的這么應(yīng)用的語法是沒有問題的。 |
|
| 13樓: | >>參與討論 |
| 作者: wangyibo 于 2006/3/20 13:37:00 發(fā)布:
謝謝大家對我的關(guān)注, 我昨天問那個給我代碼的那個人了,其實這樣的: 1)assign word0 = ypos[8:4] == 5'h03 ; 是的,是先比較ypos[8:4]與 5'h03 是否相等. 2) hsync <= x_cnt <= 10'd50; 其實是這樣的,先比較x_cnt 小于等于10'd50,可以表示這樣: if(x_cnt <= 10'd50) hsync <= 1; else hsync <= 0; "<=" 其實有兩個意思. 不過還是謝謝大家了 |
|
| 14樓: | >>參與討論 |
| 作者: 吳明詩 于 2006/3/20 17:25:00 發(fā)布:
長見識了,不過,搞這么復(fù)雜不好 |
|
| 15樓: | >>參與討論 |
| 作者: ling1982 于 2006/3/23 22:29:00 發(fā)布:
就是利用優(yōu)先級的不同,不過這樣寫代碼真的好難懂! |
|
| 16樓: | >>參與討論 |
| 作者: xjg1111 于 2006/3/23 23:52:00 發(fā)布:
嘿,是呀,好的coding 不建議大家這么用。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |