【FPGA基础】四位二进制--格雷码转换器(vivado)
生活随笔
收集整理的這篇文章主要介紹了
【FPGA基础】四位二进制--格雷码转换器(vivado)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【設計要求】
設計一個4位的二進制格雷碼轉換電路
編寫代碼并進行仿真
【格雷碼】
格雷碼是任意兩個相鄰的代碼只有一位二進制數不同的編碼,它與奇偶校驗碼同屬可靠性編碼。
【設計思路】
從對應的n位二進制碼中直接得到n位格雷碼,需要先對n位二進制從右到左,以0—n-1編號。如果二進制碼的第i位和第i+1位相同則第i位格雷碼為0,反之則為1.(0<= i <= n-1)
【BCD_TRANS.v】
timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2020/07/28 12:53:18 // Design Name: znj // Module Name: BCD_TRANS // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // //module BCD_TRANS( input[3:0] bin4, input clk,output reg[3:0] gray4);//中間變量 integer i; always @*beginfor(i = 0;i < 4;i = i + 1)if(i == 3)begingray4[i] = bin4[i];endelsebegingray4[i] = bin4[i] ^ bin4[i+1];endend endmodule【sim1.v】
timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2020/07/28 13:16:11 // Design Name: // Module Name: sim1 // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // //module sim1();reg clk =0;reg[3:0] bin4;wire[3:0] gray4;BCD_TRANS test(.clk(clk),.bin4(bin4),.gray4(gray4));integer i;alwaysbeginfor(i = 0;i < 4;i = i + 1)bin4[i] <= {$random} % 2;#10 clk = ~clk;endendmodule【仿真驗證】
總結
以上是生活随笔為你收集整理的【FPGA基础】四位二进制--格雷码转换器(vivado)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 编译luajit,And
- 下一篇: PDA开发从入门到精通