今日热门

4

回答

先上程序:module max7219(clkrst_nclk1loaddin);input clkrst_n;output clk1loaddin;//reg[11:0] cnt;reg[11:0] cnt1;always @(posedge clk or negedge rst_n)        if(!rst_n)                         cnt1 <= 0;                                                else if(cnt1==12'd2560)                         cnt1 <= 0;                                else cnt1 <= cnt1+1'b1;                reg clk1_rdin_r;function Write_Max7219_byte;input [7:0] byte;                //always @(negedge clk1)        begin                case(cnt1)                        12'd0:                                begin                                clk1_r=0;                                din_r=byte[7];                                clk1_r=1;                                end                        12'd320:                                begin                                clk1_r=0;                                din_r=byte[6];                                clk1_r=1;                                end                                                        12'd640:                                begin                                clk1_r=0;                                din_r=byte[5];                                clk1_r=1;                                end                                                        12'd960:                                begin                                clk1_r=0;                                din_r=byte[4];                                clk1_r=1;                                end                        12'd1280:                                begin                                clk1_r=0;                                din_r=byte[3];                                clk1_r=1;                                end                        12'd1600:                                begin                                clk1_r=0;                                din_r=byte[2];                                clk1_r=1;                                end                        12'd1920:                                begin                                clk1_r=0;                                din_r=byte[1];                                clk1_r=1;                                end                        12'd2240:                                begin                                clk1_r=0;                                din_r=byte[0];                                clk1_r=1;                                end                endcase        endendfunctionassign clk1=clk1_r;assign din=din_r;reg load_r;function Write_Max7219;input [7:0] addr;input [7:0] dat;reg ab;        //always @(posedge clk or negedge rst_n)                begin                //load_r<=1'b0;                a=Write_Max7219_byte(addr);                b=Write_Max7219_byte(dat);                //load_r=1'b1;                endendfunctionassign load=load_r;reg a;always @(posedge clk)        begin        load_r<=1'b0;        //a=Write_Max7219(SHUT_DOWN 8'd1);   //Normal Operation XXXXXXX1 Shutdown Mode   XXXXXXXX0        a=Write_Max7219(8'hc 8'd1);         a=Write_Max7219(8'hf 8'd0);   //Normal Operation XXXXXXX0 Display Test Mode         a=Write_Max7219(8'h9 8'hff);   //Decode Mode Select D7~D0 1 B decode 0 No decode         a=Write_Max7219(8'hb 8'd4);   //SCAN LIMIT 0~7 0xX0~0xX7         a=Write_Max7219(8'ha 8'd4);   //Set Intensity   0xX0~0xXf         a=Write_Max7219(11);         a=Write_Max7219(22);         a=Write_Max7219(38);         a=Write_Max7219(46);        load_r<=1'b1;        endendmodule我写了个FPGA驱动MAX7219的程序,下载进去以后,本来四个数码管应该显示1286的,可是要么全亮,要么不亮。请大神看看,哪里有问题呀?谢谢!更多操作​

蓝蓝的天 2018-05-09 阅读:1338

0

回答
VGA的问题 EDA/PCB

我仿照特权同学的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

蓝蓝的天 2018-05-07 阅读:914

4

回答

CPLD芯片LE容量不够,搞个除法器都不够,EPM240够不够

nevergp 2018-05-01 阅读:1403

6

回答

我尝试了AD 18.1.2 到AD18.1.5 ,在导入规则时,全部卡死闪退。系统分别尝试了win10 RS2 1709 和win10 RS3 最新系统都一样。以下是事件日志:错误应用程序名称: X2.EXE,版本: 0.0.0.0,时间戳: 0x5ab03398错误模块名称: tbbmalloc.dll,版本: 2017.0.0.0,时间戳: 0x5915fb89异常代码: 0xc000041d错误偏移量: 0x000000000000db7b错误进程 ID: 0x1ec4错误应用程序启动时间: 0x01d3dd49ea814e96错误应用程序路径: D:\Program Files\Altium\AD181\X2.EXE错误模块路径: D:\Program Files\Altium\AD181\tbbmalloc.dll报告 ID: ef857391-91d7-448f-8600-ac8fae64c283错误程序包全名: 错误程序包相对应用程序 ID: ​应用程序: X2.EXEFramework 版本: v4.0.30319说明: 由于未经处理的异常,进程终止。异常信息: 异常代码为 c0000005,异常地址为 000000018000DB7B堆栈:​

