最近打了stp的补丁包,直接导出stp文件,但是只有元件,没有板子的外形 不知道是什么情况,请指教!
我仿照特权同学的FPGA VGA历程写了一个VGA程序。下到板子里,屏幕显示许多竖条,没有预期的小方块。大神看看,是不是我纵坐标哪里搞错了?谢谢!分辨率800*600,原来特权同学的分辨率是640*480module VGA( clkrst_n //系统控制 hsyncvsync vga_rvga_gvga_b //VGA控制 ); input clk; //50Minput rst_n; //低电平复位 //FPGA与VGA接口信号output hsync; //行同步信号output vsync; //场同步信号output[2:0] vga_r;output[2:0] vga_g;output[1:0] vga_b;//坐标计数reg[10:0] x_cnt; //行坐标reg[9:0] y_cnt; //列坐标always @(posedge clk or negedge rst_n) if(!rst_n) x_cnt <= 11'd0; else if(x_cnt == 11'd1039) x_cnt <= 11'd0; else x_cnt <= x_cnt+1'b1;always @(posedge clk or negedge rst_n) if(!rst_n) y_cnt <= 10'd0; else if(y_cnt == 10'd665) y_cnt <= 10'd0; else if(x_cnt == 11'd1039) y_cnt <= y_cnt+1'b1; //VGA场同步,行同步信号reg hsync_rvsync_r; //同步信号always @(posedge clk or negedge rst_n) if(!rst_n) hsync_r <= 1'b1; else if(x_cnt == 11'd0) hsync_r <= 1'b0; //产生hsync信号 else if(x_cnt == 11'd120) hsync_r <= 1'b1; always @(posedge clk or negedge rst_n) if(!rst_n) vsync_r <= 1'b1; else if(y_cnt == 10'd0) vsync_r <= 1'b0; //产生vsync信号 else if(y_cnt == 10'd6) vsync_r <= 1'b1; assign hsync =hsync_r;assign vsync = vsync_r; //有效显示标志位产生reg valid_yr; //行显示有效信号always @(posedge clk or negedge rst_n) if(!rst_n) valid_yr <= 1'b0; else if(y_cnt == 10'd32) valid_yr <= 1'b1; else if(y_cnt == 10'd632) valid_yr <= 1'b0;wire valid_y=valid_yr;reg valid_r;always @(posedge clk or negedge rst_n) if(!rst_n) valid_r <= 1'b0; else if((x_cnt == 11'd187) && valid_y) valid_r <= 1'b1; else if((x_cnt == 11'd987) && valid_y) valid_r <= 1'b0; wire valid=valid_r;wire[10:0] x_dis; //横坐标显示有效区域0-799wire[9:0] y_dis; //纵坐标显示有效区域0-599assign x_dis = x_cnt - 11'd187;assign y_dis = y_cnt - 10'd33;//VGA色彩信号产生/* RGB = 000 黑色 RGB = 100 红色 = 001 蓝色 = 101 紫色 = 010 绿色 = 110 黄色 = 011 青色 = 111 白色 *//*一共800*600个像素点,需要显示256种颜色;那么每个颜色显示区域为40*30,就正好。*/reg[7:0] vga_rgb; //VGA色彩显示寄存器always @(posedge clk) if(!valid) vga_rgb <= 8'd0; else begin case(x_dis) 11'd0: begin //当x坐标画到0时,让显示色彩数据根据当前的y坐标值重新 if(y_dis >= 10'd0 && y_dis < 10'd40) vga_rgb <= 8'd0; else if(y_dis >= 10'd40 && y_dis < 10'd80) vga_rgb <= 8'd16; else if(y_dis >= 10'd80 && y_dis < 10'd120) vga_rgb <= 8'd32; else if(y_dis >= 10'd120 && y_dis < 10'd160) vga_rgb <= 8'd48; else if(y_dis >= 10'd160 && y_dis < 10'd200) vga_rgb <= 8'd64; else if(y_dis >= 10'd200 && y_dis < 10'd240) vga_rgb <= 8'd80; else if(y_dis >= 10'd240 && y_dis < 10'd280) vga_rgb <= 8'd96; else if(y_dis >= 10'd280 && y_dis < 10'd320) vga_rgb <= 8'd112; else if(y_dis >= 10'd320 && y_dis < 10'd360) vga_rgb <= 8'd128; else if(y_dis >= 10'd360 && y_dis < 10'd400) vga_rgb <= 8'd144; else if(y_dis >= 10'd400 && y_dis < 10'd440) vga_rgb <= 8'd160; else if(y_dis >= 10'd440 && y_dis < 10'd480) vga_rgb <= 8'd176; else if(y_dis >= 10'd480 && y_dis < 10'd520) vga_rgb <= 8'd192; else if(y_dis >= 10'd520 && y_dis < 10'd560) vga_rgb <= 8'd208; else vga_rgb <= 8'd224; end 11'd5011'd10011'd15011'd20011'd25011'd30011'd35011'd40011'd45011'd50011'd55011'd600 11'd65011'd7011'd750: vga_rgb <= vga_rgb + 1'b1; default:; endcase endassign vga_r = vga_rgb[7:5];assign vga_g = vga_rgb[4:2];assign vga_b = vga_rgb[1:0];endmodule
Altium Designer这个软件相比其他软件的优势是3D视图,个人画图时也很喜欢用3D视图去检查一些比较容易看出的问题。我现在使用的AD版本是AD16,在AD09中,从2D视图切换到3D视图后,在3D视图下旋转,翻转视图后,切换回2D,此时2D视图和3D视图位置同步的。但是在AD16中,这个功能被关闭了,默认2D和3D视图是分开的,在3D中旋转翻转后,切回2D,还是默认的2D视图,请问如何把这个功能开启呢?
altium designer10中集成库中的3D文件要和集成库放在一个文件夹下吗?如果库拷贝到别的电脑上用会不会不显示3D模型
PCB板布线时候,电磁继电器下面可以有走线和过孔吗?
Cadence中的焊盘设置阻焊开窗时是在各个pad文件中设置的,请问一下在生成gerber文件后,可以用cam350或者其他软件统一修改焊盘的阻焊开窗?我在一个博客中看到,建议将阻焊设置为与焊盘大小一致,因为板厂的人员可以很方便的进行设置,包括一个国外的板厂也是这么要求的(见下图)但是我在找国内几个比较知名的板厂时,好像他们都不会做这种处理,所以想问一下,这里有其他人知道怎么自己处理阻焊开窗的尺寸么。或者Cadence中是否有办法进行统一设置呢,就像Altium Designer那样。
同事给的原理图,有个元件是拆分了2个部分,PCB封装名称设置的一样,输出网表是有问题,如下Conflicting values of part name found on different sections of "U2".Conflicting values: Property values of "Device","PCB FootPrint", "Class" and "Value" should be identical on all sections of the part.这个该怎么解决?
PCBA一面有50位置需要贴同一电容,一些位置贴错i了别的电容,正确的和错误的电容外观和尺寸都类似,很难从外观和尺寸找出错的位置电容,贴错的电容PCBA功能测试和电性能测试也都能通过,无法通过测试排查!谁有好的办法可以找出错的位置上电容?