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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2938|回復(fù): 0
收起左側(cè)

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

[復(fù)制鏈接]
ID:91350 發(fā)表于 2015-11-1 16:49 | 顯示全部樓層 |閱讀模式

在我看過(guò)的很多代碼中,發(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ì)是沒(méi)有影響的,而且還能進(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é)果:

6489175775579.jpg

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

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

6489181383302.jpg

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

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


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区色淫影院 | 欧美日韩亚洲一区 | 综合久久综合久久 | 三级黄视频在线观看 | 日本不卡一二三 | 日韩精品1区2区3区 爱爱综合网 | 91一区 | 欧美另类视频 | 欧美一级高潮片免费的 | 天天影视亚洲综合网 | 久久黄色精品视频 | 中文字幕视频在线 | www.日日夜夜 | 成人毛片视频免费 | 久久久久久国产精品久久 | 国产精品久久99 | 91精品国产乱码久久久久久久 | 亚洲综合在线视频 | 欧美性网| 在线观看av网站永久 | 丁香五月缴情综合网 | 国产欧美一区二区精品久导航 | 久久精品免费 | 中文字幕在线网 | 久久欧美高清二区三区 | 女人毛片a毛片久久人人 | 亚洲精品99久久久久久 | 精品一区二区三区四区 | 99精品国产一区二区三区 | av手机在线 | 粉嫩一区二区三区国产精品 | 中文字幕加勒比 | 在线观看成年视频 | 久久一区 | 一级二级三级在线观看 | av中文字幕网 | 在线免费av观看 | 亚洲一区在线免费观看 | 亚洲一区二区三区四区五区中文 | 日韩av免费在线观看 | 日韩欧美中文 |