zoukankan      html  css  js  c++  java
  • BCD译码器

    Binary-Coded Decimal,用四位二进制数来表示一位十进制(0-9)的编码形式。

    需要注意的是,在使用Verilog语句设计组合逻辑电路时(coding style的问题),尽量选择使用assign语句来代替always语句块。尤其是对于if-else语句来说使用 assign = ? : 条件选择语句设计出来的电路会更优,因为if-else语句可能会向下一级传播不定态。 造成逻辑电路错误。
    ————————————————

    module Decode_4_10(
                        data_in,
                        data_out
                        );
        input [3:0]data_in;
        output  [9:0]data_out;
        //output reg [9:0]data_out;
    /*    
        always@(*)
            case(data_in)
                4'b0000:data_out=10'b1111_1111_10;
                4'b0001:data_out=10'b1111_1111_01;
                4'b0010:data_out=10'b1111_1110_11;
                4'b0011:data_out=10'b1111_1101_11;
                4'b0100:data_out=10'b1111_1011_11;
                4'b0101:data_out=10'b1111_0111_11;
                4'b0110:data_out=10'b1110_1111_11;
                4'b0111:data_out=10'b1101_1111_11;
                4'b1000:data_out=10'b1011_1111_11;
                4'b1001:data_out=10'b0111_1111_11;
                default:data_out=10'b1111_1111_11;
            endcase
    */
    //assign description
        assign data_out[0]=~(~data_in[3]& ~data_in[2]& ~data_in[1]& ~data_in[0]);
        assign data_out[1]=~(~data_in[3]& ~data_in[2]& ~data_in[1]&  data_in[0]);
        assign data_out[2]=~(~data_in[3]& ~data_in[2]&  data_in[1]& ~data_in[0]);
        assign data_out[3]=~(~data_in[3]& ~data_in[2]&  data_in[1]&  data_in[0]);
        assign data_out[4]=~(~data_in[3]&  data_in[2]& ~data_in[1]& ~data_in[0]);
        assign data_out[5]=~(~data_in[3]&  data_in[2]& ~data_in[1]&  data_in[0]);
        assign data_out[6]=~(~data_in[3]&  data_in[2]&  data_in[1]& ~data_in[0]);
        assign data_out[7]=~(~data_in[3]&  data_in[2]&  data_in[1]&  data_in[0]);
        assign data_out[8]=~( data_in[3]& ~data_in[2]& ~data_in[1]& ~data_in[0]);
        assign data_out[9]=~( data_in[3]& ~data_in[2]& ~data_in[1]&  data_in[0]);
    endmodule 
    `timescale 1ns/1ns
    module tb;
        reg [3:0]data_in;
        wire [9:0]data_out;
        Decode_4_10 Decode_4_10(
                        .data_in(data_in),
                        .data_out(data_out)
                        );
        initial begin
            data_in=0;
            #100;
            data_in=1;
            #100;
            data_in=2;
            #100;
            data_in=3;
            #100;
            data_in=4;
            #100;
            data_in=5;
            #100;
            data_in=6;
            #100;
            data_in=7;
            #100;
            data_in=8;
            #100;
            data_in=9;
            #100;
        end
        
    endmodule
    YKJIAO
  • 相关阅读:
    Spring(二):Spring框架&Hello Spring
    Spring(一):eclipse上安装spring开发插件&下载Spring开发包
    MyBatis(三):数据库查询结果不为空,但是使用MyBatis框架查询为空问题
    wrapper x64 版本发布到centos
    Oracle:常用的一些基本操作
    Java:import com.sun.awt.AWTUtilities;报错
    Eclipse中JavaSwing图形插件安装
    Hibernate(五):Hibernate配置文件及C3P0的用法
    Hibernate(四):Hello World
    Hibernate(三): org.hibernate.HibernateException: No CurrentSessionContext configured!
  • 原文地址:https://www.cnblogs.com/ajiaoa/p/12745173.html
Copyright © 2011-2022 走看看