(原创)如何进行有符号小数乘法运算?(Verilog)

\uff08\u539f\u521b\uff09\u5982\u4f55\u8fdb\u884c\u6709\u7b26\u53f7\u5c0f\u6570\u4e58\u6cd5\u8fd0\u7b97\uff1f(Verilog)

1module fix_mult ( clk,rst_n,in_a,in_b,x1,x2,x3,x4,x5,x6,x7,y_out );2 3 input clk,rst_n; //\u65f6\u949f\u548c\u590d\u4f4d\u4fe1\u53f7 4 input [31:0] in_a,in_b; //\u8f93\u5165\u7684\u88ab\u4e58\u6570\u548c\u4e58\u6570 5 output [31:0] y_out; //\u8f93\u51fa\u7684\u4e58\u79ef 6/*\u5bc4\u5b58\u5668\u7c7b\u578b\u53d8\u91cf \u4e3a\u4e86\u80fd\u66f4\u6e05\u695a\u7684\u4e86\u89e3\u5168\u5904\u7406\u8fc7\u7a0b\uff0c7 \u7279\u5730\u8bbe\u8ba1\u4e3a\u8f93\u51fa\u7684\uff0c\u4e0d\u7136\u4eff\u771f\u53ef\u80fd\u4f1a\u88ab\u7efc\u5408\u6389*/ 8 output [15:0] x1,x2,x3,x4;9 output [0:0] x5;10 output [29:0] x6;11output [31:0] x7;1213/////////////////////////////////////////////////////14reg [31:0] y_out;15reg [15:0] x1,x2,x3,x4;16reg [0:0] x5;17reg [29:0] x6;18reg [31:0] x7;192021always @ ( posedge clk )22begin23if ( !rst_n ) //\u590d\u4f4d\u65f6\uff0c\u5168\u90e8\u5bc4\u5b58\u5668\u53d8\u91cf\u6e05\u96f624begin25 x1 <=16'b0;26 x2 <=16'b0;27 x3 <=16'b0;28 x4 <=16'b0;29 x5 <=1'b0;30 x6 <=30'b0;31 x7 <=32'b0;32 y_out <=32'b0;33end34else//\u5168\u8fc7\u7a0b\u53ef\u4ee5\u770b\u6210\uff1a\u628a32\u4f4d\u7684\u5c0f\u6570\u622a\u53d6\u9ad816\u4f4d\u2014\u300b\u5de6\u79fb16\u4f4d\uff0c\u53d8\u4e3a16\u4f4d\u6574\u6570\u2014\u300b35//\u76f8\u4e58\u5f97\u523032\u4f4d\u6574\u6570\u4e58\u79ef\u540e\uff0c\u53f3\u79fb32\u4f4d\u2014\u300b\u8c03\u6574\u65e0\u5173\u4f4d\u7684\u4f4d\u7f6e\u2014\u300b\u5f97\u523032\u4f4d\u5c0f\u657036begin37 x1 <= in_a[31:16]; //\u622a\u53d616\u4f4d\u88ab\u4e58\u6570\uff0c38 x2 <= in_b[31:16]; //\u622a\u53d616\u4f4d\u4e58\u657039 x3 <= (x1[15]==0)? x1:{x1[15],~x1[14:0]+1'b1}; //\u636e\u6700\u9ad8\u4f4d\u5224\u65ad\u662f\u5426\u4e3a\u8d1f\u6570\uff0c40//\u82e5\u8d1f\u6570\u5219\u628a\u8865\u7801\u8f6c\u6210\u539f\u780141 x4 <= (x2[15]==0)? x2:{x2[15],~x2[14:0]+1'b1}; 42 x5 <= x3[15] ^ x4[15]; //\u4e24\u6570\u7b26\u53f7\u4f4d\u76f8\u5f02\u6216\uff0c\u5f97\u5230\u4e58\u79ef\u7684\u7b26\u53f7\u4f4d43 x6 <= x3[14:0]*x4[14:0]; //\u4e24\u6570\u7684\u6570\u636e\u4f4d\u76f8\u4e5844 x7 <= {x5,x6,1'b0}; //\u4e58\u79ef\u75311\u4f4d\u7b26\u53f7\u4f4d\u548c30\u4f4d\u6570\u636e\u4f4d\u53ca1\u4f4d\u65e0\u5173\u7ec4\u6210\uff1b45//\u56e0\u4e3a\u662f\u5c0f\u6570\uff0c\u5f80\u4f4e\u4f4d\u751f\u957f\uff0c\u6240\u4ee5\u65e0\u5173\u4f4d\u653e\u7f6e\u6700\u4f4e\u4f4d46 y_out <= (x7[31]==0)? x7:{x7[31],~x7[30:0]+1'b1}; 47end48end4950endmodule

