99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放



官方論壇
官方淘寶
官方博客
微信公眾號
點擊聯系吳工 點擊聯系周老師
您的當前位置:主頁 > FPGA原創 >

邊緣檢測工程:Ascii轉十六進制模塊代碼解析

發布時間:2019-12-14   作者:小黑同學 瀏覽量:

邊緣檢測工程:Ascii轉十六進制模塊代碼解析

作者:小黑同學

 

本文為明德揚原創文章,轉載請注明出處!

Ascii轉十六進制模塊的功能:將ASCII所對應的16進制數,轉成實質的16進制數

 

一、設計架構

 

上圖是Ascii碼表對應的數據。我們從圖中可以獲取到如下關鍵信息。

1. Ascii碼0~9對應的十六進制數為8h30~8h39也就是說收到ASCII碼的16進制數8h30~8h39時,就轉成0~9,也就是減去8h30

2. Ascii碼A~F對應的十六進制數為8h41~8h46也就是說收到ASCII碼的16進制數8h41~8h46時,就轉成A~F,也就是減去8h37

3. Ascii碼a~f對應的十六進制數為8h61~8h66也就是說收到ASCII碼的16進制數8h61~8h66時,就轉成a~f,也就是減去8h57

 

本模塊的功能,是對ASCII碼的0~9,a~f,A~F進行轉換,其他數據不轉換,不在此范圍的,數據無效。例如:

當din=8’h31(字符1),且din_vld = 1,則dout=4’h1,dout_vld=1;

當din=8’h41(大寫字母A)時,且din_vld=1,則dout=4‘d10,dout_vld=1;

如果輸入的ASCII不在數字0~9,A~F,a~f的時候,dout_vld就輸出0。

當din=8h49(大寫字母I)時,且din_vld=1,則dout=0,dout_vld=0。

 

二、信號的意義

 

信號

類型

意義

clk

輸入信號

時鐘信號。

rst_n

輸入信號

復位信號,低電平有效。

din

輸入信號

接收的Ascii碼數據,位寬為8bit。

din_vld

輸入信號

輸入數據有效指示信號,1bit位寬,當其為高電平時,對應輸入數據有效,表示接收到一字節的數據。注意,一個時鐘的高電平表示接收到一字節數據。

dout

輸出信號

Ascii碼轉化為十六進制數之后的輸出,位寬為4bit。

dout_vld

輸出信號

輸出數據有效指示信號,1bit位寬,當輸入在紅框范圍內時,dout_vld為高電平,表示Ascii轉十六進制轉化成功,當輸入不再紅框范圍內時,則dout_vld為低電平,表示數據無效。

 

 

三、參考代碼

 

下面展出本模塊的設計,歡迎進一步交流,如果需要源代碼,歡迎與本人聯系。

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

module acsii2hex(

    clk      ,

    rst_n    ,

    din      ,

    din_vld  ,

    

    dout    ,

    dout_vld    

    );

 

    parameter      DIN_W =         8;

    parameter      DOUT_W =        4;

    

    input               clk         ;

    input               rst_n       ;

    input [DIN_W-1:0]   din         ;

    input               din_vld     ;

 

    wire  [DIN_W-1:0]   din         ;

    wire                din_vld     ;

 

    output[DOUT_W-1:0]  dout        ;

    output              dout_vld    ;

 

    reg   [DOUT_W-1:0]  dout        ;

    reg                 dout_vld    ;

 

    always  @(posedge clk or negedge rst_n)begin

        if(rst_n==1'b0)begin

            dout_vld <= 0;

        end

        else if(din_vld&&((din>=8'd48&&din<8'd58)||(din>=8'd65&&din<8'd71)||(din>=8'd97&&din<8'd103)))begin

            dout_vld <= 1;

        end

        else begin

            dout_vld <= 0;

        end

    end

 

 

    always@(posedge clk or negedge rst_n)begin

        if(rst_n==1'b0)begin

            dout <= 0;

        end

        else if(din>=8'd48&&din<8'd58) begin

            dout <= din - 8'd48;

        end

        else if(din>=8'd65&&din<8'd71) begin

            dout <= din - 8'd55;

        end

        else if(din>=8'd97&&din<8'd103) begin

            dout <= din - 8'd87;

        end

        else begin

            dout <= 0;

        end    

    end

 

    endmodule

 

明德揚專注FPGA研究,我司正在連載兩本書籍:《基于FPGA至簡設計法實現的圖像邊緣檢測系統》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=691)、《ASIC和FPGA時序約束理論與應用》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=705),有興趣點擊觀看。

也歡迎加入群(838209674),及時獲取最新的文章信息,整個邊緣檢測工程源代碼可加Q:1817866119(N老師)獲取!

  •   
  •   
  •   
  •  
  • FPGA教育領域第一品牌
  • 咨詢熱線:020-39002701
  • 技術交流Q群:544453837
主站蜘蛛池模板: 免费一级特黄特色大片在线观看看 | 亚洲一区二区中文 | 日韩色视 | 免费看片免费播放 | 日本黄网址 | 国产成人综合久久精品亚洲 | 大美女久久久久久j久久 | 亚洲欧美一区二区三区在饯 | 久久国产免费观看精品3 | 猫咪人成免费网站在线观看 | 韩国一级毛片 | 久久国产精品老人性 | 91国内在线国内在线播放 | 黄色三级欧美 | 精品视频手机在线观看免费 | 色天天综合久久久久综合片 | 免费看全黄特黄毛片 | 千百橹最新亚洲地址在线播放 | 成人亚洲欧美综合 | 国产精品成人免费综合 | 久久777国产线看是看精品 | 风间由美理伦片在线观看 | 国产二区视频在线观看 | 一本毛片 | 色婷婷久久合月综 | 日韩欧美毛片免费看播放 | 国产三级在线观看免费 | 福利一区视频 | 日本一级毛一级毛片短视频 | 美女被靠视频免费网站不需要会员 | 美女拍拍拍爽爽爽爽爽爽 | 午夜亚洲国产成人不卡在线 | 国产视频毛片 | 国产九九免费视频 | 久久电影精品 | 久久中文字幕一区二区三区 | 中日韩毛片 | 69国产成人综合久久精品91 | 久热香蕉精品视频在线播放 | 国产伦精品一区二区三区在线观看 | 亚洲精品在线第一页 |