FPGA--------随笔总结(持续更新)

目录

1,写博客尽可能需要的步骤目录

2,对于ISE中锁相环复位信号的使用

3,信号的延时测试

4,安装检测不到驱动

5,ISE下启动SDK

6,开发板器件型号的选择


1,写博客尽可能需要的步骤目录

 

FPGA--------随笔总结(持续更新)_第1张图片

这张图截自(耿超。刘萌两位老师的《FPGA之道》)。

2,对于ISE中锁相环复位信号的使用

这里在时钟信号稳定前,有一段时间输出的信号不稳定,一般复位低电平有效,这里将locked信号引入,重新使用一个复位信号作为其他模块的复位信号,可以保证时序的稳定性。

FPGA--------随笔总结(持续更新)_第2张图片

测试代码:

module pll_test(clk,rst_n,clk_out1,clk_out2,clk_out3,clk_out4,rst_n_w
    );
input clk;
input rst_n;
output clk_out1;
output clk_out2;
output clk_out3;
output clk_out4;
wire locked_w;
output rst_n_w;
assign rst_n_w = rst_n  && locked_w;
pll_ip pll_test(
	.CLK_IN1(clk),
	.CLK_OUT1(clk_out1),
	.CLK_OUT2(clk_out2),
	.CLK_OUT3(clk_out3),
	.CLK_OUT4(clk_out4),
	.RESET(~rst_n),
	.LOCKED(locked_w)
	);

endmodule

3,信号的延时测试

一般在使用时序逻辑的时候,不可避免的需要对一些信号延时,这个时候我们一般可以使用打拍的方式,单bit信号跨时钟域的处理方式就是打两拍,这里要是使用多拍,就很麻烦,这里进行测试一种很方便的延拍方式。

测试代码:

这样写的好处是可以省去打很多拍的时候的操作不便。

module time_delay_test(
    input sys_clk,
    input sys_rst_n,
    output OUT,
    output OUT_delay1,
    output OUT_delay2
    );
reg [6:0] cnt_delay;
always @ (posedge sys_clk or negedge sys_rst_n)
begin
	if(!sys_rst_n)
		cnt_delay <= 'd0;
	else 
		if(cnt_delay == 'd100)
			cnt_delay <= 'd0;
		else 
			cnt_delay <= cnt_delay + 1'b1;
end

reg [3:0] delay1;
reg [5:0] delay2;
assign OUT = (cnt_delay == 'd100) ? 1'b1 : 1'b0;
assign OUT_delay1 = delay1[3];
assign OUT_delay2 = delay2[5];
always @ (posedge sys_clk or negedge sys_rst_n)
begin
	if(!sys_rst_n)
		begin
			delay1 <= 'd0;
			delay2 <= 'd0;
		end
	else 
		begin
			delay1 <= {delay1[2:0],OUT};
			delay2 <= {delay2[4:0],OUT};
		end
end 

endmodule

FPGA--------随笔总结(持续更新)_第3张图片

可以看到,这里对延时信号1延时了4个时钟周期,对延时信号2延时了6个时钟周期。

这里偶然看到一种写法。(截图自《基于FPGA的数字图像处理原理及应用__牟新刚》),这里将亚稳态处理与延拍进行一次处理。相比较能更好用一些,可以做作为参考。

FPGA--------随笔总结(持续更新)_第4张图片

4,安装检测不到驱动

问题:

GUI --- Auto connect to cable...
INFO:iMPACT - Digilent Plugin: Plugin Version: 2.4.4
INFO:iMPACT - Digilent Plugin: no JTAG device was found.
AutoDetecting cable. Please wait.
*** WARNING ***: When port is set to auto detect mode, cable speed is set to default 6 MHz regardless of explicit arguments supplied for setting the baud rates
PROGRESS_START - Starting Operation.
Connecting to cable (Usb Port - USB21).
Checking cable driver.
 Source driver files not found.
The Platform Cable USB is not detected. Please connect a cable.If a cable is connected, please disconnect
and reconnect to the usb port, follow the instructions in the 'Found New Hardware Wizard', then retry
the Cable Setup operation.
Cable connection failed.
Connecting to cable (Parallel Port - LPT1).
Checking cable driver.
 Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
Cable connection failed.
Connecting to cable (Parallel Port - LPT2).
Checking cable driver.
 Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
Cable connection failed.
Connecting to cable (Parallel Port - LPT3).
Checking cable driver.
 Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
Cable connection failed.
Connecting to cable (Parallel Port - LPT4).
Checking cable driver.
 Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
Cable connection failed.
PROGRESS_END - End Operation.
Elapsed time =      1 sec.
Cable autodetection failed.
WARNING:iMPACT:923 - Can not find cable, check cable setup !

安装目录在

ISE\14.7\ISE_DS\ISE\bin\nt64\digilent

install_digilent.exe

5,ISE下启动SDK

Xilinx\14.7\ISE_DS\EDK\bin\nt\xsdk.exe

这个是路径,可以自行选择是在32位还是64位下运行,建议以兼容式模式运行然后给管理员权限。应该不会有闪退的问题。

6,开发板器件型号的选择

Basys3
xc7a35tcpg236-1
A7核心板
xc7a35tcsg324-1

 

你可能感兴趣的:(学习杂记总结)