x2:{x2[15],~x2[14:0]+1'b1}; 42 x5

x2:{x2[15],~x2[14:0]+1'b1}; 42 x5 <= x3[15] ^ x4[15]; //两数符号位相异或,得到乘积的符号位43 x6 <= x3[14:0]*x4[14:0]; //两数的数据位相乘44 x7 <= {x5,x6,1'b0}; //乘积由1位符号位和30位数据位及1位无关组成;45//因为是小数,往低位生长,所以无关位放置最低位46 y_out <= (x7[31]==0)?

  • (鍘熷垱)濡備綍杩涜鏈夌鍙峰皬鏁颁箻娉杩愮畻?(Verilog)
    绛旓細x2:{x2[15],~x2[14:0]+1'b1}; 42 x5 <= x3[15] ^ x4[15]; //涓ゆ暟绗﹀彿浣嶇浉寮傛垨锛屽緱鍒颁箻绉殑绗﹀彿浣43 x6 <= x3[14:0]*x4[14:0]; //涓ゆ暟鐨勬暟鎹綅鐩镐箻44 x7 <= {x5,x6,1'b0}; //涔樼Н鐢1浣嶇鍙蜂綅鍜30浣嶆暟鎹綅鍙1浣嶆棤鍏崇粍鎴愶紱45//鍥犱负鏄灏忔暟锛屽線浣庝綅鐢熼暱锛屾墍浠ユ棤鍏...
  • (鍘熷垱)濡備綍杩涜鏈夌鍙峰皬鏁颁箻娉杩愮畻?(Verilog)
    绛旓細y_out );2 3 input clk,rst_n; //鏃堕挓鍜屽浣嶄俊鍙 4 input [31:0] in_a,in_b; //杈撳叆鐨勮涔樻暟鍜屼箻鏁 5 output [31:0] y_out; //杈撳嚭鐨勪箻绉 6/*瀵勫瓨鍣ㄧ被鍨嬪彉閲 涓轰簡鑳芥洿娓呮鐨勪簡瑙e叏澶勭悊杩囩▼锛7 鐗瑰湴璁捐涓鸿緭鍑虹殑锛
  • excel琛ㄦ牸涓濡備綍杩涜灏忔暟鐐逛箻闄xcel琛ㄦ牸涓浣曡繘琛屽皬鏁扮偣涔橀櫎杩愮畻_鐧 ...
    绛旓細Excel鍙互閫氳繃鐩存帴浣跨敤涔樺彿(*)杩涜灏忔暟鐐涔樻硶璁$畻銆備緥濡傦紝鑻ヨ璁$畻3.5涔樹互0.8锛屽彧闇鍦ㄥ崟鍏冩牸涓緭鍏モ=3.5*0.8鈥濆嵆鍙緱鍒扮瓟妗2.8銆傞渶瑕佹敞鎰忕殑鏄紝鍦‥xcel涓紝灏忔暟鐐逛竴鑸噰鐢ㄨ嫳鏂囧彞鐐(.)鑰屼笉鏄腑鏂囧彞鍙枫傚鏋滆繘琛岀殑鏄涓皬鏁扮偣鐨勮繍绠楋紝闇瑕佹敞鎰忎繚鎸佽繍绠楅『搴忔潵閬垮厤鍑洪敊銆
  • 灏忔暟鐨涔樻硶鎬庝箞绠
    绛旓細1銆佺‘瀹氬皬鏁扮偣鐨勪綅缃細鍦ㄨ繘琛屽皬鏁颁箻娉曚箣鍓嶏紝棣栧厛瑕佺‘瀹氬皬鏁扮偣鐨勪綅缃銆備竴鑸潵璇达紝灏忔暟鐐圭殑浣嶇疆鏄牴鎹袱涓暟涓緝灏忔暟鐨勪綅鏁版潵纭畾鐨勩備緥濡傦紝濡傛灉涓や釜鏁板垎鍒槸0.1鍜0.01锛岄偅涔堝畠浠浉涔樼殑缁撴灉搴旇鏄0.001锛屽洜涓轰袱涓皬鏁颁綅鏁扮殑鍜屼负3銆2銆佸榻愬皬鏁扮偣锛氬湪杩涜涔樻硶杩愮畻鏃讹紝闇瑕佸皢涓や釜鏁扮殑灏忔暟鐐瑰榻愩傚鏋...
  • 鏈変粈涔堟妧宸у彲浠ュ湪灏忔暟涔樻硶绔栧紡璁$畻涓娇鐢?
    绛旓細1. 纭畾灏忔暟鐐圭殑浣嶇疆锛氬湪杩涜灏忔暟涔樻硶绔栧紡璁$畻涔嬪墠锛屾垜浠渶瑕佺‘瀹氬皬鏁扮偣鐨勪綅缃傛牴鎹袱涓皬鏁扮殑灏忔暟浣嶆暟锛屾垜浠彲浠ョ‘瀹氱粨鏋滅殑灏忔暟浣嶆暟銆備緥濡傦紝濡傛灉涓や釜灏忔暟鐨勫皬鏁颁綅鏁板垎鍒负3鍜2锛岄偅涔堢粨鏋滅殑灏忔暟浣嶆暟搴斾负5銆2. 瀵归綈灏忔暟鐐癸細鍦ㄨ繘琛屽皬鏁颁箻娉曠珫寮忚绠楁椂锛屾垜浠渶瑕佸皢涓や釜灏忔暟鐨勫皬鏁扮偣瀵归綈銆傝繖鏍峰彲浠ョ‘淇濇垜浠湪...
  • 濡備綍璁$畻灏忔暟涔樻硶?
    绛旓細绗竴姝ワ細灏5脳0.34鍐欏叆涔樻硶绔栧紡涓傚鍥撅細绗簩姝ワ細鍘绘帀灏忔暟鐐广傛妸0.34鏀惧ぇ100鍊嶅彉鎴34锛屽啀鎸夋暣鏁涔樻硶杩涜璁$畻銆傚鍥撅細绗笁姝ワ細璁$畻4涔樹互5锛岀粨鏋滀负20锛屽啓鍏ョ珫寮忎腑锛堝洜鈥4鈥濇墍鍦ㄤ綅缃槸涓綅鏁帮紝鎵浠ョ粨鏋滈渶瀵归綈涓綅鏁帮級銆傚鍥撅細绗洓姝ワ細璁$畻3涔樹互5锛岀粨鏋滀负15锛屽啓鍏ョ珫寮忎腑锛堝洜鈥3鈥濇墍鍦ㄤ綅缃槸鍗佷綅鏁...
  • 灏忔暟涔灏忔暟璇濡備綍璁$畻?
    绛旓細锛1锛夊厛鎶灏忔暟鎵╁ぇ鎴愭暣鏁般傦紙2锛夋寜鏁存暟涔樻硶鐨勬硶鍒欑畻鍑虹Н銆傦紙3锛夊啀鐪嬪洜鏁颁腑涓鍏辨湁鍑犱綅灏忔暟锛屽氨浠庣Н鐨勫彸杈硅捣鏁板嚭鍑犱綅鐐逛笂灏忔暟鐐广備箻寰楃殑绉殑灏忔暟浣嶆暟涓嶅鏃讹紝瑕佸湪鍓嶉潰鐢0琛ヨ冻鍐嶇偣灏忔暟鐐广傦紙4锛夌珫寮忥細0.23脳0.75涓鍏辨湁4浣嶅皬鏁帮紝鎵浠ヤ粠1725鐨勪釜浣嶆暟璧凤紝鍦ㄧ鍥涗綅鐨勫墠闈㈢偣涓婂皬鏁扮偣銆
  • 甯﹀皬鏁鐐圭殑涔樻硶璁$畻鍏紡鏄濡備綍璁$畻?
    绛旓細甯﹀皬鏁鐐圭殑涔樻硶璁$畻鍏紡:甯﹀皬鏁扮偣鐨勪箻娉曡繍绠楁椂锛屽彲浠ュ厛蹇界暐灏忔暟鐐广傝绠楁暟瀛椼傚緱鍑虹粨鏋滀箣鍚庯紝鍐嶇湅鍥犳暟鐨勫皬鏁扮偣鍚庢湁鍑犱綅锛屽啀鐩稿簲灏嗙粨鏋滅殑灏忔暟鐐瑰悜鍓嶇Щ鍔ㄥ嚑浣嶃
  • 灏忔暟涔樻硶濡備綍璁$畻?
    绛旓細灏忔暟涔樻硶鐨勮繍绠楁硶鍒欙細1銆佸厛鎸夌収鏁存暟涔樻硶鐨勬硶鍒欐眰鍑虹Н锛2銆佸啀鐪嬭涔樻暟鍜屼箻鏁颁竴鍏辨湁鍑犱綅灏忔暟锛屽氨浠庣Н鐨勫彸杈硅捣鏁板嚭鍑犱綅锛岀偣涓婂皬鏁扮偣锛3銆佸鏋滃皬鏁扮殑鏈熬鍑虹幇0鏃讹紝鏍规嵁灏忔暟鐨勫熀鏈ц川锛屾妸灏忔暟鏈熬鐨0鍒掑幓銆備緥濡傦細6.49脳7.5=48.675锛屽叾璁$畻姝ラ濡備笅鍥炬墍绀猴細...
  • 濡備綍璁$畻灏忔暟涔樻硶?
    绛旓細璁$畻灏忔暟涔樻硶鐨勬柟娉曞涓嬶細1銆佹寜鏁存暟涔樻硶鐨勬硶鍒欑畻鍑虹Н銆2銆佸啀鐪嬪洜鏁颁腑涓鍏辨湁鍑犱綅灏忔暟锛屽氨浠庡緱鏁扮殑鍙宠竟璧锋暟鍑哄嚑浣嶏紝鐐逛笂灏忔暟鐐广3銆佸緱鏁扮殑灏忔暟閮ㄥ垎鏈熬鏈0锛屼竴鑸鎶0鍘绘帀銆傚皬鏁版蹇碉細灏忔暟鐢辨暣鏁伴儴鍒嗐佸皬鏁伴儴鍒嗗拰灏忔暟鐐圭粍鎴愩傚綋娴嬮噺鐗╀綋鏃跺線寰浼氬緱鍒扮殑涓嶆槸鏁存暟鐨勬暟锛屽彜浜哄氨鍙戞槑浜嗗皬鏁版潵琛ュ厖鏁存暟锛屽皬鏁...
  • 扩展阅读:键盘打出特殊符号大全 ... ッシ类似这样的符号 ... 兀的圆周率1000000位 ... 超小符号缩小版大全 ... べ特殊符号 ... 丶符号大全可复制 ... 打不出来的特殊字 ... 小符号大全 ... 生气的符号 爆筋 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网