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来做。
        这个就是我们现在要做的事情。
页: 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20
查看完整版本: 跟李凡老师学FPGA扩频通信D03:串行通信汉明纠错码(20170...