Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
FS_manager.v
Package: inter_prediction(verilog).rar [view]
Upload User: abszbd2002
Upload Date: 2020-10-12
Package Size: 33407k
Code Size: 46k
Category:
Compress-Decompress algrithms
Development Platform:
VHDL
- //Design : inter prediction
- //Author : li haibin
- //files : FS_manager
- //Description : 通过状态机,来管理运动估计的数据载入和数据流动;
- // 产生运动估计阵列256个PE单元的选择信号和数据流动的使能信号;
- //------------------------------------------------------------------------------------------------------------
- module FS_manager(clk,reset,cbready,swready,ven,sw_rden,cb_rden,
- sela,selb0,selb1,selb2,selb3,selb4,selb5,selb6,selb7,selb8,
- selb9,selb10,selb11,selb12,selb13,selb14,selb15,selc,
- sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7,sel8,sel9,sel10,
- sel11,sel12,sel13,sel14,sel15,en_cb,en_rb,en_new);
- input clk;
- input reset;
- input cbready;//当前宏块数据准备信号,‘1’表示有效;
- input swready;//参考宏块数据准备信号,‘1’表示有效;
- input ven;
- output sw_rden;//当前宏块数据读出使能;
- output cb_rden;//参考宏块数据读出使能;
- output sela;
- output [1:0] selb0,selb1,selb2,selb3,selb4,selb5,selb6,selb7,selb8,selb9,selb10,selb11,selb12,selb13,selb14,selb15;
- output [3:0] selc;
- output [1:0] sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7,sel8,sel9,sel10,sel11,sel12,sel13,sel14,sel15;
- output en_cb,en_rb,en_new;
- reg [7:0] present_state;
- reg [7:0] next_state;
- reg sela;
- reg [1:0] selb0,selb1,selb2,selb3,selb4,selb5,selb6,selb7,selb8,selb9,selb10,selb11,selb12,selb13,selb14,selb15;
- reg [3:0] selc,selc_temp,selc_temp1;
- reg [1:0] sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7,sel8,sel9,sel10,sel11,sel12,sel13,sel14,sel15;
- reg [9:0] counter1024 ,counter1024_temp;//搜索进行时的计数器,整个运动搜索需要1024个时钟周期,主要用于产生各种选择信号;
- reg [10:0] block_num;//一帧图像的宏块数
- reg [4:0] count20;//数据载入时的计数器
- reg ven_delay;
- reg fs_en_temp,fs_en_temp1;
- reg en_cb;
- reg en_temp0,en_temp1,en_new;
- reg cbready_temp,swready_temp;
- reg fs_en;
- //参数申明
- parameter s_powerup = 8'b00000001;
- parameter s_frameidle = 8'b00000010;
- parameter s_idle = 8'b00000100;
- parameter s_cbready = 8'b00001000;
- parameter s_loading = 8'b00010000;
- parameter s_calculating = 8'b00100000;
- parameter s_blockend = 8'b01000000;
- parameter s_frameend = 8'b10000000;
- always @ (posedge clk or posedge reset)
- if (reset==1'b1)
- begin
- cbready_temp <= 1'b0;
- swready_temp <= 1'b0;
- end
- else
- begin
- cbready_temp <= cbready;
- swready_temp <= swready;
- end
- always @ (posedge clk or posedge reset)
- if (reset==1'b1)
- ven_delay <= 1'b0;
- else
- ven_delay <= ven;
- //------------------数据载入时的计数器进行计数
- always @ (posedge clk or posedge reset)
- if (reset==1'b1)
- count20 <= 5'b00000;
- else
- if (present_state == s_loading)
- count20 <= count20+1'b1;
- else
- count20 <= 5'b00000;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- en_temp0 <= 1'b0;
- else
- if (count20 == 5'b00001)
- en_temp0 <= 1'b1;
- else if (count20 == 5'b10001)
- en_temp0 <= 1'b0;
- assign cb_rden = en_temp0;
- assign sw_rden = en_temp0 || fs_en;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- begin
- en_temp1 <= 1'b0;
- en_new <= 1'b0;
- end
- else
- begin
- en_temp1 <= en_temp0;
- en_new <= en_temp1;
- end
- //--------------------运动搜索进行时计数器工作
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- fs_en <= 1'b0;
- else
- if (present_state == s_calculating)
- fs_en <= 1'b1;
- else
- fs_en <= 1'b0;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- counter1024 <= 10'b0;
- else
- if (fs_en == 1'b1)
- counter1024 <= counter1024 + 1'b1;
- else
- counter1024 <= 10'b0;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- begin
- fs_en_temp <= 1'b0;
- fs_en_temp1 <= 1'b0;
- end
- else
- begin
- fs_en_temp <= fs_en;
- fs_en_temp1 <= fs_en_temp;
- end
- assign en_rb = fs_en_temp1;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- counter1024_temp <= 10'b0;
- else
- counter1024_temp <= counter1024;
- //----------------------- 当前寄存器数据更新选择信号的产生
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sela <= 1'b0;
- else
- if (fs_en_temp == 1'b1 && fs_en_temp1 == 1'b0)
- sela <= 1'b1;
- else
- sela <= 1'b0;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- en_cb <= 1'b0;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- en_cb <= 1'b1;
- else
- en_cb <= 1'b0;
- //--------------------------参考寄存器数据更新选择信号的产生
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb0 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb0 <= 2'b01;
- 5'b00001 : selb0 <= 2'b10;
- 5'b00010 : selb0 <= 2'b10;
- 5'b00011 : selb0 <= 2'b10;
- 5'b00100 : selb0 <= 2'b10;
- 5'b00101 : selb0 <= 2'b10;
- 5'b00110 : selb0 <= 2'b10;
- 5'b00111 : selb0 <= 2'b10;
- 5'b01000 : selb0 <= 2'b10;
- 5'b01001 : selb0 <= 2'b10;
- 5'b01010 : selb0 <= 2'b10;
- 5'b01011 : selb0 <= 2'b10;
- 5'b01100 : selb0 <= 2'b10;
- 5'b01101 : selb0 <= 2'b10;
- 5'b01110 : selb0 <= 2'b10;
- 5'b01111 : selb0 <= 2'b10;
- 5'b10000 : selb0 <= 2'b10;
- 5'b10001 : selb0 <= 2'b11;
- 5'b10010 : selb0 <= 2'b11;
- 5'b10011 : selb0 <= 2'b11;
- 5'b10100 : selb0 <= 2'b11;
- 5'b10101 : selb0 <= 2'b11;
- 5'b10110 : selb0 <= 2'b11;
- 5'b10111 : selb0 <= 2'b11;
- 5'b11000 : selb0 <= 2'b11;
- 5'b11001 : selb0 <= 2'b11;
- 5'b11010 : selb0 <= 2'b11;
- 5'b11011 : selb0 <= 2'b11;
- 5'b11100 : selb0 <= 2'b11;
- 5'b11101 : selb0 <= 2'b11;
- 5'b11110 : selb0 <= 2'b11;
- 5'b11111 : selb0 <= 2'b11;
- endcase
- else
- selb0 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb1 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb1 <= 2'b01;
- 5'b00001 : selb1 <= 2'b01;
- 5'b00010 : selb1 <= 2'b10;
- 5'b00011 : selb1 <= 2'b10;
- 5'b00100 : selb1 <= 2'b10;
- 5'b00101 : selb1 <= 2'b10;
- 5'b00110 : selb1 <= 2'b10;
- 5'b00111 : selb1 <= 2'b10;
- 5'b01000 : selb1 <= 2'b10;
- 5'b01001 : selb1 <= 2'b10;
- 5'b01010 : selb1 <= 2'b10;
- 5'b01011 : selb1 <= 2'b10;
- 5'b01100 : selb1 <= 2'b10;
- 5'b01101 : selb1 <= 2'b10;
- 5'b01110 : selb1 <= 2'b10;
- 5'b01111 : selb1 <= 2'b10;
- 5'b10000 : selb1 <= 2'b10;
- 5'b10001 : selb1 <= 2'b10;
- 5'b10010 : selb1 <= 2'b11;
- 5'b10011 : selb1 <= 2'b11;
- 5'b10100 : selb1 <= 2'b11;
- 5'b10101 : selb1 <= 2'b11;
- 5'b10110 : selb1 <= 2'b11;
- 5'b10111 : selb1 <= 2'b11;
- 5'b11000 : selb1 <= 2'b11;
- 5'b11001 : selb1 <= 2'b11;
- 5'b11010 : selb1 <= 2'b11;
- 5'b11011 : selb1 <= 2'b11;
- 5'b11100 : selb1 <= 2'b11;
- 5'b11101 : selb1 <= 2'b11;
- 5'b11110 : selb1 <= 2'b11;
- 5'b11111 : selb1 <= 2'b11;
- endcase
- else
- selb1 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb2 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb2 <= 2'b01;
- 5'b00001 : selb2 <= 2'b01;
- 5'b00010 : selb2 <= 2'b01;
- 5'b00011 : selb2 <= 2'b10;
- 5'b00100 : selb2 <= 2'b10;
- 5'b00101 : selb2 <= 2'b10;
- 5'b00110 : selb2 <= 2'b10;
- 5'b00111 : selb2 <= 2'b10;
- 5'b01000 : selb2 <= 2'b10;
- 5'b01001 : selb2 <= 2'b10;
- 5'b01010 : selb2 <= 2'b10;
- 5'b01011 : selb2 <= 2'b10;
- 5'b01100 : selb2 <= 2'b10;
- 5'b01101 : selb2 <= 2'b10;
- 5'b01110 : selb2 <= 2'b10;
- 5'b01111 : selb2 <= 2'b10;
- 5'b10000 : selb2 <= 2'b10;
- 5'b10001 : selb2 <= 2'b10;
- 5'b10010 : selb2 <= 2'b10;
- 5'b10011 : selb2 <= 2'b11;
- 5'b10100 : selb2 <= 2'b11;
- 5'b10101 : selb2 <= 2'b11;
- 5'b10110 : selb2 <= 2'b11;
- 5'b10111 : selb2 <= 2'b11;
- 5'b11000 : selb2 <= 2'b11;
- 5'b11001 : selb2 <= 2'b11;
- 5'b11010 : selb2 <= 2'b11;
- 5'b11011 : selb2 <= 2'b11;
- 5'b11100 : selb2 <= 2'b11;
- 5'b11101 : selb2 <= 2'b11;
- 5'b11110 : selb2 <= 2'b11;
- 5'b11111 : selb2 <= 2'b11;
- endcase
- else
- selb2 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb3 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb3 <= 2'b01;
- 5'b00001 : selb3 <= 2'b01;
- 5'b00010 : selb3 <= 2'b01;
- 5'b00011 : selb3 <= 2'b01;
- 5'b00100 : selb3 <= 2'b10;
- 5'b00101 : selb3 <= 2'b10;
- 5'b00110 : selb3 <= 2'b10;
- 5'b00111 : selb3 <= 2'b10;
- 5'b01000 : selb3 <= 2'b10;
- 5'b01001 : selb3 <= 2'b10;
- 5'b01010 : selb3 <= 2'b10;
- 5'b01011 : selb3 <= 2'b10;
- 5'b01100 : selb3 <= 2'b10;
- 5'b01101 : selb3 <= 2'b10;
- 5'b01110 : selb3 <= 2'b10;
- 5'b01111 : selb3 <= 2'b10;
- 5'b10000 : selb3 <= 2'b10;
- 5'b10001 : selb3 <= 2'b10;
- 5'b10010 : selb3 <= 2'b10;
- 5'b10011 : selb3 <= 2'b10;
- 5'b10100 : selb3 <= 2'b11;
- 5'b10101 : selb3 <= 2'b11;
- 5'b10110 : selb3 <= 2'b11;
- 5'b10111 : selb3 <= 2'b11;
- 5'b11000 : selb3 <= 2'b11;
- 5'b11001 : selb3 <= 2'b11;
- 5'b11010 : selb3 <= 2'b11;
- 5'b11011 : selb3 <= 2'b11;
- 5'b11100 : selb3 <= 2'b11;
- 5'b11101 : selb3 <= 2'b11;
- 5'b11110 : selb3 <= 2'b11;
- 5'b11111 : selb3 <= 2'b11;
- endcase
- else
- selb3 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb4 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb4 <= 2'b01;
- 5'b00001 : selb4 <= 2'b01;
- 5'b00010 : selb4 <= 2'b01;
- 5'b00011 : selb4 <= 2'b01;
- 5'b00100 : selb4 <= 2'b01;
- 5'b00101 : selb4 <= 2'b10;
- 5'b00110 : selb4 <= 2'b10;
- 5'b00111 : selb4 <= 2'b10;
- 5'b01000 : selb4 <= 2'b10;
- 5'b01001 : selb4 <= 2'b10;
- 5'b01010 : selb4 <= 2'b10;
- 5'b01011 : selb4 <= 2'b10;
- 5'b01100 : selb4 <= 2'b10;
- 5'b01101 : selb4 <= 2'b10;
- 5'b01110 : selb4 <= 2'b10;
- 5'b01111 : selb4 <= 2'b10;
- 5'b10000 : selb4 <= 2'b10;
- 5'b10001 : selb4 <= 2'b10;
- 5'b10010 : selb4 <= 2'b10;
- 5'b10011 : selb4 <= 2'b10;
- 5'b10100 : selb4 <= 2'b10;
- 5'b10101 : selb4 <= 2'b11;
- 5'b10110 : selb4 <= 2'b11;
- 5'b10111 : selb4 <= 2'b11;
- 5'b11000 : selb4 <= 2'b11;
- 5'b11001 : selb4 <= 2'b11;
- 5'b11010 : selb4 <= 2'b11;
- 5'b11011 : selb4 <= 2'b11;
- 5'b11100 : selb4 <= 2'b11;
- 5'b11101 : selb4 <= 2'b11;
- 5'b11110 : selb4 <= 2'b11;
- 5'b11111 : selb4 <= 2'b11;
- endcase
- else
- selb4 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb5 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb5 <= 2'b01;
- 5'b00001 : selb5 <= 2'b01;
- 5'b00010 : selb5 <= 2'b01;
- 5'b00011 : selb5 <= 2'b01;
- 5'b00100 : selb5 <= 2'b01;
- 5'b00101 : selb5 <= 2'b01;
- 5'b00110 : selb5 <= 2'b10;
- 5'b00111 : selb5 <= 2'b10;
- 5'b01000 : selb5 <= 2'b10;
- 5'b01001 : selb5 <= 2'b10;
- 5'b01010 : selb5 <= 2'b10;
- 5'b01011 : selb5 <= 2'b10;
- 5'b01100 : selb5 <= 2'b10;
- 5'b01101 : selb5 <= 2'b10;
- 5'b01110 : selb5 <= 2'b10;
- 5'b01111 : selb5 <= 2'b10;
- 5'b10000 : selb5 <= 2'b10;
- 5'b10001 : selb5 <= 2'b10;
- 5'b10010 : selb5 <= 2'b10;
- 5'b10011 : selb5 <= 2'b10;
- 5'b10100 : selb5 <= 2'b10;
- 5'b10101 : selb5 <= 2'b10;
- 5'b10110 : selb5 <= 2'b11;
- 5'b10111 : selb5 <= 2'b11;
- 5'b11000 : selb5 <= 2'b11;
- 5'b11001 : selb5 <= 2'b11;
- 5'b11010 : selb5 <= 2'b11;
- 5'b11011 : selb5 <= 2'b11;
- 5'b11100 : selb5 <= 2'b11;
- 5'b11101 : selb5 <= 2'b11;
- 5'b11110 : selb5 <= 2'b11;
- 5'b11111 : selb5 <= 2'b11;
- endcase
- else
- selb5 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb6 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb6 <= 2'b01;
- 5'b00001 : selb6 <= 2'b01;
- 5'b00010 : selb6 <= 2'b01;
- 5'b00011 : selb6 <= 2'b01;
- 5'b00100 : selb6 <= 2'b01;
- 5'b00101 : selb6 <= 2'b01;
- 5'b00110 : selb6 <= 2'b01;
- 5'b00111 : selb6 <= 2'b10;
- 5'b01000 : selb6 <= 2'b10;
- 5'b01001 : selb6 <= 2'b10;
- 5'b01010 : selb6 <= 2'b10;
- 5'b01011 : selb6 <= 2'b10;
- 5'b01100 : selb6 <= 2'b10;
- 5'b01101 : selb6 <= 2'b10;
- 5'b01110 : selb6 <= 2'b10;
- 5'b01111 : selb6 <= 2'b10;
- 5'b10000 : selb6 <= 2'b10;
- 5'b10001 : selb6 <= 2'b10;
- 5'b10010 : selb6 <= 2'b10;
- 5'b10011 : selb6 <= 2'b10;
- 5'b10100 : selb6 <= 2'b10;
- 5'b10101 : selb6 <= 2'b10;
- 5'b10110 : selb6 <= 2'b10;
- 5'b10111 : selb6 <= 2'b11;
- 5'b11000 : selb6 <= 2'b11;
- 5'b11001 : selb6 <= 2'b11;
- 5'b11010 : selb6 <= 2'b11;
- 5'b11011 : selb6 <= 2'b11;
- 5'b11100 : selb6 <= 2'b11;
- 5'b11101 : selb6 <= 2'b11;
- 5'b11110 : selb6 <= 2'b11;
- 5'b11111 : selb6 <= 2'b11;
- endcase
- else
- selb6 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb7 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb7 <= 2'b01;
- 5'b00001 : selb7 <= 2'b01;
- 5'b00010 : selb7 <= 2'b01;
- 5'b00011 : selb7 <= 2'b01;
- 5'b00100 : selb7 <= 2'b01;
- 5'b00101 : selb7 <= 2'b01;
- 5'b00110 : selb7 <= 2'b01;
- 5'b00111 : selb7 <= 2'b01;
- 5'b01000 : selb7 <= 2'b10;
- 5'b01001 : selb7 <= 2'b10;
- 5'b01010 : selb7 <= 2'b10;
- 5'b01011 : selb7 <= 2'b10;
- 5'b01100 : selb7 <= 2'b10;
- 5'b01101 : selb7 <= 2'b10;
- 5'b01110 : selb7 <= 2'b10;
- 5'b01111 : selb7 <= 2'b10;
- 5'b10000 : selb7 <= 2'b10;
- 5'b10001 : selb7 <= 2'b10;
- 5'b10010 : selb7 <= 2'b10;
- 5'b10011 : selb7 <= 2'b10;
- 5'b10100 : selb7 <= 2'b10;
- 5'b10101 : selb7 <= 2'b10;
- 5'b10110 : selb7 <= 2'b10;
- 5'b10111 : selb7 <= 2'b10;
- 5'b11000 : selb7 <= 2'b11;
- 5'b11001 : selb7 <= 2'b11;
- 5'b11010 : selb7 <= 2'b11;
- 5'b11011 : selb7 <= 2'b11;
- 5'b11100 : selb7 <= 2'b11;
- 5'b11101 : selb7 <= 2'b11;
- 5'b11110 : selb7 <= 2'b11;
- 5'b11111 : selb7 <= 2'b11;
- endcase
- else
- selb7 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb8 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb8 <= 2'b01;
- 5'b00001 : selb8 <= 2'b01;
- 5'b00010 : selb8 <= 2'b01;
- 5'b00011 : selb8 <= 2'b01;
- 5'b00100 : selb8 <= 2'b01;
- 5'b00101 : selb8 <= 2'b01;
- 5'b00110 : selb8 <= 2'b01;
- 5'b00111 : selb8 <= 2'b01;
- 5'b01000 : selb8 <= 2'b01;
- 5'b01001 : selb8 <= 2'b10;
- 5'b01010 : selb8 <= 2'b10;
- 5'b01011 : selb8 <= 2'b10;
- 5'b01100 : selb8 <= 2'b10;
- 5'b01101 : selb8 <= 2'b10;
- 5'b01110 : selb8 <= 2'b10;
- 5'b01111 : selb8 <= 2'b10;
- 5'b10000 : selb8 <= 2'b10;
- 5'b10001 : selb8 <= 2'b10;
- 5'b10010 : selb8 <= 2'b10;
- 5'b10011 : selb8 <= 2'b10;
- 5'b10100 : selb8 <= 2'b10;
- 5'b10101 : selb8 <= 2'b10;
- 5'b10110 : selb8 <= 2'b10;
- 5'b10111 : selb8 <= 2'b10;
- 5'b11000 : selb8 <= 2'b10;
- 5'b11001 : selb8 <= 2'b11;
- 5'b11010 : selb8 <= 2'b11;
- 5'b11011 : selb8 <= 2'b11;
- 5'b11100 : selb8 <= 2'b11;
- 5'b11101 : selb8 <= 2'b11;
- 5'b11110 : selb8 <= 2'b11;
- 5'b11111 : selb8 <= 2'b11;
- endcase
- else
- selb8 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb9 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb9 <= 2'b01;
- 5'b00001 : selb9 <= 2'b01;
- 5'b00010 : selb9 <= 2'b01;
- 5'b00011 : selb9 <= 2'b01;
- 5'b00100 : selb9 <= 2'b01;
- 5'b00101 : selb9 <= 2'b01;
- 5'b00110 : selb9 <= 2'b01;
- 5'b00111 : selb9 <= 2'b01;
- 5'b01000 : selb9 <= 2'b01;
- 5'b01001 : selb9 <= 2'b01;
- 5'b01010 : selb9 <= 2'b10;
- 5'b01011 : selb9 <= 2'b10;
- 5'b01100 : selb9 <= 2'b10;
- 5'b01101 : selb9 <= 2'b10;
- 5'b01110 : selb9 <= 2'b10;
- 5'b01111 : selb9 <= 2'b10;
- 5'b10000 : selb9 <= 2'b10;
- 5'b10001 : selb9 <= 2'b10;
- 5'b10010 : selb9 <= 2'b10;
- 5'b10011 : selb9 <= 2'b10;
- 5'b10100 : selb9 <= 2'b10;
- 5'b10101 : selb9 <= 2'b10;
- 5'b10110 : selb9 <= 2'b10;
- 5'b10111 : selb9 <= 2'b10;
- 5'b11000 : selb9 <= 2'b10;
- 5'b11001 : selb9 <= 2'b10;
- 5'b11010 : selb9 <= 2'b11;
- 5'b11011 : selb9 <= 2'b11;
- 5'b11100 : selb9 <= 2'b11;
- 5'b11101 : selb9 <= 2'b11;
- 5'b11110 : selb9 <= 2'b11;
- 5'b11111 : selb9 <= 2'b11;
- endcase
- else
- selb9 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb10 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb10 <= 2'b01;
- 5'b00001 : selb10 <= 2'b01;
- 5'b00010 : selb10 <= 2'b01;
- 5'b00011 : selb10 <= 2'b01;
- 5'b00100 : selb10 <= 2'b01;
- 5'b00101 : selb10 <= 2'b01;
- 5'b00110 : selb10 <= 2'b01;
- 5'b00111 : selb10 <= 2'b01;
- 5'b01000 : selb10 <= 2'b01;
- 5'b01001 : selb10 <= 2'b01;
- 5'b01010 : selb10 <= 2'b01;
- 5'b01011 : selb10 <= 2'b10;
- 5'b01100 : selb10 <= 2'b10;
- 5'b01101 : selb10 <= 2'b10;
- 5'b01110 : selb10 <= 2'b10;
- 5'b01111 : selb10 <= 2'b10;
- 5'b10000 : selb10 <= 2'b10;
- 5'b10001 : selb10 <= 2'b10;
- 5'b10010 : selb10 <= 2'b10;
- 5'b10011 : selb10 <= 2'b10;
- 5'b10100 : selb10 <= 2'b10;
- 5'b10101 : selb10 <= 2'b10;
- 5'b10110 : selb10 <= 2'b10;
- 5'b10111 : selb10 <= 2'b10;
- 5'b11000 : selb10 <= 2'b10;
- 5'b11001 : selb10 <= 2'b10;
- 5'b11010 : selb10 <= 2'b10;
- 5'b11011 : selb10 <= 2'b11;
- 5'b11100 : selb10 <= 2'b11;
- 5'b11101 : selb10 <= 2'b11;
- 5'b11110 : selb10 <= 2'b11;
- 5'b11111 : selb10 <= 2'b11;
- endcase
- else
- selb10 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb11 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb11 <= 2'b01;
- 5'b00001 : selb11 <= 2'b01;
- 5'b00010 : selb11 <= 2'b01;
- 5'b00011 : selb11 <= 2'b01;
- 5'b00100 : selb11 <= 2'b01;
- 5'b00101 : selb11 <= 2'b01;
- 5'b00110 : selb11 <= 2'b01;
- 5'b00111 : selb11 <= 2'b01;
- 5'b01000 : selb11 <= 2'b01;
- 5'b01001 : selb11 <= 2'b01;
- 5'b01010 : selb11 <= 2'b01;
- 5'b01011 : selb11 <= 2'b01;
- 5'b01100 : selb11 <= 2'b10;
- 5'b01101 : selb11 <= 2'b10;
- 5'b01110 : selb11 <= 2'b10;
- 5'b01111 : selb11 <= 2'b10;
- 5'b10000 : selb11 <= 2'b10;
- 5'b10001 : selb11 <= 2'b10;
- 5'b10010 : selb11 <= 2'b10;
- 5'b10011 : selb11 <= 2'b10;
- 5'b10100 : selb11 <= 2'b10;
- 5'b10101 : selb11 <= 2'b10;
- 5'b10110 : selb11 <= 2'b10;
- 5'b10111 : selb11 <= 2'b10;
- 5'b11000 : selb11 <= 2'b10;
- 5'b11001 : selb11 <= 2'b10;
- 5'b11010 : selb11 <= 2'b10;
- 5'b11011 : selb11 <= 2'b10;
- 5'b11100 : selb11 <= 2'b11;
- 5'b11101 : selb11 <= 2'b11;
- 5'b11110 : selb11 <= 2'b11;
- 5'b11111 : selb11 <= 2'b11;
- endcase
- else
- selb11 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb12 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb12 <= 2'b01;
- 5'b00001 : selb12 <= 2'b01;
- 5'b00010 : selb12 <= 2'b01;
- 5'b00011 : selb12 <= 2'b01;
- 5'b00100 : selb12 <= 2'b01;
- 5'b00101 : selb12 <= 2'b01;
- 5'b00110 : selb12 <= 2'b01;
- 5'b00111 : selb12 <= 2'b01;
- 5'b01000 : selb12 <= 2'b01;
- 5'b01001 : selb12 <= 2'b01;
- 5'b01010 : selb12 <= 2'b01;
- 5'b01011 : selb12 <= 2'b01;
- 5'b01100 : selb12 <= 2'b01;
- 5'b01101 : selb12 <= 2'b10;
- 5'b01110 : selb12 <= 2'b10;
- 5'b01111 : selb12 <= 2'b10;
- 5'b10000 : selb12 <= 2'b10;
- 5'b10001 : selb12 <= 2'b10;
- 5'b10010 : selb12 <= 2'b10;
- 5'b10011 : selb12 <= 2'b10;
- 5'b10100 : selb12 <= 2'b10;
- 5'b10101 : selb12 <= 2'b10;
- 5'b10110 : selb12 <= 2'b10;
- 5'b10111 : selb12 <= 2'b10;
- 5'b11000 : selb12 <= 2'b10;
- 5'b11001 : selb12 <= 2'b10;
- 5'b11010 : selb12 <= 2'b10;
- 5'b11011 : selb12 <= 2'b10;
- 5'b11100 : selb12 <= 2'b10;
- 5'b11101 : selb12 <= 2'b11;
- 5'b11110 : selb12 <= 2'b11;
- 5'b11111 : selb12 <= 2'b11;
- endcase
- else
- selb12 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb13 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb13 <= 2'b01;
- 5'b00001 : selb13 <= 2'b01;
- 5'b00010 : selb13 <= 2'b01;
- 5'b00011 : selb13 <= 2'b01;
- 5'b00100 : selb13 <= 2'b01;
- 5'b00101 : selb13 <= 2'b01;
- 5'b00110 : selb13 <= 2'b01;
- 5'b00111 : selb13 <= 2'b01;
- 5'b01000 : selb13 <= 2'b01;
- 5'b01001 : selb13 <= 2'b01;
- 5'b01010 : selb13 <= 2'b01;
- 5'b01011 : selb13 <= 2'b01;
- 5'b01100 : selb13 <= 2'b01;
- 5'b01101 : selb13 <= 2'b01;
- 5'b01110 : selb13 <= 2'b10;
- 5'b01111 : selb13 <= 2'b10;
- 5'b10000 : selb13 <= 2'b10;
- 5'b10001 : selb13 <= 2'b10;
- 5'b10010 : selb13 <= 2'b10;
- 5'b10011 : selb13 <= 2'b10;
- 5'b10100 : selb13 <= 2'b10;
- 5'b10101 : selb13 <= 2'b10;
- 5'b10110 : selb13 <= 2'b10;
- 5'b10111 : selb13 <= 2'b10;
- 5'b11000 : selb13 <= 2'b10;
- 5'b11001 : selb13 <= 2'b10;
- 5'b11010 : selb13 <= 2'b10;
- 5'b11011 : selb13 <= 2'b10;
- 5'b11100 : selb13 <= 2'b10;
- 5'b11101 : selb13 <= 2'b10;
- 5'b11110 : selb13 <= 2'b11;
- 5'b11111 : selb13 <= 2'b11;
- endcase
- else
- selb13 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb14 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb14 <= 2'b01;
- 5'b00001 : selb14 <= 2'b01;
- 5'b00010 : selb14 <= 2'b01;
- 5'b00011 : selb14 <= 2'b01;
- 5'b00100 : selb14 <= 2'b01;
- 5'b00101 : selb14 <= 2'b01;
- 5'b00110 : selb14 <= 2'b01;
- 5'b00111 : selb14 <= 2'b01;
- 5'b01000 : selb14 <= 2'b01;
- 5'b01001 : selb14 <= 2'b01;
- 5'b01010 : selb14 <= 2'b01;
- 5'b01011 : selb14 <= 2'b01;
- 5'b01100 : selb14 <= 2'b01;
- 5'b01101 : selb14 <= 2'b01;
- 5'b01110 : selb14 <= 2'b01;
- 5'b01111 : selb14 <= 2'b10;
- 5'b10000 : selb14 <= 2'b10;
- 5'b10001 : selb14 <= 2'b10;
- 5'b10010 : selb14 <= 2'b10;
- 5'b10011 : selb14 <= 2'b10;
- 5'b10100 : selb14 <= 2'b10;
- 5'b10101 : selb14 <= 2'b10;
- 5'b10110 : selb14 <= 2'b10;
- 5'b10111 : selb14 <= 2'b10;
- 5'b11000 : selb14 <= 2'b10;
- 5'b11001 : selb14 <= 2'b10;
- 5'b11010 : selb14 <= 2'b10;
- 5'b11011 : selb14 <= 2'b10;
- 5'b11100 : selb14 <= 2'b10;
- 5'b11101 : selb14 <= 2'b10;
- 5'b11110 : selb14 <= 2'b10;
- 5'b11111 : selb14 <= 2'b11;
- endcase
- else
- selb14 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selb15 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selb15 <= 2'b01;
- 5'b00001 : selb15 <= 2'b01;
- 5'b00010 : selb15 <= 2'b01;
- 5'b00011 : selb15 <= 2'b01;
- 5'b00100 : selb15 <= 2'b01;
- 5'b00101 : selb15 <= 2'b01;
- 5'b00110 : selb15 <= 2'b01;
- 5'b00111 : selb15 <= 2'b01;
- 5'b01000 : selb15 <= 2'b01;
- 5'b01001 : selb15 <= 2'b01;
- 5'b01010 : selb15 <= 2'b01;
- 5'b01011 : selb15 <= 2'b01;
- 5'b01100 : selb15 <= 2'b01;
- 5'b01101 : selb15 <= 2'b01;
- 5'b01110 : selb15 <= 2'b01;
- 5'b01111 : selb15 <= 2'b01;
- 5'b10000 : selb15 <= 2'b10;
- 5'b10001 : selb15 <= 2'b10;
- 5'b10010 : selb15 <= 2'b10;
- 5'b10011 : selb15 <= 2'b10;
- 5'b10100 : selb15 <= 2'b10;
- 5'b10101 : selb15 <= 2'b10;
- 5'b10110 : selb15 <= 2'b10;
- 5'b10111 : selb15 <= 2'b10;
- 5'b11000 : selb15 <= 2'b10;
- 5'b11001 : selb15 <= 2'b10;
- 5'b11010 : selb15 <= 2'b10;
- 5'b11011 : selb15 <= 2'b10;
- 5'b11100 : selb15 <= 2'b10;
- 5'b11101 : selb15 <= 2'b10;
- 5'b11110 : selb15 <= 2'b10;
- 5'b11111 : selb15 <= 2'b10;
- endcase
- else
- selb15 <= 2'b00;
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel0 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel0 <= 2'b01;
- 5'b00001 : sel0 <= 2'b10;
- 5'b00010 : sel0 <= 2'b10;
- 5'b00011 : sel0 <= 2'b10;
- 5'b00100 : sel0 <= 2'b10;
- 5'b00101 : sel0 <= 2'b10;
- 5'b00110 : sel0 <= 2'b10;
- 5'b00111 : sel0 <= 2'b10;
- 5'b01000 : sel0 <= 2'b10;
- 5'b01001 : sel0 <= 2'b10;
- 5'b01010 : sel0 <= 2'b10;
- 5'b01011 : sel0 <= 2'b10;
- 5'b01100 : sel0 <= 2'b10;
- 5'b01101 : sel0 <= 2'b10;
- 5'b01110 : sel0 <= 2'b10;
- 5'b01111 : sel0 <= 2'b10;
- 5'b10000 : sel0 <= 2'b10;
- 5'b10001 : sel0 <= 2'b11;
- 5'b10010 : sel0 <= 2'b11;
- 5'b10011 : sel0 <= 2'b11;
- 5'b10100 : sel0 <= 2'b11;
- 5'b10101 : sel0 <= 2'b11;
- 5'b10110 : sel0 <= 2'b11;
- 5'b10111 : sel0 <= 2'b11;
- 5'b11000 : sel0 <= 2'b11;
- 5'b11001 : sel0 <= 2'b11;
- 5'b11010 : sel0 <= 2'b11;
- 5'b11011 : sel0 <= 2'b11;
- 5'b11100 : sel0 <= 2'b11;
- 5'b11101 : sel0 <= 2'b11;
- 5'b11110 : sel0 <= 2'b11;
- 5'b11111 : sel0 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel1 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel1 <= 2'b01;
- 5'b00001 : sel1 <= 2'b01;
- 5'b00010 : sel1 <= 2'b10;
- 5'b00011 : sel1 <= 2'b10;
- 5'b00100 : sel1 <= 2'b10;
- 5'b00101 : sel1 <= 2'b10;
- 5'b00110 : sel1 <= 2'b10;
- 5'b00111 : sel1 <= 2'b10;
- 5'b01000 : sel1 <= 2'b10;
- 5'b01001 : sel1 <= 2'b10;
- 5'b01010 : sel1 <= 2'b10;
- 5'b01011 : sel1 <= 2'b10;
- 5'b01100 : sel1 <= 2'b10;
- 5'b01101 : sel1 <= 2'b10;
- 5'b01110 : sel1 <= 2'b10;
- 5'b01111 : sel1 <= 2'b10;
- 5'b10000 : sel1 <= 2'b10;
- 5'b10001 : sel1 <= 2'b10;
- 5'b10010 : sel1 <= 2'b11;
- 5'b10011 : sel1 <= 2'b11;
- 5'b10100 : sel1 <= 2'b11;
- 5'b10101 : sel1 <= 2'b11;
- 5'b10110 : sel1 <= 2'b11;
- 5'b10111 : sel1 <= 2'b11;
- 5'b11000 : sel1 <= 2'b11;
- 5'b11001 : sel1 <= 2'b11;
- 5'b11010 : sel1 <= 2'b11;
- 5'b11011 : sel1 <= 2'b11;
- 5'b11100 : sel1 <= 2'b11;
- 5'b11101 : sel1 <= 2'b11;
- 5'b11110 : sel1 <= 2'b11;
- 5'b11111 : sel1 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel2 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel2 <= 2'b01;
- 5'b00001 : sel2 <= 2'b01;
- 5'b00010 : sel2 <= 2'b01;
- 5'b00011 : sel2 <= 2'b10;
- 5'b00100 : sel2 <= 2'b10;
- 5'b00101 : sel2 <= 2'b10;
- 5'b00110 : sel2 <= 2'b10;
- 5'b00111 : sel2 <= 2'b10;
- 5'b01000 : sel2 <= 2'b10;
- 5'b01001 : sel2 <= 2'b10;
- 5'b01010 : sel2 <= 2'b10;
- 5'b01011 : sel2 <= 2'b10;
- 5'b01100 : sel2 <= 2'b10;
- 5'b01101 : sel2 <= 2'b10;
- 5'b01110 : sel2 <= 2'b10;
- 5'b01111 : sel2 <= 2'b10;
- 5'b10000 : sel2 <= 2'b10;
- 5'b10001 : sel2 <= 2'b10;
- 5'b10010 : sel2 <= 2'b10;
- 5'b10011 : sel2 <= 2'b11;
- 5'b10100 : sel2 <= 2'b11;
- 5'b10101 : sel2 <= 2'b11;
- 5'b10110 : sel2 <= 2'b11;
- 5'b10111 : sel2 <= 2'b11;
- 5'b11000 : sel2 <= 2'b11;
- 5'b11001 : sel2 <= 2'b11;
- 5'b11010 : sel2 <= 2'b11;
- 5'b11011 : sel2 <= 2'b11;
- 5'b11100 : sel2 <= 2'b11;
- 5'b11101 : sel2 <= 2'b11;
- 5'b11110 : sel2 <= 2'b11;
- 5'b11111 : sel2 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel3 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel3 <= 2'b01;
- 5'b00001 : sel3 <= 2'b01;
- 5'b00010 : sel3 <= 2'b01;
- 5'b00011 : sel3 <= 2'b01;
- 5'b00100 : sel3 <= 2'b10;
- 5'b00101 : sel3 <= 2'b10;
- 5'b00110 : sel3 <= 2'b10;
- 5'b00111 : sel3 <= 2'b10;
- 5'b01000 : sel3 <= 2'b10;
- 5'b01001 : sel3 <= 2'b10;
- 5'b01010 : sel3 <= 2'b10;
- 5'b01011 : sel3 <= 2'b10;
- 5'b01100 : sel3 <= 2'b10;
- 5'b01101 : sel3 <= 2'b10;
- 5'b01110 : sel3 <= 2'b10;
- 5'b01111 : sel3 <= 2'b10;
- 5'b10000 : sel3 <= 2'b10;
- 5'b10001 : sel3 <= 2'b10;
- 5'b10010 : sel3 <= 2'b10;
- 5'b10011 : sel3 <= 2'b10;
- 5'b10100 : sel3 <= 2'b11;
- 5'b10101 : sel3 <= 2'b11;
- 5'b10110 : sel3 <= 2'b11;
- 5'b10111 : sel3 <= 2'b11;
- 5'b11000 : sel3 <= 2'b11;
- 5'b11001 : sel3 <= 2'b11;
- 5'b11010 : sel3 <= 2'b11;
- 5'b11011 : sel3 <= 2'b11;
- 5'b11100 : sel3 <= 2'b11;
- 5'b11101 : sel3 <= 2'b11;
- 5'b11110 : sel3 <= 2'b11;
- 5'b11111 : sel3 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel4 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel4 <= 2'b01;
- 5'b00001 : sel4 <= 2'b01;
- 5'b00010 : sel4 <= 2'b01;
- 5'b00011 : sel4 <= 2'b01;
- 5'b00100 : sel4 <= 2'b01;
- 5'b00101 : sel4 <= 2'b10;
- 5'b00110 : sel4 <= 2'b10;
- 5'b00111 : sel4 <= 2'b10;
- 5'b01000 : sel4 <= 2'b10;
- 5'b01001 : sel4 <= 2'b10;
- 5'b01010 : sel4 <= 2'b10;
- 5'b01011 : sel4 <= 2'b10;
- 5'b01100 : sel4 <= 2'b10;
- 5'b01101 : sel4 <= 2'b10;
- 5'b01110 : sel4 <= 2'b10;
- 5'b01111 : sel4 <= 2'b10;
- 5'b10000 : sel4 <= 2'b10;
- 5'b10001 : sel4 <= 2'b10;
- 5'b10010 : sel4 <= 2'b10;
- 5'b10011 : sel4 <= 2'b10;
- 5'b10100 : sel4 <= 2'b10;
- 5'b10101 : sel4 <= 2'b11;
- 5'b10110 : sel4 <= 2'b11;
- 5'b10111 : sel4 <= 2'b11;
- 5'b11000 : sel4 <= 2'b11;
- 5'b11001 : sel4 <= 2'b11;
- 5'b11010 : sel4 <= 2'b11;
- 5'b11011 : sel4 <= 2'b11;
- 5'b11100 : sel4 <= 2'b11;
- 5'b11101 : sel4 <= 2'b11;
- 5'b11110 : sel4 <= 2'b11;
- 5'b11111 : sel4 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel5 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel5 <= 2'b01;
- 5'b00001 : sel5 <= 2'b01;
- 5'b00010 : sel5 <= 2'b01;
- 5'b00011 : sel5 <= 2'b01;
- 5'b00100 : sel5 <= 2'b01;
- 5'b00101 : sel5 <= 2'b01;
- 5'b00110 : sel5 <= 2'b10;
- 5'b00111 : sel5 <= 2'b10;
- 5'b01000 : sel5 <= 2'b10;
- 5'b01001 : sel5 <= 2'b10;
- 5'b01010 : sel5 <= 2'b10;
- 5'b01011 : sel5 <= 2'b10;
- 5'b01100 : sel5 <= 2'b10;
- 5'b01101 : sel5 <= 2'b10;
- 5'b01110 : sel5 <= 2'b10;
- 5'b01111 : sel5 <= 2'b10;
- 5'b10000 : sel5 <= 2'b10;
- 5'b10001 : sel5 <= 2'b10;
- 5'b10010 : sel5 <= 2'b10;
- 5'b10011 : sel5 <= 2'b10;
- 5'b10100 : sel5 <= 2'b10;
- 5'b10101 : sel5 <= 2'b10;
- 5'b10110 : sel5 <= 2'b11;
- 5'b10111 : sel5 <= 2'b11;
- 5'b11000 : sel5 <= 2'b11;
- 5'b11001 : sel5 <= 2'b11;
- 5'b11010 : sel5 <= 2'b11;
- 5'b11011 : sel5 <= 2'b11;
- 5'b11100 : sel5 <= 2'b11;
- 5'b11101 : sel5 <= 2'b11;
- 5'b11110 : sel5 <= 2'b11;
- 5'b11111 : sel5 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel6 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel6 <= 2'b01;
- 5'b00001 : sel6 <= 2'b01;
- 5'b00010 : sel6 <= 2'b01;
- 5'b00011 : sel6 <= 2'b01;
- 5'b00100 : sel6 <= 2'b01;
- 5'b00101 : sel6 <= 2'b01;
- 5'b00110 : sel6 <= 2'b01;
- 5'b00111 : sel6 <= 2'b10;
- 5'b01000 : sel6 <= 2'b10;
- 5'b01001 : sel6 <= 2'b10;
- 5'b01010 : sel6 <= 2'b10;
- 5'b01011 : sel6 <= 2'b10;
- 5'b01100 : sel6 <= 2'b10;
- 5'b01101 : sel6 <= 2'b10;
- 5'b01110 : sel6 <= 2'b10;
- 5'b01111 : sel6 <= 2'b10;
- 5'b10000 : sel6 <= 2'b10;
- 5'b10001 : sel6 <= 2'b10;
- 5'b10010 : sel6 <= 2'b10;
- 5'b10011 : sel6 <= 2'b10;
- 5'b10100 : sel6 <= 2'b10;
- 5'b10101 : sel6 <= 2'b10;
- 5'b10110 : sel6 <= 2'b10;
- 5'b10111 : sel6 <= 2'b11;
- 5'b11000 : sel6 <= 2'b11;
- 5'b11001 : sel6 <= 2'b11;
- 5'b11010 : sel6 <= 2'b11;
- 5'b11011 : sel6 <= 2'b11;
- 5'b11100 : sel6 <= 2'b11;
- 5'b11101 : sel6 <= 2'b11;
- 5'b11110 : sel6 <= 2'b11;
- 5'b11111 : sel6 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel7 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel7 <= 2'b01;
- 5'b00001 : sel7 <= 2'b01;
- 5'b00010 : sel7 <= 2'b01;
- 5'b00011 : sel7 <= 2'b01;
- 5'b00100 : sel7 <= 2'b01;
- 5'b00101 : sel7 <= 2'b01;
- 5'b00110 : sel7 <= 2'b01;
- 5'b00111 : sel7 <= 2'b01;
- 5'b01000 : sel7 <= 2'b10;
- 5'b01001 : sel7 <= 2'b10;
- 5'b01010 : sel7 <= 2'b10;
- 5'b01011 : sel7 <= 2'b10;
- 5'b01100 : sel7 <= 2'b10;
- 5'b01101 : sel7 <= 2'b10;
- 5'b01110 : sel7 <= 2'b10;
- 5'b01111 : sel7 <= 2'b10;
- 5'b10000 : sel7 <= 2'b10;
- 5'b10001 : sel7 <= 2'b10;
- 5'b10010 : sel7 <= 2'b10;
- 5'b10011 : sel7 <= 2'b10;
- 5'b10100 : sel7 <= 2'b10;
- 5'b10101 : sel7 <= 2'b10;
- 5'b10110 : sel7 <= 2'b10;
- 5'b10111 : sel7 <= 2'b10;
- 5'b11000 : sel7 <= 2'b11;
- 5'b11001 : sel7 <= 2'b11;
- 5'b11010 : sel7 <= 2'b11;
- 5'b11011 : sel7 <= 2'b11;
- 5'b11100 : sel7 <= 2'b11;
- 5'b11101 : sel7 <= 2'b11;
- 5'b11110 : sel7 <= 2'b11;
- 5'b11111 : sel7 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel8 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel8 <= 2'b01;
- 5'b00001 : sel8 <= 2'b01;
- 5'b00010 : sel8 <= 2'b01;
- 5'b00011 : sel8 <= 2'b01;
- 5'b00100 : sel8 <= 2'b01;
- 5'b00101 : sel8 <= 2'b01;
- 5'b00110 : sel8 <= 2'b01;
- 5'b00111 : sel8 <= 2'b01;
- 5'b01000 : sel8 <= 2'b01;
- 5'b01001 : sel8 <= 2'b10;
- 5'b01010 : sel8 <= 2'b10;
- 5'b01011 : sel8 <= 2'b10;
- 5'b01100 : sel8 <= 2'b10;
- 5'b01101 : sel8 <= 2'b10;
- 5'b01110 : sel8 <= 2'b10;
- 5'b01111 : sel8 <= 2'b10;
- 5'b10000 : sel8 <= 2'b10;
- 5'b10001 : sel8 <= 2'b10;
- 5'b10010 : sel8 <= 2'b10;
- 5'b10011 : sel8 <= 2'b10;
- 5'b10100 : sel8 <= 2'b10;
- 5'b10101 : sel8 <= 2'b10;
- 5'b10110 : sel8 <= 2'b10;
- 5'b10111 : sel8 <= 2'b10;
- 5'b11000 : sel8 <= 2'b10;
- 5'b11001 : sel8 <= 2'b11;
- 5'b11010 : sel8 <= 2'b11;
- 5'b11011 : sel8 <= 2'b11;
- 5'b11100 : sel8 <= 2'b11;
- 5'b11101 : sel8 <= 2'b11;
- 5'b11110 : sel8 <= 2'b11;
- 5'b11111 : sel8 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel9 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel9 <= 2'b01;
- 5'b00001 : sel9 <= 2'b01;
- 5'b00010 : sel9 <= 2'b01;
- 5'b00011 : sel9 <= 2'b01;
- 5'b00100 : sel9 <= 2'b01;
- 5'b00101 : sel9 <= 2'b01;
- 5'b00110 : sel9 <= 2'b01;
- 5'b00111 : sel9 <= 2'b01;
- 5'b01000 : sel9 <= 2'b01;
- 5'b01001 : sel9 <= 2'b01;
- 5'b01010 : sel9 <= 2'b10;
- 5'b01011 : sel9 <= 2'b10;
- 5'b01100 : sel9 <= 2'b10;
- 5'b01101 : sel9 <= 2'b10;
- 5'b01110 : sel9 <= 2'b10;
- 5'b01111 : sel9 <= 2'b10;
- 5'b10000 : sel9 <= 2'b10;
- 5'b10001 : sel9 <= 2'b10;
- 5'b10010 : sel9 <= 2'b10;
- 5'b10011 : sel9 <= 2'b10;
- 5'b10100 : sel9 <= 2'b10;
- 5'b10101 : sel9 <= 2'b10;
- 5'b10110 : sel9 <= 2'b10;
- 5'b10111 : sel9 <= 2'b10;
- 5'b11000 : sel9 <= 2'b10;
- 5'b11001 : sel9 <= 2'b10;
- 5'b11010 : sel9 <= 2'b11;
- 5'b11011 : sel9 <= 2'b11;
- 5'b11100 : sel9 <= 2'b11;
- 5'b11101 : sel9 <= 2'b11;
- 5'b11110 : sel9 <= 2'b11;
- 5'b11111 : sel9 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel10 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel10 <= 2'b01;
- 5'b00001 : sel10 <= 2'b01;
- 5'b00010 : sel10 <= 2'b01;
- 5'b00011 : sel10 <= 2'b01;
- 5'b00100 : sel10 <= 2'b01;
- 5'b00101 : sel10 <= 2'b01;
- 5'b00110 : sel10 <= 2'b01;
- 5'b00111 : sel10 <= 2'b01;
- 5'b01000 : sel10 <= 2'b01;
- 5'b01001 : sel10 <= 2'b01;
- 5'b01010 : sel10 <= 2'b01;
- 5'b01011 : sel10 <= 2'b10;
- 5'b01100 : sel10 <= 2'b10;
- 5'b01101 : sel10 <= 2'b10;
- 5'b01110 : sel10 <= 2'b10;
- 5'b01111 : sel10 <= 2'b10;
- 5'b10000 : sel10 <= 2'b10;
- 5'b10001 : sel10 <= 2'b10;
- 5'b10010 : sel10 <= 2'b10;
- 5'b10011 : sel10 <= 2'b10;
- 5'b10100 : sel10 <= 2'b10;
- 5'b10101 : sel10 <= 2'b10;
- 5'b10110 : sel10 <= 2'b10;
- 5'b10111 : sel10 <= 2'b10;
- 5'b11000 : sel10 <= 2'b10;
- 5'b11001 : sel10 <= 2'b10;
- 5'b11010 : sel10 <= 2'b10;
- 5'b11011 : sel10 <= 2'b11;
- 5'b11100 : sel10 <= 2'b11;
- 5'b11101 : sel10 <= 2'b11;
- 5'b11110 : sel10 <= 2'b11;
- 5'b11111 : sel10 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel11 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel11 <= 2'b01;
- 5'b00001 : sel11 <= 2'b01;
- 5'b00010 : sel11 <= 2'b01;
- 5'b00011 : sel11 <= 2'b01;
- 5'b00100 : sel11 <= 2'b01;
- 5'b00101 : sel11 <= 2'b01;
- 5'b00110 : sel11 <= 2'b01;
- 5'b00111 : sel11 <= 2'b01;
- 5'b01000 : sel11 <= 2'b01;
- 5'b01001 : sel11 <= 2'b01;
- 5'b01010 : sel11 <= 2'b01;
- 5'b01011 : sel11 <= 2'b01;
- 5'b01100 : sel11 <= 2'b10;
- 5'b01101 : sel11 <= 2'b10;
- 5'b01110 : sel11 <= 2'b10;
- 5'b01111 : sel11 <= 2'b10;
- 5'b10000 : sel11 <= 2'b10;
- 5'b10001 : sel11 <= 2'b10;
- 5'b10010 : sel11 <= 2'b10;
- 5'b10011 : sel11 <= 2'b10;
- 5'b10100 : sel11 <= 2'b10;
- 5'b10101 : sel11 <= 2'b10;
- 5'b10110 : sel11 <= 2'b10;
- 5'b10111 : sel11 <= 2'b10;
- 5'b11000 : sel11 <= 2'b10;
- 5'b11001 : sel11 <= 2'b10;
- 5'b11010 : sel11 <= 2'b10;
- 5'b11011 : sel11 <= 2'b10;
- 5'b11100 : sel11 <= 2'b11;
- 5'b11101 : sel11 <= 2'b11;
- 5'b11110 : sel11 <= 2'b11;
- 5'b11111 : sel11 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel12 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel12 <= 2'b01;
- 5'b00001 : sel12 <= 2'b01;
- 5'b00010 : sel12 <= 2'b01;
- 5'b00011 : sel12 <= 2'b01;
- 5'b00100 : sel12 <= 2'b01;
- 5'b00101 : sel12 <= 2'b01;
- 5'b00110 : sel12 <= 2'b01;
- 5'b00111 : sel12 <= 2'b01;
- 5'b01000 : sel12 <= 2'b01;
- 5'b01001 : sel12 <= 2'b01;
- 5'b01010 : sel12 <= 2'b01;
- 5'b01011 : sel12 <= 2'b01;
- 5'b01100 : sel12 <= 2'b01;
- 5'b01101 : sel12 <= 2'b10;
- 5'b01110 : sel12 <= 2'b10;
- 5'b01111 : sel12 <= 2'b10;
- 5'b10000 : sel12 <= 2'b10;
- 5'b10001 : sel12 <= 2'b10;
- 5'b10010 : sel12 <= 2'b10;
- 5'b10011 : sel12 <= 2'b10;
- 5'b10100 : sel12 <= 2'b10;
- 5'b10101 : sel12 <= 2'b10;
- 5'b10110 : sel12 <= 2'b10;
- 5'b10111 : sel12 <= 2'b10;
- 5'b11000 : sel12 <= 2'b10;
- 5'b11001 : sel12 <= 2'b10;
- 5'b11010 : sel12 <= 2'b10;
- 5'b11011 : sel12 <= 2'b10;
- 5'b11100 : sel12 <= 2'b10;
- 5'b11101 : sel12 <= 2'b11;
- 5'b11110 : sel12 <= 2'b11;
- 5'b11111 : sel12 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel13 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel13 <= 2'b01;
- 5'b00001 : sel13 <= 2'b01;
- 5'b00010 : sel13 <= 2'b01;
- 5'b00011 : sel13 <= 2'b01;
- 5'b00100 : sel13 <= 2'b01;
- 5'b00101 : sel13 <= 2'b01;
- 5'b00110 : sel13 <= 2'b01;
- 5'b00111 : sel13 <= 2'b01;
- 5'b01000 : sel13 <= 2'b01;
- 5'b01001 : sel13 <= 2'b01;
- 5'b01010 : sel13 <= 2'b01;
- 5'b01011 : sel13 <= 2'b01;
- 5'b01100 : sel13 <= 2'b01;
- 5'b01101 : sel13 <= 2'b01;
- 5'b01110 : sel13 <= 2'b10;
- 5'b01111 : sel13 <= 2'b10;
- 5'b10000 : sel13 <= 2'b10;
- 5'b10001 : sel13 <= 2'b10;
- 5'b10010 : sel13 <= 2'b10;
- 5'b10011 : sel13 <= 2'b10;
- 5'b10100 : sel13 <= 2'b10;
- 5'b10101 : sel13 <= 2'b10;
- 5'b10110 : sel13 <= 2'b10;
- 5'b10111 : sel13 <= 2'b10;
- 5'b11000 : sel13 <= 2'b10;
- 5'b11001 : sel13 <= 2'b10;
- 5'b11010 : sel13 <= 2'b10;
- 5'b11011 : sel13 <= 2'b10;
- 5'b11100 : sel13 <= 2'b10;
- 5'b11101 : sel13 <= 2'b10;
- 5'b11110 : sel13 <= 2'b11;
- 5'b11111 : sel13 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel14 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel14 <= 2'b01;
- 5'b00001 : sel14 <= 2'b01;
- 5'b00010 : sel14 <= 2'b01;
- 5'b00011 : sel14 <= 2'b01;
- 5'b00100 : sel14 <= 2'b01;
- 5'b00101 : sel14 <= 2'b01;
- 5'b00110 : sel14 <= 2'b01;
- 5'b00111 : sel14 <= 2'b01;
- 5'b01000 : sel14 <= 2'b01;
- 5'b01001 : sel14 <= 2'b01;
- 5'b01010 : sel14 <= 2'b01;
- 5'b01011 : sel14 <= 2'b01;
- 5'b01100 : sel14 <= 2'b01;
- 5'b01101 : sel14 <= 2'b01;
- 5'b01110 : sel14 <= 2'b01;
- 5'b01111 : sel14 <= 2'b10;
- 5'b10000 : sel14 <= 2'b10;
- 5'b10001 : sel14 <= 2'b10;
- 5'b10010 : sel14 <= 2'b10;
- 5'b10011 : sel14 <= 2'b10;
- 5'b10100 : sel14 <= 2'b10;
- 5'b10101 : sel14 <= 2'b10;
- 5'b10110 : sel14 <= 2'b10;
- 5'b10111 : sel14 <= 2'b10;
- 5'b11000 : sel14 <= 2'b10;
- 5'b11001 : sel14 <= 2'b10;
- 5'b11010 : sel14 <= 2'b10;
- 5'b11011 : sel14 <= 2'b10;
- 5'b11100 : sel14 <= 2'b10;
- 5'b11101 : sel14 <= 2'b10;
- 5'b11110 : sel14 <= 2'b10;
- 5'b11111 : sel14 <= 2'b11;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- sel15 <= 2'b00;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : sel15 <= 2'b01;
- 5'b00001 : sel15 <= 2'b01;
- 5'b00010 : sel15 <= 2'b01;
- 5'b00011 : sel15 <= 2'b01;
- 5'b00100 : sel15 <= 2'b01;
- 5'b00101 : sel15 <= 2'b01;
- 5'b00110 : sel15 <= 2'b01;
- 5'b00111 : sel15 <= 2'b01;
- 5'b01000 : sel15 <= 2'b01;
- 5'b01001 : sel15 <= 2'b01;
- 5'b01010 : sel15 <= 2'b01;
- 5'b01011 : sel15 <= 2'b01;
- 5'b01100 : sel15 <= 2'b01;
- 5'b01101 : sel15 <= 2'b01;
- 5'b01110 : sel15 <= 2'b01;
- 5'b01111 : sel15 <= 2'b01;
- 5'b10000 : sel15 <= 2'b10;
- 5'b10001 : sel15 <= 2'b10;
- 5'b10010 : sel15 <= 2'b10;
- 5'b10011 : sel15 <= 2'b10;
- 5'b10100 : sel15 <= 2'b10;
- 5'b10101 : sel15 <= 2'b10;
- 5'b10110 : sel15 <= 2'b10;
- 5'b10111 : sel15 <= 2'b10;
- 5'b11000 : sel15 <= 2'b10;
- 5'b11001 : sel15 <= 2'b10;
- 5'b11010 : sel15 <= 2'b10;
- 5'b11011 : sel15 <= 2'b10;
- 5'b11100 : sel15 <= 2'b10;
- 5'b11101 : sel15 <= 2'b10;
- 5'b11110 : sel15 <= 2'b10;
- 5'b11111 : sel15 <= 2'b10;
- endcase
- //------------------------用于sad计算处理的选择信号的产生
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- selc_temp <= 4'b0000;
- else
- if (fs_en_temp == 1'b1 && counter1024_temp[4:0]==5'b0)
- case (counter1024_temp[9:5])
- 5'b00000 : selc_temp <= 4'b0000;
- 5'b00001 : selc_temp <= 4'b0001;
- 5'b00010 : selc_temp <= 4'b0010;
- 5'b00011 : selc_temp <= 4'b0011;
- 5'b00100 : selc_temp <= 4'b0100;
- 5'b00101 : selc_temp <= 4'b0101;
- 5'b00110 : selc_temp <= 4'b0110;
- 5'b00111 : selc_temp <= 4'b0111;
- 5'b01000 : selc_temp <= 4'b1000;
- 5'b01001 : selc_temp <= 4'b1001;
- 5'b01010 : selc_temp <= 4'b1010;
- 5'b01011 : selc_temp <= 4'b1011;
- 5'b01100 : selc_temp <= 4'b1100;
- 5'b01101 : selc_temp <= 4'b1101;
- 5'b01110 : selc_temp <= 4'b1110;
- 5'b01111 : selc_temp <= 4'b1111;
- 5'b10000 : selc_temp <= 4'b0000;
- 5'b10001 : selc_temp <= 4'b0001;
- 5'b10010 : selc_temp <= 4'b0010;
- 5'b10011 : selc_temp <= 4'b0011;
- 5'b10100 : selc_temp <= 4'b0100;
- 5'b10101 : selc_temp <= 4'b0101;
- 5'b10110 : selc_temp <= 4'b0110;
- 5'b10111 : selc_temp <= 4'b0111;
- 5'b11000 : selc_temp <= 4'b1000;
- 5'b11001 : selc_temp <= 4'b1001;
- 5'b11010 : selc_temp <= 4'b1010;
- 5'b11011 : selc_temp <= 4'b1011;
- 5'b11100 : selc_temp <= 4'b1100;
- 5'b11101 : selc_temp <= 4'b1101;
- 5'b11110 : selc_temp <= 4'b1110;
- 5'b11111 : selc_temp <= 4'b1111;
- endcase
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- begin
- selc_temp1 <= 4'b0000;
- selc <= 4'b0000;
- end
- else
- begin
- selc_temp1 <= selc_temp;
- selc <= selc_temp1;
- end
- //--------------------图像宏块计数器
- always @ (posedge clk or posedge reset)
- if (reset == 1'b1)
- block_num <= 11'b0;
- else
- if (next_state == s_blockend)
- block_num <= block_num + 1'b1;
- else if (next_state == s_frameend)
- block_num <= 11'b0;
- //-------------------有限状态机转换
- always @ (posedge clk or posedge reset)
- if (reset ==1'b1)
- present_state <= s_powerup;
- else
- present_state <= next_state;
- always @ ( * )
- case ( present_state )
- s_powerup:
- begin
- next_state <= s_frameidle;
- end
- s_frameidle:
- begin
- if ( ven ==1'b1 && ven_delay==1'b0 )//帧有效上升沿
- next_state <= s_idle;
- else
- next_state <= s_frameidle;
- end
- s_idle:
- begin
- if ( ven_delay == 1'b0 )
- next_state <= s_frameidle;
- else
- begin
- if ( cbready_temp == 1'b1 )//当前宏块数据有效
- next_state <= s_cbready;
- else
- next_state <= s_idle;
- end
- end
- s_cbready:
- begin
- if ( ven_delay == 1'b0 )
- next_state <= s_frameidle;
- else
- begin
- if ( swready_temp == 1'b1 )//搜索窗数据有效
- next_state <= s_loading;
- else
- next_state <= s_cbready;
- end
- end
- s_loading:
- begin
- if ( count20 ==5'b10100 )//当前数据与参考数据载入PE中
- next_state <= s_calculating;
- else
- next_state <= s_loading;
- end
- s_calculating:
- begin
- if ( counter1024 == 10'b1111111111 )//一个宏块运动搜索结束
- next_state <= s_blockend;
- else
- next_state <= s_calculating;
- end
- s_blockend:
- begin
- if ( block_num == 11'b11001010100 )//一帧图像运动搜索完成
- next_state <= s_frameend;
- else
- next_state <= s_idle;
- end
- s_frameend:
- begin
- next_state <= s_frameidle;
- end
- default : next_state <= s_frameidle;
- endcase
- endmodule