5.2主从模式混合的I℃总线接口电路的测试 测试过程使用两个该接口电路。在测试向量的激励下,一个被配置为master另一个则 被配置为slave,master和slave之间再进行数据传输的测试。具体测试过程:首先初始 化测试向量的控制信号,然后产生复位信号将接口电路复位,接下来开始master向slave 发送数据的进程,进程结束后读取master状态字,最后开始master向slave读取数据的 进程,如果进程结束,测试也就到此结束。 master向slave发送数据的具体过程:首先测试向量内置的状态机向master和slave 的各内部寄存器写数据,初始化发送进程,具体而言就是分配master和slaveI℃总线地址、 使能master和slave,,将寻址字节写入master的数据寄存器等待发送.然后状态机向master 的控制寄存器写入控制字,使master产生启始信号,开始进行寻址过程,状态机检测信号 MC℉信号判断寻址字节是否完成传送。传送完成,状态机向master的数据寄存器写入需要 发送的数据,再检测信号MC℉信号判断是否完成传送,如果数据传送完成,则再次向master 的数据寄存器写入数据直到所有数据发送完毕,最后状态机向master的控制寄存器写入控 制字,使master产生停止信号终止数据传送。 slave向master发送数据过程:首先测试向量内置的状态机向master和slave的各内 部寄存器写数据,初始化发送进程,再向master的控制寄存器写入控制字,使master产生 启始信号,态机检测信号MC℉信号判断寻址字节是否完成传送。传送完成,接下来master 开始接收数据,所有的数据接收完成后,master不响应slave,以便产生停止信号。最后, 状态机向master的控制寄存器写入控制字,使master产生停止信号终止数据传送。 VHDL语言实现的测试向量: 测试中设置两个数组分别按顺序存放测试中的所使用的地址和数据,并用cycle作为 指针,来寻址得到每个数据传送周期中测试所需要的地址和数据。 测试控制进程: 初始化控制进程 cycle <0: g0〈=’0': write <='0' 一个数据传送周期 cycle <cycle 1; wait until mof ='1'; 一只用于检测数据是否以被I℃控制器发送完毕 g0(=’1': wait until clk'event and clk ='1'; wait until clk'event and clk ='1'; g0=’0': wait until done ='1'; 测试内置的状态机: 该状态机是由时钟上升沿驱动进行状态转换的。 系统复位后状态机进入IDLE状态,AS,DS输出为高电平,信号done为1。如果信 号go变成l,系统将信号doe置为‘0’,并将地址发到数据总线上,如果是写周期,将 220: @R9/XY STU 7'%F¶jk#$9 Oyüz{ Q #$9 y|z Oyüz{ [ y|z ¥Ü8«¬%Ã7òl¤m7 ¶WX¡¢É?ïî¡¢¥O)â7 Oyüz{ y|z ãw«p?X/ Oyüz{ uv·?â7 Oyüz{ y|z X/« ÚÛpê&p% Oyüz{ y|z ãw«Ã7òl¤¶Î$uvw Oyüz{ [ y|z ÎäÏá Y«m7ãwÃÅiå# Oyüz{ [ y|z ·¨< 'Ò Oyüz{[ y|zO¥§¨·´YMOyüz{«Ïá ¢£ãw%É?uvwOyüz{ WXÏá YMWX·' Oyüz{ ïî;7¡¢â78§¨7uvwç¡¢ P
¡¢no§¨·´ ®Ù¬w%¬w®Ùuvw Oyüz{ «Ïá YM,- ãw«Üç¡¢ P
¡¢no ®Ù¬wÚÛ«¬w®ÙQܦ Oyüz{ «Ïá YM«Ó+Ä«ãw®D?uvw Oyüz{ WXÏá YMW X·' Oyüz{ ïî¡¢¾«¬w% y|z Oyüz{ ãw«7òl¤¶Î$uvw Oyüz{ [ y|z Î äÏá Y«m7ãwOÜ Oyüz{ WXÏá YMWX·' Oyüz{ ïî ;7¡¢vwç¡¢ P
¡¢no§¨·´ ®Ù¬w%¬w®Ù) Oyüz{ â7x«+Ä«x®Ù? Oyüz{ ¸ y|z 5Öïî¡¢%? uvw Oyüz{ WXÏá YMWX·' Oyüz{ ïî¡¢¾«¬w% cdef fi¶ò *$ºåp»CáA*+'·¨[«D èèz I9 q)§¨(t«¬w?@*+,-·¨[«% WXò m7WX èèz ! K ! K {üz ! K «¬w?@ èèz ! èèz  g yü Nõü Oèg jjNÐç« 5 WX ãw®D ! g yü Nõü èúz|zõü yõÕ èú g yü Nõü èúz|zõü yõÕ èú g ! K yü Nõü Õõz g Î$uvwò uvwB>IÙñ;8uvØð% st?uvwM efH uv e 9÷-¡¢ Õõz 9 g %ÚÛ¡ ¢ Ù gOst¥¡¢ Õõz $9Æ K ÇD¥·¨ã«IÚÛY?@¥