2.设计
2.1.需求分析
此次需求提供的十分明确,给出了编码规则及示例,明确了编解码端口要求;仿真模块根据设计进行适配。
2.2.hdb3编码模块
对hdb3编码规则解读如下:
复位(rst)有效(1)时,进行初始化,输出valid为0、hdb3_code为0编码(000)。采用异步复位、同步释放。当复位(rst)无效(0)时进行编码。
在输入时钟clk的上升沿进行转换。
在clk上升沿进行判别时,当输入ready为有效(1),data_in有效,为0或1。
对ready和data_in打一节拍,人为产生1个clk的延时。
在clk上升沿进行编码判别,data_in有效为1时,立即进行编码,若存在待转换的0,待转换的0也进行编码,并加入待输出编码队列;当data_in有效为0时,若存在待转换的0的个数为(0~3)、也即当前为第4个0,则进行编码,并加入待输出编码队列,否则暂停编码。
在clk上升沿进行编码输出,若存在待输出编码,则输出valid为1、hdb3_code为对应编码。
一共7种编码形式,对应0、±1、±b、±v;1可能被编码为+1、-1,0可能被编码为0、+b、-b、+v、-v。1、b极性交替(+、-交替出现)、v极性交替;第一个编码极性为+。当出现0时,若是连续的第4个0,则替换为v(极性按交替规则),然后若v极性和前一个1或b的极性不同,则将连续4个0中的第1个0替换为b且极性和v相同,其余0编码为0.由此可见,编码应在rst无效(为0)、ready有效(为1)时按照data_in(0或1)、积累的待编码0数量(0~3)、上一个1或b的极性、上一个v的极性开展,编码后更新待输出编码数量和待输出编码队列。故在编码模块“tt_hdb3_encoder”中设置了如下信号量:
tmp_rst:std_logic_vector(1 downto 0),初始化为00,用于复位同步释放,同时将复位输入rst有效性由1变为0.
tmp_din,tmp_ready:std_logic,分别对data_in和ready打一节拍。
tmp_dataout,深度为4、宽度为3的输出编码缓冲,最多4个。
flag_1bpol、flag_vpol:std_logic,1或b极性、v极性标志位,表征上一个1/b/v的极性,0表示-、1表示+。
cnt_tbpo:natural range 0 to 7 := 0,待输出编码个数,实际范围为(0~4)。
cnt_tbc:natural range 0 to 3 := 0,待编码0个数,范围为(0~3)。当cnt_tbpo>0时,每个clk上升沿将输出编码缓冲的(cnt_tbpo-1)编码对外输出。具体代码实现使用vhdl,在ise14.7中完成,文件为“tt_hdb3_encoder.vhd”。2.3.hdb3解码模块相对于编码,hdb3解码较为简单,输入有效时,将±1解码为1、将0/±b/±v解码为0;解码模块tt_hdb3_decoder的复位、输入打节拍处理同编码模块。
具体代码实现使用vhdl,在ise14.7中完成,文件为“tt_hdb3_decoder.vhd”。2.4.编解码仿真模块编解码仿真需要提供可控的输入数据流data_in。此次,通过附加test_2bit模块来提供仿真数据流,建立一个多位的std_logic_vector(80位),在clk时钟上升沿从低位逐位移出。仿真准备:将test_2bit、tt_hdb3_encoder、tt_hdb3_decoder例化在test_top工程下,但是将test_2bit的输入时钟和编解码模块的输入时钟取反,便于在编解码仿真时输入数据稳定。
3.验证
由于预建立了仿真工程test_top,仿真文件tbw_test_top处理较为简单,设置rst和ready即可。在ise14.7环境下使用isim完成了仿真验证。
在vivado2018.3环境下(仿真vivado simulator)也进行了仿真验证。
资源使用情况(target device: xc7k325t-2ffg900,ise14.7):
module name slices slice reg luts bufg 说明
test_top 1/36 0/47 1/79 1/1 测试top文件
inst_test_2bit 3/3 8/8 8/8 0/0 测试激励文件1
inst_tt_hdb3_decoder 4/4 8/8 3/3 0/0 解码模块
inst_tt_hdb3_encoder 28/28 31/31 67/67 0/0 编码模块
支出超201亿美元!华为成为全球第三大芯片买家
大内存时代振奋人心的CXL技术(下)
HM72B系列可处理高功率环境的SMT电感
国家宝藏版荣耀20珍藏礼盒开启预约 售价2699元起
人工智能热潮袭来 医疗人工智能备受关注
HDB3编解码简析
OPPOR15x和OPPOK1哪个好
革命性创新工艺:利用太阳能生产水泥
亚马逊推出一款新的增强现实应用
华为P11什么时候上市?华为P11提前曝光来救场,麒麟970+8G运存+望式双摄暴强配置
智能制造与数字化转型
稳压电源保护电路图
以车流量为核心的智能交通灯自动控制系统
GPU自主运算时代来临,人工智能将实现多元应用
大数据+深度学习下,BigDL框架的利弊与应用教程
硝基化合物电化学还原衍生的偶氮化合物用于高性能锂电池
声控玩具小猫的电路
虹科方案 | 您的通用软件无线电外设升级了吗?虹科提供最新高频5G毫米波解决方案
无线数传电台模块E3A-DTU-500介绍
富士通NEC表示2014年将推出Tizen OS设备