mindhe 2018-04-26 阅读:6701

6

回答
CPLD转速计 EDA/PCB

基于CPLD转速计设计,光电传感器一般选择哪种型号,直接输出数字逻辑电平

nevergp 2018-04-21 阅读:1276

6

回答

我想仿真一个分频系数为12的分频器。程序如下:module div12(fm,clk);output fm;input clk;reg fm;reg[2:0] cnt=3'b000;always @(posedge clk) begin if(cnt==3'b101) begin fm <= ~fm;cnt<=0;end else begin cnt<=cnt+1;end endendmoduletestbench文件为:`timescale 1ns/1nsmodule div12_testbench;wire fm=0;reg clk=0;div12 div12(fm,clk);always  #10 clk=~clk;endmodule仿真结果为:​fm为什么是一条红线。没有波形。请高手执教,谢谢!

蓝蓝的天 2018-04-18 阅读:1173

8

回答
FPGA的问题 EDA/PCB

新换一家单位,接手一个项目。做的是激光粒度仪。用FPGA做的。我是FPGA菜鸟一个,刚开始学。大概看了一下,程序比较少,大部分都是原理图形式的文件。谁是这方面的高手,我把工程给他帮我看一看,费用我出。谢谢!

蓝蓝的天 2018-04-11 阅读:856

6

回答

请问高手,AD10自动布线时如何设置电源线和地线的线宽?谢谢!

蓝蓝的天 2018-04-11 阅读:3329

11

回答

 原理图见附件。请问高手,LED1,2,3,4分别连到FPGA的哪个管脚上。我是菜鸟,怎么也看不出来。谢谢!​

蓝蓝的天 2018-04-09 阅读:1450

3

回答

我正在学FPGA,正在看夏宇闻老师的verilog书。书中第四章讲运算符。我照着写了个程序,如下:module t4_1(out,a); input a; output out; reg[3:0] start,result; initial begin; start=1; result=(start<<2); endendmodule本来书上不是这样,没有参数。可是通不过编译,我就加了输入a和输出out。这样倒是通过编译了,可是我想仿真看看start,result的值,可是不成功,运行仿真,我加的两个数都不变。我是想像C语言那样学verilog,写一段程序,仿真一下,看看结果。请问高手,向类似的程序怎么仿真啊?谢谢!

蓝蓝的天 2018-03-28 阅读:1009

10

回答

1.JPG我安装了quartus ii 13.1 ,文件编译没问题。可是仿真的时候发现不往下走。停在上图所示那个地方。请问高手,如何解决?谢谢!

蓝蓝的天 2018-03-24 阅读:9013

1

回答

该结构的概念是什么?

crustycrab 2018-03-23 阅读:876

7

回答

与工程名不同的VHDL文件有什么作用?

crustycrab 2018-03-21 阅读:1070

2

回答

又有哪些区别?

crustycrab 2018-03-21 阅读:1722

4

回答

RT,EDA问题

crustycrab 2018-03-21 阅读:1242

4

回答

传统CPLD的主要缺点是什么?

crustycrab 2018-03-21 阅读:1848

8

回答

如题,电子元件的3d模型是自己创建的么,还是需要导入?

szy123 2018-03-07 阅读:966

10

回答

谁能提供一份altium designer的视频教程,需要有讲解四层PCB设计、ddr、cpu布线的。谢谢

chownn 2018-03-03 阅读:1137

3

回答

官方imx6ul原理图,有allegro导入ad后,出现一堆错误,有谁知道怎么解决么?

chownn 2018-03-02 阅读:951

7

回答

请教大神们,Altium Designer16版本在win10下总会出现对话弹框,内容是空的,弹框最上面写的是Error,然后就卡死了,也关不了,也保存不了,后面就直接闪退了,这个是怎么回事呀?

def3575ce3e45982 2018-01-22 阅读:1960
  • 帮助人数
  • 0
  • 获得赞数
  • 0
  • 一周积分
  • 0

问题达人换一批

本月问答

排名
用户名
问答积分
< >