关于基于FPGA的IRIG_B码编码器的设计
最近做的项目中有一个模块是做IRIG_B码的编码模块,部分程序:
case count100 is
when 1=>irig_b<=to_irig_b(secone(0));
when 2=>irig_b<=to_irig_b(secone(1)); --输出秒个位
when 3=>irig_b<=to_irig_b(secone(2));
when 4=>irig_b<=to_irig_b(secone(3));
when 6=>irig_b<=to_irig_b(secten(0));
when 7=>irig_b<=to_irig_b(secten(1)); --输出秒十位
when 8=>irig_b<=to_irig_b(secten(2));
when 10=>irig_b<=to_irig_b(minone(0));
when 11=>irig_b<=to_irig_b(minone(1));
when 12=>irig_b<=to_irig_b(minone(2)); --输出分个位
when 13=>irig_b<=to_irig_b(minone(3));
when 15=>irig_b<=to_irig_b(minten(0));
when 16=>irig_b<=to_irig_b(minten(1)); --输出分十位
when 17=>irig_b<=to_irig_b(minten(2));
when 20=>irig_b<=to_irig_b(hourone(0));
when 21=>irig_b<=to_irig_b(hourone(1));
when 22=>irig_b<=to_irig_b(hourone(2)); --输出时个位
when 23=>irig_b<=to_irig_b(hourone(3));
when 25=>irig_b<=to_irig_b(hourten(0)); --输出时十位
when 26=>irig_b<=to_irig_b(hourten(1));
when 30=>irig_b<=to_irig_b(dayone(0));
when 31=>irig_b<=to_irig_b(dayone(1));
when 32=>irig_b<=to_irig_b(dayone(2)); --输出天个位
when 33=>irig_b<=to_irig_b(dayone(3));
when 35=>irig_b<=to_irig_b(dayten(0));
when 36=>irig_b<=to_irig_b(dayten(1)); --输出天十位
when 37=>irig_b<=to_irig_b(dayten(2));
when 38=>irig_b<=to_irig_b(dayten(3));
when 40=>irig_b<=to_irig_b(dayhundred(0));
when 41=>irig_b<=to_irig_b(dayhundred(1)); --输出天百位
我定义的irig_but std_logic_vector(9 downto 0); 这里输出天、时、分、秒信息,count100是100计数器。例:secone(0)=1,则相应的irig_b码为"1111100000",若=0,则相应的irig_b码为"0000000011",现在的问题是怎么把这么多(一共100)个irig_b码串在一起输出,就像这样1111111100 11111000000 0000000011 1111100000 1111111100 ...........
标题
用移位寄存器
