52mcu 发表于 2008-1-24 19:44

基FPGA_Cyclone_II_EP2C5/EP2C8的频率计

功能描述:按4*4键盘上的1,2,3...号按键可依次测出<br /> 25000000Hz ,12500000Hz&nbsp;....的分频信号并显示在8个数码管上.<br />希望和初学者一起学习 163haole@163.com<br />本设计由以下四个模块组成.<br />freqtest.v&nbsp;-8位十进制频率计&nbsp;(顶层模块)<br />KeyBoard.v&nbsp;-4*4键盘扫描模块&nbsp;(选择不同的被测信号)<br />cnt10.v&nbsp;-十进制计数器模块  (测频计数)<br />scan_led.v&nbsp;-数码管动态扫描模块&nbsp;(显示测量结果)<br /><br /><br />/*&nbsp;freqtest.v&nbsp;-8位十进制频率计*/<br /><br />/*&nbsp;Copyright&nbsp;2008-2018&nbsp;&nbsp;*/<br /><br />/*<br />modification&nbsp;history<br />--------------------<br />01a,16jan08,52mcu 163haole@163.com<br />*/<br /><br />/*<br />DESCRIPTION<br />Cyclone&nbsp;II&nbsp;EP2C5Q208C<br /><br />*/<br />module&nbsp;freqtest(clock,freq_input,dig,seg,test,col,row,rstkey);<br />input&nbsp;clock;&nbsp;&nbsp;//系统时钟<br />inout&nbsp;freq_input;&nbsp;&nbsp;//被测信号时钟<br />output&nbsp;dig;&nbsp;//数码管选择输出<br />output&nbsp;seg;&nbsp;//数码管段输出引脚<br />output&nbsp;test;//输出频率信号,用于测试<br /><br />output&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />input&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />input&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rstkey&nbsp;;<br /><br />regcounter;&nbsp;&nbsp;//时钟分频计数器<br />regfreq_result;&nbsp;//频率测量结果寄存器<br />wire&nbsp;pre_freq;&nbsp;//脉冲计数寄存器<br />reg&nbsp;rst;<br />wire&nbsp;divide_clk;&nbsp;//1Hz闸门信号<br />wire&nbsp;clk_scan;&nbsp;//数码管扫描时钟<br />wire&nbsp;cout1,cout2,cout3,cout4,cout5,cout6,cout7;<br /><br /><br /><br />assign&nbsp;clk_scan&nbsp;=&nbsp;counter;&nbsp;//动态扫描时钟<br />assign&nbsp;test&nbsp;=&nbsp;counter;//输出频率信号,用于测试<br /><br />reg&nbsp;&nbsp;Mega_cnt;<br />regkey;<br />reg&nbsp;freq_input_r;<br /><br /><br />//时钟分频进程:分出1hz基准信号<br />always&nbsp;@(posedge&nbsp;clock)<br />begin<br />&nbsp;&nbsp;&nbsp;if(divide_clk)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter&lt=26'd0;<br />&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter&lt=counter+1'b1;<br />end<br /><br />assign&nbsp;divide_clk=(counter&gt=26'd50000000);//<br /><br /><br /><br />//锁存测量值进程<br />always&nbsp;@(posedge&nbsp;clock)<br />begin<br />&nbsp;&nbsp;&nbsp;if(divide_clk)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;freq_result&lt=pre_freq;<br />end<br /><br />//产生计数器复信号<br />always&nbsp;@(posedge&nbsp;clock)<br />begin<br />&nbsp;&nbsp;if(divide_clk)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rst&lt=1'b1;<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rst&lt=1'b0;<br />end<br /><br />//产生被测频率信号<br /><br />//assign&nbsp;freq_input=counter;<br />assign&nbsp;freq_input=&nbsp;freq_input_r;<br /><br />always&nbsp;@(posedge&nbsp;clock&nbsp;)&nbsp;&nbsp;//sys_clk&nbsp;50Mhz<br />begin<br /><br />if(Mega_cnt&gt32'd48)&nbsp;&nbsp;//50-2<br />&nbsp;&nbsp;begin&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mega_cnt&lt=32'd0;<br />&nbsp;&nbsp;end&nbsp;<br />else<br />&nbsp;&nbsp;&nbsp;&nbsp;Mega_cnt&lt=Mega_cnt+1;<br />end<br /><br />assign&nbsp;clk_1Mhz&nbsp;=&nbsp;Mega_cnt;//1Mhz&nbsp;<br /><br />KeyBoard&nbsp;(.code(key),.col(col),.valid(valid),.row(row),.sys_clk(clk_1Mhz),.rst(rstkey));<br /><br />always&nbsp;@(key)<br />begin<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;case(key)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd1:&nbsp;freq_input_r=counter;//25000000<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd2:&nbsp;freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd3:&nbsp;freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd4:&nbsp;freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd5:&nbsp;freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd6:&nbsp;freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd7:&nbsp;freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd8:&nbsp;freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd9:&nbsp;freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd10:freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd11:freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd12:freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd13:freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd14:freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd15:freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'd0:freq_input_r=counter;&nbsp;//762.939453125Hz<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:freq_input_r=counter;<br />&nbsp;&nbsp;&nbsp;endcase<br /><br />end<br /><br />//8位十进制模块:由8个十进制计数模块构成<br />//*<br />cnt10&nbsp;u1(.clock(freq_input),.rst(rst),.cin(1'b1),&nbsp;.cout(cout1),.dout(pre_freq));<br />cnt10&nbsp;u2(.clock(freq_input),.rst(rst),.cin(cout1),.cout(cout2),.dout(pre_freq));<br />cnt10&nbsp;u3(.clock(freq_input),.rst(rst),.cin(cout2),.cout(cout3),.dout(pre_freq));<br />cnt10&nbsp;u4(.clock(freq_input),.rst(rst),.cin(cout3),.cout(cout4),.dout(pre_freq));<br />cnt10&nbsp;u5(.clock(freq_input),.rst(rst),.cin(cout4),.cout(cout5),.dout(pre_freq));<br />cnt10&nbsp;u6(.clock(freq_input),.rst(rst),.cin(cout5),.cout(cout6),.dout(pre_freq));<br />cnt10&nbsp;u7(.clock(freq_input),.rst(rst),.cin(cout6),.cout(cout7),.dout(pre_freq));<br />cnt10&nbsp;u8(.clock(freq_input),.rst(rst),.cin(cout7),.cout(),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dout(pre_freq));<br />//*/<br />//数码管显示模块<br />scan_led&nbsp;u9(.clk_1k(clk_scan),.d(freq_result),.dig(dig),.seg(seg));<br /><br />endmodule<br /><br /><br />/*&nbsp;KeyBoard.v&nbsp;-4*4键盘扫描模块*/<br /><br />/*&nbsp;Copyright&nbsp;2008-2018&nbsp;&nbsp;*/<br /><br />/*<br />modification&nbsp;history<br />--------------------<br />01a,20jan08,52mcu&nbsp;&nbsp;modified&nbsp;comment&nbsp;&nbsp;163haole@163.com<br />01a,13jan08,52mcu&nbsp;added&nbsp;comment<br />*/<br /><br />/*<br />DESCRIPTION<br />Cyclone&nbsp;II&nbsp;EP2C5Q208C<br /><br />*/<br />module&nbsp;KeyBoard(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys_clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rst&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valid&nbsp;&nbsp;&nbsp;;<br />&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;code&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;<br />&nbsp;input&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;input&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys_clk,rst&nbsp;;<br />&nbsp;<br />&nbsp;reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col,code;<br />&nbsp;reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state,next_state;<br />&nbsp;<br />&nbsp;parameter&nbsp;&nbsp;S_0&nbsp;=&nbsp;6'b000001,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_1&nbsp;=&nbsp;6'b000010,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_2&nbsp;=&nbsp;6'b000100,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_3&nbsp;=&nbsp;6'b001000,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_4&nbsp;=&nbsp;6'b010000,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_5&nbsp;=&nbsp;6'b100000;<br />&nbsp;reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_row&nbsp;;&nbsp;<br />&nbsp;reg&nbsp;&nbsp;count,row_reg,col_reg;<br />&nbsp;reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clk2,clk4;<br />&nbsp;<br />&nbsp;<br />&nbsp;reg&nbsp;&nbsp;Mega_cnt;<br />&nbsp;wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clk;<br />/**************************************/<br />always&nbsp;@(posedge&nbsp;sys_clk&nbsp;or&nbsp;negedge&nbsp;rst)&nbsp;&nbsp;//sys_clk&nbsp;1Mhz<br />begin<br />if(!rst)<br />&nbsp;&nbsp;begin<br />&nbsp;&nbsp;Mega_cnt&lt=0;<br />&nbsp;&nbsp;end<br />else<br />&nbsp;&nbsp;begin<br />&nbsp;&nbsp;Mega_cnt&lt=Mega_cnt+1;<br />&nbsp;&nbsp;end<br />end<br /><br />assign&nbsp;clk&nbsp;=&nbsp;Mega_cnt;&nbsp;&nbsp;//clk&nbsp;1Mhz/2^(4+1)=31.25Khz<br />/**************************************/&nbsp;<br />&nbsp;<br />&nbsp;always&nbsp;@&nbsp;(posedge&nbsp;clk)&nbsp;&nbsp;&nbsp;//clk2&nbsp;clk/2=62.5Khz/2=15.625Khz<br />&nbsp;clk2&nbsp;&lt=&nbsp;~clk2;<br />&nbsp;<br />&nbsp;always&nbsp;@&nbsp;(posedge&nbsp;clk2)&nbsp;&nbsp;//clk4&nbsp;clk2/2=15.625Khz/2=7.8125Khz&nbsp;&nbsp;0.128ms<br />&nbsp;clk4&nbsp;&lt=&nbsp;~clk4;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;always&nbsp;@&nbsp;(posedge&nbsp;clk4&nbsp;or&nbsp;negedge&nbsp;rst)<br />&nbsp;if(!rst)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;&lt=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_row&nbsp;&lt=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!(row&row&row&row))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(count&nbsp;&lt&nbsp;'d4)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;&lt=&nbsp;count&nbsp;+1&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_row&nbsp;&lt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(state||state)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;&lt=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_row&nbsp;&lt=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;assign&nbsp;valid&nbsp;=&nbsp;((state&nbsp;==&nbsp;S_1)||(state&nbsp;==&nbsp;S_2)||(state&nbsp;==&nbsp;S_3)||(state&nbsp;==&nbsp;S_4))&nbsp;&&&nbsp;&nbsp;(!(row&row&row&row))&nbsp;;<br />&nbsp;<br />&nbsp;always&nbsp;@&nbsp;(negedge&nbsp;clk)&nbsp;//clk&nbsp;1Mhz/2^(4+1)=31.25Khz<br />&nbsp;if(valid)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row_reg&nbsp;&lt=&nbsp;row&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col_reg&nbsp;&lt=&nbsp;col&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row_reg&nbsp;&lt=&nbsp;row_reg&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col_reg&nbsp;&lt=&nbsp;col_reg&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;always&nbsp;@&nbsp;(row_reg&nbsp;or&nbsp;col_reg&nbsp;or&nbsp;clk)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case({row_reg,col_reg})<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1110_1110:&nbsp;code&nbsp;=&nbsp;13;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1110_1101:&nbsp;code&nbsp;=&nbsp;9&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1110_1011:&nbsp;code&nbsp;=&nbsp;5&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1110_0111:&nbsp;code&nbsp;=&nbsp;1&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1101_1110:&nbsp;code&nbsp;=&nbsp;14;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1101_1101:&nbsp;code&nbsp;=&nbsp;10;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1101_1011:&nbsp;code&nbsp;=&nbsp;6&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1101_0111:&nbsp;code&nbsp;=&nbsp;2&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1011_1110:&nbsp;code&nbsp;=&nbsp;15&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1011_1101:&nbsp;code&nbsp;=&nbsp;11&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1011_1011:&nbsp;code&nbsp;=&nbsp;7;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b1011_0111:&nbsp;code&nbsp;=&nbsp;3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b0111_1110:&nbsp;code&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b0111_1101:&nbsp;code&nbsp;=&nbsp;12;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b0111_1011:&nbsp;code&nbsp;=&nbsp;8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8'b0111_0111:&nbsp;code&nbsp;=&nbsp;4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;endcase<br />&nbsp;<br />&nbsp;always&nbsp;@&nbsp;(posedge&nbsp;clk4&nbsp;or&nbsp;negedge&nbsp;rst)&nbsp;//clk4&nbsp;clk2/2=15.625Khz/2=7.8125Khz&nbsp;&nbsp;0.128ms<br />&nbsp;if(!rst)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state&nbsp;&lt=&nbsp;S_0&nbsp;;<br />&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state&nbsp;&lt=&nbsp;next_state&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;always&nbsp;@&nbsp;(&nbsp;state&nbsp;or&nbsp;row&nbsp;or&nbsp;S_row)<br />&nbsp;begin<br />&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;next_state&nbsp;=&nbsp;state&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case(state)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_0&nbsp;:&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;=&nbsp;4'b0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(S_row)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_1&nbsp;:&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;=&nbsp;4'b1110;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(row!='hf)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_2&nbsp;:&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;=&nbsp;4'b1101;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(row!='hf)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_3&nbsp;:&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;=&nbsp;4'b1011;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(row!='hf)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_4;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_4&nbsp;:&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;=&nbsp;4'b0111;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(row!='hf)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S_5&nbsp;:&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col&nbsp;=&nbsp;4'b0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(row&nbsp;==&nbsp;4'b1111)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_state&nbsp;=&nbsp;S_5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:&nbsp;next_state&nbsp;=&nbsp;S_0;<br />&nbsp;&nbsp;endcase<br />&nbsp;&nbsp;end<br />endmodule<br /><br />/*&nbsp;cnt10.v&nbsp;-十进制计数器*/<br /><br />/*&nbsp;Copyright&nbsp;2008-2018&nbsp;&nbsp;*/<br /><br />/*<br />modification&nbsp;history<br />--------------------<br />01a,16jan08,52mcu&nbsp;&nbsp;163haole@163.com<br />*/<br /><br />/*<br />DESCRIPTION<br />Cyclone&nbsp;II&nbsp;EP2C5Q208C<br /><br />*/<br />module&nbsp;cnt10(clock,rst,cin,cout,dout);//十进制计数器<br />input&nbsp;clock;//计数时钟<br />input&nbsp;cin;//进位输入<br />input&nbsp;rst;//&nbsp;复位信号<br />output&nbsp;cout;//进位输出<br />outputdout;//计数输出<br />regcounter;&nbsp;//寄存器<br />assign&nbsp;dout=counter;<br /><br />assign&nbsp;cout=cin&&(counter&gt=4'd9);&nbsp;//进位输出<br />always&nbsp;@(posedge&nbsp;clock&nbsp;or&nbsp;posedge&nbsp;rst)<br />begin<br />&nbsp;&nbsp;&nbsp;if(rst)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter&lt=4'd0;//计数器复位<br />&nbsp;&nbsp;&nbsp;else&nbsp;if(cin)&nbsp;&nbsp;//进位输入<br />&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(cout)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter&lt=4'd0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter&lt=counter+1'b1;<br />&nbsp;&nbsp;&nbsp;end<br />end<br />endmodule<br /><br /><br />/*&nbsp;scan_led.v&nbsp;-数码管动态扫描&nbsp;&nbsp;*/<br /><br />/*&nbsp;Copyright&nbsp;2008-2018&nbsp;&nbsp;*/<br /><br />/*<br />modification&nbsp;history<br />--------------------<br />01a&nbsp;15jan08&nbsp;52mcu&nbsp;solve&nbsp;the&nbsp;dig&nbsp;problem&nbsp;&nbsp;163haole@163.com<br />01a,10jan08,52mcu<br />*/<br /><br />/*<br />DESCRIPTION<br />Cyclone&nbsp;II&nbsp;EP2C5Q208C<br /><br />*/<br /><br />module&nbsp;scan_led(clk_1k,d,dig,seg);<br />input&nbsp;clk_1k;<br />inputd;<br /><br />outputdig;<br />outputseg;<br /><br />regseg_r;<br />regdig_r;<br />regdisp_dat;<br />regcount;<br /><br />assign&nbsp;dig=dig_r;<br />assign&nbsp;seg&nbsp;=&nbsp;seg_r;<br /><br /><br />always&nbsp;@(posedge&nbsp;clk_1k)<br />begin<br />&nbsp;&nbsp;count&lt=count+1'b1;<br />end<br /><br />always&nbsp;@(posedge&nbsp;&nbsp;clk_1k)<br />begin<br />&nbsp;&nbsp;case(count)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3'd0:disp_dat=d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3'd1:disp_dat=d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3'd2:disp_dat=d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3'd3:disp_dat=d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3'd4:disp_dat=d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3'd5:disp_dat=d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3'd6:disp_dat=d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3'd7:disp_dat=d;<br />&nbsp;&nbsp;endcase<br />&nbsp;&nbsp;dig_r&nbsp;=&nbsp;count;<br />&nbsp;&nbsp;&nbsp;<br />end<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;always&nbsp;@(disp_dat)<br />begin<br />&nbsp;&nbsp;case(disp_dat)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h0:seg_r&nbsp;=&nbsp;8'b00111111;//&nbsp;'0'8'b00000001;//&nbsp;'-'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h1:seg_r&nbsp;=&nbsp;8'b00000110;//&nbsp;'1'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h2:seg_r&nbsp;=&nbsp;8'b01011011;//&nbsp;'2'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h3:seg_r&nbsp;=&nbsp;8'b01001111;//&nbsp;'3'&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h4:seg_r&nbsp;=&nbsp;8'b01100110;//&nbsp;'4'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h5:seg_r&nbsp;=&nbsp;8'b01101101;//&nbsp;'5'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h6:seg_r&nbsp;=&nbsp;8'b01111101;//&nbsp;'6'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h7:seg_r&nbsp;=&nbsp;8'b00000111;//&nbsp;'7'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h8:seg_r&nbsp;=&nbsp;8'b01111111;//&nbsp;'8'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'h9:seg_r&nbsp;=&nbsp;8'b01101111;//&nbsp;'9'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'ha:seg_r&nbsp;=&nbsp;8'b01110111;//&nbsp;'a'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'hb:seg_r&nbsp;=&nbsp;8'b01111100;//&nbsp;'b'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'hc:seg_r&nbsp;=&nbsp;8'b00111001;//&nbsp;'c'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'hd:seg_r&nbsp;=&nbsp;8'b01011110;//&nbsp;'d'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'he:seg_r&nbsp;=&nbsp;8'b01111001;//&nbsp;'e'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'hf:seg_r&nbsp;=&nbsp;8'b01110001;//&nbsp;'f'<br />&nbsp;&nbsp;endcase<br />end<br />endmodule<br /><br />

niu9911 发表于 2008-3-24 18:34

FPGA_Cyclone_II_EP2C5/EP2C8

楼主用这个片子也是高手了,学习中...

songchao01 发表于 2008-3-26 09:12

飘过~慢慢学习~~

xjg1111 发表于 2008-4-10 14:31

原创的东东,鼓励下~~

qiyeting 发表于 2008-4-11 09:03

学习中

正在学习,谢谢了

dzcn_hh 发表于 2008-6-14 10:08

正在学习VERILOG,感谢分享

杨晓波 发表于 2008-9-14 10:52

EDA技术

minni 发表于 2008-9-28 22:08

能否跟我指点下inout怎么用?

能否跟我指点下inout怎么用?谢谢

tu312 发表于 2008-10-3 11:00

飘过~慢慢学习 c3

页: [1]
查看完整版本: 基FPGA_Cyclone_II_EP2C5/EP2C8的频率计