lcytms
发表于 2018-5-3 11:54:51
1116
8位。
写成tdata,发送的数据,7:0。
向FIFO写数据。
这是一个汉明码的编解码器。
既然是FIFO,就会有FIFO的写请求。
有FIFO的握手,满了不能写。
缩写是TF。
lcytms
发表于 2018-5-3 11:57:22
1117
同样这个完成了以后,我们也做它的ABV的验证。
上游逻辑在进行通信的时候,它用不着管理具体的细节,它只用向FIFO里面写数据,不满就可以写进去。
后面就是自动对接。
后面呢,编码器,encoder。
lcytms
发表于 2018-5-4 09:27:09
1118
这边读出来的是tf_q,7:0。
这是hc_out。
同样要写发送的状态机,TFSM。
状态机发出读请求。
lcytms
发表于 2018-5-4 09:28:24
1119
什么时候不能读呢?
空了不能读,tf_empty。
状态机给编码器发出使能信号,he_en。
控制这个HE,不像我刚才那么简单。
它有7:0,8个比特,它要分两次来装配。
lcytms
发表于 2018-5-4 09:29:22
1120
所以说呢,有HE的高位,和HE的低位,he_enh/l。
所以说,我们还得做TP图,还得分析。
这是它的汉明码的编码器。
lcytms
发表于 2018-5-5 21:53:33
1121
接着是汉明码的decoder。
所以说这边是7:0,进去了以后,内部还转成3:0。
这边也对接FIFO,接收FIFO,r_fifo,RF。
Rf_data,7:0。
它是6:0进来。
lcytms
发表于 2018-5-5 21:55:56
1122
接收的状态机,RFSM。
同样有两个信号。
lcytms
发表于 2018-5-5 21:57:24
1123
这边我们要做一个简化。
就是接收的时候,不让它满。
满了以后,这边传过来的数据就要丢失了。
所以就把满这个信号就去掉了。
然后,FIFO读出来,rdata,7:0。
有读请求。
然后输出一个握手线,用量,rd_usedw。
lcytms
发表于 2018-5-5 21:58:35
1124
如果256的深度,就是7:0。
然后状态机同样要控制HD,两根线,hd_enh、hd_enl。
因为它要装两次。
当enh为真的时候,是把6:0的汉明码装到rf_data的7:4。
当它发出的是低位,hd_enl,就把6:0的汉明码装配到rf_data的3:0。
lcytms
发表于 2018-5-5 21:59:18
1125
并且3:0完了以后,状态机必须正确地写到FIFO里面去。
上游的逻辑根据用量,把它捕获到。
这次做ABV的验证呢,向TF写一组数,这边发一段,这边收一段。
用ABV也可以。
我们还是建议尽可能地向现代的潮流靠拢。
我们尽可能地建议大家用ABV来做。
这个就是我们现在要做的事情。