• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

補(bǔ)碼電路設(shè)計(jì)Verilog代碼Quartus仿真

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-2401041055544O.doc

共1個(gè)文件

名稱:補(bǔ)碼電路設(shè)計(jì)Verilog代碼Quartus仿真

軟件:Quartus

語言:Verilog

代碼功能:

1.補(bǔ)碼電路

設(shè)計(jì)要求:從原碼和補(bǔ)碼之間進(jìn)行互相變換,且數(shù)據(jù)位數(shù)可從到8位擴(kuò)展到16位、32位,且增加控制電路部分。

2.浮點(diǎn)數(shù)產(chǎn)生電路設(shè)計(jì)

設(shè)計(jì)要求:將浮點(diǎn)數(shù)變?yōu)?2位單精度的機(jī)器數(shù),電路包括規(guī)格化浮點(diǎn)數(shù)產(chǎn)生電路、階碼(移碼)產(chǎn)生電路的設(shè)計(jì),另增加控制電路產(chǎn)生復(fù)位信號(hào)、啟動(dòng)信號(hào)等。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

演示視頻:

設(shè)計(jì)文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 仿真圖

部分代碼展示:

//補(bǔ)碼轉(zhuǎn)換
module?Complement
#(parameter?WIDTH=8?)//位寬8位,可以自定義修改
(
input?[WIDTH-1:0]?data_in,//輸入待轉(zhuǎn)換值
input?shift_en,//轉(zhuǎn)換控制信號(hào),0表示原碼到補(bǔ)碼,1表示補(bǔ)碼到原碼
output?reg?[WIDTH-1:0]?data_out//輸出值
);
//原理
//原碼為十進(jìn)制數(shù)的二進(jìn)制表示,正數(shù)符號(hào)位為0,負(fù)數(shù)符號(hào)位為1,例如:10的二進(jìn)制為00001010,-10的二進(jìn)制為10001010
//正數(shù)原碼轉(zhuǎn)補(bǔ)碼:正數(shù)的補(bǔ)碼,與原碼相同,例如,10的原碼為00001010,補(bǔ)碼也是00001010
//負(fù)數(shù)原碼轉(zhuǎn)補(bǔ)碼:負(fù)數(shù)的補(bǔ)碼:符號(hào)位不變,其余各位按位取反,取反后整體加1,例如:-10的原碼為10001010,符號(hào)位不變:1??0001010,其余位按位取反:1??1110101,取反后整體加1:11110101?+?1?=?11110110
//正數(shù)補(bǔ)碼轉(zhuǎn)原碼:補(bǔ)碼的符號(hào)位為0,表示該補(bǔ)碼的原碼是一個(gè)正數(shù),所以補(bǔ)碼就是該數(shù)的原碼,例如:補(bǔ)碼為00001010,它的符號(hào)位是0,代表它是一個(gè)正數(shù)的補(bǔ)碼,正數(shù)的原碼就是補(bǔ)碼,反正也成立,所以它的原碼是00001010
//負(fù)數(shù)補(bǔ)碼轉(zhuǎn)原碼:補(bǔ)碼的符號(hào)位為1,表示該補(bǔ)碼的原碼是一個(gè)負(fù)數(shù),所以可以這樣求負(fù)數(shù)的原碼,符號(hào)位不變,其余各位按位取反,然后再整體加1,
//原碼轉(zhuǎn)補(bǔ)碼
//若為正數(shù),補(bǔ)碼即原碼
wire?[WIDTH-1:0]?unsigned_data;
assign?unsigned_data=data_in;
//若為負(fù)數(shù):符號(hào)位不變,其余各位按位取反,取反后整體加1
wire?[WIDTH-1:0]?signed_data;
assign?signed_data={data_in[WIDTH-1],~data_in[WIDTH-2:0]}?+?1;

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=487

  • 2-2401041055544O.doc
    下載

相關(guān)推薦