Verilog上机实验题目4(哈夫曼编码器)
相关文章:哈夫曼编码器
[Verilog上机实验题目1:8位数字显示的简易频率计]
[Verilog上机实验题目2:11位巴克码序列峰值检测器]
[Verilog上机实验题目3:FIR滤波器]
[Verilog上机实验题目4:哈夫曼编码器]
要求对一段数据序列进行哈夫曼编码,使得平均码长最短,输出各元素编码和编码后的数据序列。
- 组成序列的元素是[0-9]这10个数字,每个数字其对应的4位二进制数表示。比如5对应0101,9对应1001。
- 输入数据序列的长度为256。
- 先输出每个元素的编码,然后输出数据序列对应的哈夫曼编码序列。
文章图片
【Verilog上机实验题目4(哈夫曼编码器)】以上转载自百度文库
文章图片
本题是第一届(2016-2017)全国大学生集成电路创新创业大赛全国总决赛FPGA设计方向的第一题,利用Xilinx的Vivado软件平台进行仿真综合实现,在EEPW网站有许多获奖作品(例如成电的三等奖、二等奖)。
在研究学习了FPGA作业题verilog源文件 哈夫曼编码代码后发现了一些问题,此代码是大连理工大学某同学使用赛灵思的ISE软件平台,所用芯片型号为xc4vsx25。
文章图片
在此代码中采用的SORT排序方法和HTREE生成树方法较为复杂,并且无法生成不定码长的哈夫曼码,因此本次上机实验意图采用其他方式获取一组256位数字序列,并计算出其元素对应的哈夫曼码。其他部分采用RTL级代码编写。
代码的难点在于:
- 将输入的256位数据存储起来,待output_start信号有效时,再输出给编码器,编码后变为不定长的哈夫曼码
- 将输入的256位数统计频率形成哈夫曼树得出不定长的哈夫曼码,也可以放在定长的寄存器,但是要记录每个元素的哈夫曼码字长,以便在编码输出时准确的输出每个元素相对应的不定长哈夫曼码
- 将每一位数据编码形成不定长的哈夫曼码再一位一位输出,可以采用状态机的形式,按字长将1-9的哈夫曼码分类
推荐阅读
- 【学生作品】温暖的记忆
- 实验室女王从0到1亿的1001天创业日记第62天
- 我在管理实验班中的一些经验教训
- “寓教于乐,丰知润德”——沭东实验学校临沂龙园研学旅行企划书
- 做实验
- 严慈相济话网课
- 【精力管理实验】精力统计day3
- 汇编实验(格雷码转二进制(ASCII码)的实现和调试)
- 地占术案例(明天会做动物实验吗())
- dCas9技术流程与实验问题解决方案