vesa時序之自生成動條紋
關於fpga學習之vesa時序自生成動條紋,實驗所達到的效果就是在自生成純色圖的基礎上讓某一寬度的條紋在純色圖上移動(本實驗以白色背景黑色條紋為例,分別講述橫著動條紋和豎著動條紋)。對於怎樣實現橫著動條紋,其主要思想就是先設定變數pos用來確定橫著動條紋的位置,然後在完成每一幀的顯示時,讓pos自加一,這樣可以讓下一幀的黑色條紋的位置往下移動乙個畫素點。豎條紋的思想同此。借助這個思想就可實現動條紋。**如下:
module self_generated_fifo(clk_in,clk_out,blank,data_out,v_sync,h_sync,sync);
input clk_in;
output clk_out;
output sync;
output blank;
output[23:0] data_out;
output v_sync;
output h_sync;
reg[10:0] h_cnt=0;
列計數always @(posedge clk)
if(h_cnt==1055)
h_cnt <= 0;
else
h_cnt <= h_cnt + 1;
//行計數
reg[9:0] v_cnt=0;
always @(posedge clk)
if(v_cnt == 627)
v_cnt <= 0;
else if(h_cnt == 1055)
v_cnt <= v_cnt + 1;
else
v_cnt <= v_cnt;
reg[10:0] pos=0;
//橫著動條紋
//always @(posedge clk)
// if(pos == 617)
// pos <= 0;
// else if(v_cnt ==626 && h_cnt == 1055)
// pos <= pos + 1;
// else
// pos <=pos;
豎著動條紋
always @(posedge clk)
if(pos == 1045)
pos <= 216;
else if(v_cnt ==626 && h_cnt == 1055)
pos <= pos + 1;
else
pos <=pos;
確定有效顯示區域
reg valid_r=0;
always @(posedge clk)
if(h_cnt>215 && h_cnt<1016 && v_cnt>26 && v_cnt <627)
valid_r <= 1;
else
valid_r <= 0;
assign blank = valid_r;
//行場同步
assign h_sync = (h_cnt<127)?0:1;
assign v_sync = (v_cnt<3)?0:1;
assign sync = 1;
//確定影象顯示
reg [23:0] data_out_r=0;
/*always @(posedge clk)
if(valid_r) begin
if(v_cnt>26 && v_cnt <327)
data_out_r <= 0;
else if(v_cnt>326 && v_cnt<627)
data_out_r <= 24』hffffff;
endassign data_out = data_out_r;*/
/assign data_out = (valid_r&&(v_cnt>=pos)&&(v_cnt
InfoGAN 生成時序序列
完整 本文介紹用infogan生成多維時序序列。name class dimension train size test size truncated charactertrajectories203 1422 1436 182charactertrajectories資料集是小寫英文本元軌跡的資料...
時序約束之 set clock groups
一 簡述 對於非同步時鐘,通常會使用set clock groups set false path做時序約束,使得不對跨非同步時鐘做時序分析。這樣做可以縮短綜合編譯時間,且將寶貴的片內資源用在其他必要的時序約束上。set clock groups 將不會對不同group的時鐘做時序分析,對同一gro...
時序分析之Slack
slack 的值通常用來表示設計是否滿足時序要求。同樣有setup slack 和 hold slack 如果slack 的值為正,則表明設計可以滿足setup hold time 要求,反之不滿足。若setup slack 為正,表示data required time 在data arrival...