久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2849|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

FPGA設(shè)計(jì)中的一個(gè)小分析

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:91350 發(fā)表于 2015-11-1 16:49 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

在我看過的很多代碼中,發(fā)現(xiàn)許多人在對(duì)變量賦初始值(或常量值)0時(shí)的做法各種各樣,現(xiàn)在來(lái)分析下這幾種情況對(duì)設(shè)計(jì)的影響。以對(duì)64位變量a賦初始值0為例:

(1)第一種:a <= 64’d0; 對(duì)于這種指定變量具體位寬的代碼風(fēng)格,我是直接否定的,因?yàn)樗焕趨?shù)化設(shè)計(jì);

(2)第二種:a <= 0;(或a <= (0);)而對(duì)于這種直接賦一個(gè)0的做法呢,一般情況下對(duì)設(shè)計(jì)是沒有影響的,而且還能進(jìn)行參數(shù)化設(shè)計(jì),但是在另外一種情況下是要注意的,就是例化子模塊時(shí)對(duì)位寬大于32的變量賦0,就會(huì)出現(xiàn)意想不到的情況。現(xiàn)在舉個(gè)簡(jiǎn)單的例子來(lái)證實(shí)這種情況。假設(shè)在子模塊中對(duì)一個(gè)64位的輸入變量取反后進(jìn)行輸出,而在頂層模塊中將子模塊輸出變量的第33位進(jìn)行輸出,用于硬件led的測(cè)試。

頂層模塊:

/**********************************************版權(quán)申明*************************************************
**                                   電子技術(shù)應(yīng)用網(wǎng)站, CrazyBird
**--------------------------------------------文件信息--------------------------------------------------
** 文件名:          led_top.v
** 創(chuàng)建者:          CrazyBird
** 創(chuàng)建日期:        2015-8-2
** 版本號(hào):           v1.0
** 功能描述:        對(duì)變量直接賦0的測(cè)試
**                   
********************************************************************************************************/
// synopsys translate_off
`timescale 1 ns / 1 ps
// synopsys translate_on
module led_top(
    led_data
    );
    //******************************************************************************
    //                                 輸入/輸出端口定義
    //******************************************************************************
    output                      led_data;
    
    //******************************************************************************
    //                                     變量定義
    //******************************************************************************
    wire        [63:0]          dout;
    
    //******************************************************************************
    //                                     模塊例化
    //******************************************************************************
    led u_led(
        .din(0),
        .dout(dout)
    );
    
    assign led_data = dout[32];
    
    //******************************************************************************
    
endmodule
//*********************************************文件結(jié)束*****************************************************

子模塊:

/**********************************************版權(quán)申明*************************************************
**                                   電子技術(shù)應(yīng)用網(wǎng)站, CrazyBird
**
**--------------------------------------------文件信息--------------------------------------------------
** 文件名:          led.v
** 創(chuàng)建者:          CrazyBird
** 創(chuàng)建日期:        2015-8-2
** 版本號(hào):           v1.0
** 功能描述:        對(duì)64位的輸入數(shù)據(jù)取反后輸出
**                   
********************************************************************************************************/
// synopsys translate_off
`timescale 1 ns / 1 ps
// synopsys translate_on
module led(
    din,
    dout
    );
    //******************************************************************************
    //                                 輸入/輸出端口定義
    //******************************************************************************
    input       [63:0]          din;
    output      [63:0]          dout;
    
    //******************************************************************************
    //                                    取反輸出
    //******************************************************************************
    assign  dout = ~din;
    
    //******************************************************************************
    
endmodule
//*********************************************文件結(jié)束*****************************************************

modelsim仿真結(jié)果:

很顯然,在例化子模塊時(shí)對(duì)位寬大于32的變量賦0時(shí)其實(shí)只對(duì)低32位賦了0值。

那么這樣的代碼風(fēng)格對(duì)設(shè)計(jì)實(shí)現(xiàn)有沒有影響呢?接著對(duì)設(shè)計(jì)進(jìn)行綜合后出現(xiàn)以下警告(也提示只對(duì)低32位賦了值):

最后對(duì)設(shè)計(jì)進(jìn)行分配引腳、實(shí)現(xiàn)以及生成bit文件并將bit文件下載到紅色颶風(fēng)開發(fā)板上驗(yàn)證一下,發(fā)現(xiàn)led亮了(高電平點(diǎn)亮的),呵呵,一個(gè)不定值居然讓led亮了,我不知道硬件是怎么實(shí)現(xiàn)的。

(3)第三種:a <= {(DATA_WIDTH){1’b0}}; 其中DATA_WIDTH是經(jīng)過定義的參數(shù):parameter DATA_WIDTH = 64;對(duì)于第三種代碼風(fēng)格我是極力推薦的,因?yàn)樗葘?shí)現(xiàn)參數(shù)化設(shè)計(jì),又不會(huì)出現(xiàn)第二種代碼風(fēng)格的情況,具體呢,大家可以親自驗(yàn)證下,哈哈!


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品综合 | 免费一级欧美在线观看视频 | 日韩精品一区二区三区中文字幕 | 中文字幕综合 | 欧美性猛交一区二区三区精品 | 久久久性色精品国产免费观看 | 精品99在线 | 欧美一级黄色片免费观看 | 97偷拍视频 | 一级黄色片美国 | 在线免费观看毛片 | 日韩a在线 | 欧美最猛性xxxxx亚洲精品 | 国产精品成人一区二区 | 亚洲国产一区二区三区在线观看 | 91精品久久久久久久久久入口 | 日日操夜夜干 | 欧美在线观看一区二区 | 国产一级毛片精品完整视频版 | 欧美激情精品久久久久久 | 欧州一区| 久久精品视频网站 | 综合另类 | 久久久久久久久久毛片 | 网色 | 午夜免费看 | 久久久入口 | 一区二区三区四区不卡视频 | 国产精品国产精品 | 视频1区2区 | 国产精品久久久久久久久久 | 9porny九色视频自拍 | 亚洲国产成人av好男人在线观看 | 91精品国产91久久久久久吃药 | 亚洲成年在线 | 成人亚洲一区 | 亚洲精品二区 | 久久国产精品一区二区三区 | 北条麻妃一区二区三区在线观看 | 精品亚洲一区二区三区四区五区 | 在线看片国产 |