首页 理论教育硬件描述语言的设计实例

硬件描述语言的设计实例

【摘要】:表5.14-2 编码器真值表表5.1中,“x”表示不定位,可以是“0”,也可以是“1”,根据真值表写出Verilog实现代码,如例5.2所示。例5.2 4-2编码器示例主要使用casex语句实现编码过程,其测试文件如例5.3所示。例5.3 4-2编码器测试文件编码结果如图5.12所示。例5.5 四分频器测试代码仿真结果如图5.13所示。

1.组合逻辑实例:编码器

编码器是将某些特定的逻辑信号变成二进制编码,能够对原有信号进行转换压缩,常用于通信、数字信号处理等系统中。简单4-2编码器是典型的组合逻辑,输入信号根据规则变成有标准的编码信号,4-2编码器是指输入4bit位宽信号,经过编码器后,输出2bit编码信号,其真值表如表5.1所示。

表5.14-2 编码器真值表

978-7-111-55094-5-Chapter05-18.jpg

表5.1中,“x”表示不定位,可以是“0”,也可以是“1”,根据真值表写出Verilog实现代码,如例5.2所示。

例5.2 4-2编码器示例

978-7-111-55094-5-Chapter05-19.jpg

主要使用casex语句实现编码过程,其测试文件如例5.3所示。

例5.3 4-2编码器测试文件

978-7-111-55094-5-Chapter05-20.jpg

978-7-111-55094-5-Chapter05-21.jpg

编码结果如图5.12所示。

978-7-111-55094-5-Chapter05-22.jpg

图5.12 4-2编码器仿真结果

图5.12中,当复位信号“rst”释放之后,输出信号“data_out”根据输入信号“data_in”的变化而变化,查找真值表,输入“1100”输出“10”,输入“1101”输出“00”,与真值表吻合,实现了4-2编码功能。

2.时序逻辑实例:分频器

分频器是将输入信号的频率进行分频,把输出信号的频率变成成倍低于输入信号的频率,相位保持一致,也可以根据设计者需求调整初始相位。简单分频器是典型的时序逻辑,在这里以四分频为例,将输入的时钟信号进行四分频输出,如例5.4所示。

例5.4 四分频示例

978-7-111-55094-5-Chapter05-23.jpg

主要通过两个寄存器实现,第一个用输入时钟“clk_in”触发,第二个用第一个寄存器的输出“clk_temp”触发,能够实现两个二分频电路的级联。其测试代码如例5.5所示。

例5.5 四分频器测试代码

978-7-111-55094-5-Chapter05-24.jpg

仿真结果如图5.13所示。

978-7-111-55094-5-Chapter05-25.jpg

图5.13 四分频器仿真结果

图5.13中,可以看出输出信号“clkout”是输入信号“clkin”的四分频,用大线圈出,其中,中间信号“clktemp”是输入信号“clkin”二分频的结果,用小线圈出,两个二分频电路的级联,结果就是四分频。