摘要:1.Found clock-sensitive change during active clock edge at time on register ""原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。而时钟敏感信号是不能在时钟边沿变化的。其后果为导致结果不正确。措施:编辑vector source file2.Verilog HDL assignment warning at : truncated value with size to match size of target (原因:在HDL设计中对
阅读全文
摘要:一、摘要 结合dsp_builder、matlab、modelsim和quartus ii等软件完成算法的FPGA实现。二、实验平台硬件平台:DIY_DE2软件平台:quartus ii9.0 + ModelSim-Altera 6.4a (Quartus II 9.0) + dsp_builder9.0 + matlab2010b三、软件平台的准备1、软件的匹配 根据altera的官方文档,可以看到quartus ii、modelsim、dsp_builder和matlab的版本匹配信息。如图1所示。http://www.altera.com/support/ip/dsp/ips-dsp..
阅读全文
摘要:一、摘要 为了能够跟Matlab 2010b配合使用dsp_builder,下载并安装了Quartus II 11.0套件。二、Quartus II各版本的异同Quartus II 11.0 与之前的软件有些不同,有以下几个不同的地方:(1)Quartus II 9.1之前的软件自带仿真组件;而之后软件不再包含此组件,因此仿真必须安装Modelsim。(2)Quartus II 9.1之前的软件自带硬件库,不需要额外下载安装;而10.0开始需要下载硬件库,可以根据需要选择安装。(3)Quartus II 11.0之前的软件Nios II 组件,若需要上系统,需要额外下载NIOS II组件;而.
阅读全文
摘要:一、首先谈谈Dual-Port RAM和FIFO 1、相关的概念:PGA设计中,常用到的数据缓存IP有FIFO和RAM,其中RAM又分单口RAM、伪双口RAM、双口RAM。 单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行。而双口有两组数据线与地址线,读写可同时进行。FIFO读写可同时进行,可以看作是双口。双口RAM分伪双口RAM(Xilinx称为Simple two-dual RAM)与双口RAM(Xilinx称为true two-dual RAM)。伪双口RAM,一个端口只读,另一个端口只写;而双口RAM两个端口都可以读写。FIFO也是一个端口只读,另一个端口只写。F
阅读全文
摘要:www.asmyword.com一、关于Timequest的相关资料:1、“使用Quartus II 顾问和设计空间勘查器实现时序逼近”(官网)2、“使用Quartus II 物理综合优化功能实现时序逼近”,(官网)3、“时序逼近最佳HDL设计实践”,(官网)4、“TimeQuest时序分析器”。(官网)5、时序分析1静态分析基础 6、时序分析2TimeQuest教程 7、时序分析3优化策略(http://www.cnblogs.com/yuphone/archive/2011/09/20/2182112.html)8、《爱上FPGA开发——特权和你一起学NiosII》的第五章实战演练之时序收
阅读全文
摘要:一、异步信号同步器设计1、复位的设计:采用异步复位,同步释放电路http://www.cnblogs.com/qiweiwang/archive/2010/11/25/1887888.html2、异步信号同步器:http://www.srvee.com/analog/apply/ybxhtbqsj_60096_2.html ①电平同步器level 1 module synzer_ls( 2 data_out, 3 clk1, 4 clk2, 5 data_i...
阅读全文
摘要:观点:凡是都有一个顺序,虽然FPGA是并行的,但是人们在处理问题时都是从某一个点入手,按照一定的顺序思考问题,解决问题。一、一个FPGA设计人员应该知道并会使用的①1.仿真:Modelsim,QuartusII(SimulatorTool) 2.综合:QuartusII(CompilerTool,RTLViewer,TechnologyMapViewer,ChipPlanner) 3.时序:QuartusII(TimeQuestTimingAnalyzer,TechnologyMapViewer,ChipPlanner) 4.调试:QuartusII(SignalTapIILogicAnaly
阅读全文
摘要:参看资料:Altera官网提供的CycloneII Device Handbook和USB-Blaster Download Cable User Guide。一、USB Female Plug Signal Name and Progrming Mode二、JTAG Configuration of Single Device Using aDownload Cable(1) The pull-up resistor should be connected to the same supply voltage as the USB-Blaster, MasterBlaster (VIO pi
阅读全文
摘要:(1)之前的笔记写过《补码探讨》,可知在FPGA综合成电路的时候最底层都是以补码的形式在运算,正数的补码就是本身,负数的补码要取反+1。(2)那么Verilog中编程的时候对编程人员来说,其实想不到现在的编译器(Quartus II 9.1和ISE10.1没有问题,更高的版本应该更加可以了)都支持verilog有符号运算的综合了。在定义时直接加上signed即可,如下: input signed [7:0] a, b; output signed [15:0] c; wire signed [15:0] x; reg signed [15:0]y; 很明显,这种采用signe...
阅读全文
摘要:Abstract撰寫Verilog時,雖然每個module都會先用ModelSim或Quartus II自帶的simulator仿真過,但真的將每個module合併時,一些不可預期的『run-time』問題可能才一一浮現,這時得靠SignalTap II來幫忙debug。Introduction使用環境:Quartus II 8.0 + DE2-70 (Cyclone II EP2C70F896C6N)實際使用SignalTap II時,會發現有些reg與wire可以觀察,有些又無法觀察,在(原創) 如何使用SignalTap II觀察reg值? (IC Design) (Quartus II
阅读全文
摘要:使用SignalTap II逻辑分析仪调试FPGA 摘 要 :本文介绍了可编程逻辑器件开发工具Quartus II 中SingalTap II 嵌入式逻辑分析器的使用,并给出一个具体的设计实例,详细介绍使用SignalTap II对FPGA调试的具体方法和步骤。 关键字 : SignalTap;硬件调试;FPGA 1 概述 --- 随着FPGA容量的增大,FPGA的设计日益复杂,设计调试成为一个很繁重的任务。为了使得设计尽快投入市场,设计人员需要一种简易有效的测试工具,以尽可能的缩短测试时间。传统的逻辑分析仪在测试复杂的FPGA设计时,将会面临以下几点问题:1)缺少空余I/O引脚。设计中器件的
阅读全文
摘要:1、网上有人说Muxplus不可以综合Task语句,Quartus II可以综合Task语句,在翻看了夏宇闻的《Verilog数字系统设计教程》关于书中提到的可综合的Task写法似乎都是一个类型的,在Task里面并没有定义任何的输入输出类型以及变量。2、参考书中Task的写法,写了一个模拟陀螺仪的波形产生程序:GyroscopeWaveSimulation 1 module WaveGenerate(clk,reset,gp_x_pos,gp_x_neg); 2 input clk; 3 input reset; 4 output reg gp_x_pos; 5 output reg...
阅读全文
摘要:数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚.(摘自<<数学发展史>>有空大家可以看看哦~,很有意思的).为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制(23).下面进入正题.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表
阅读全文
摘要:1、利用状态机的思想,将复杂的问题状态分清楚,(非诚勿扰有一个女博士曾谈到她IQ高,她喜欢对事物进行分类,分类的思想很重要)2、参考资料利用 (1)芯片用的是美国TI公司的TMS320C6713B,在看了官网提供的PDF后,有几个问题没看懂,没太注意 a、‡ P = 1/CPU clock frequency in ns. For example, when running parts at 225 MHz, use P = 4.4 ns. 后来才发现这个问题是导致几天来没有发现的关键致命问题。下面一段话来之互联网: “C6713 HPI在读写过程中,选通信号有效周...
阅读全文
摘要:一、用Quartus内部的双口ram的时序时非阻塞的问题:cnt 1 /* 更新地址和数据 */ 2 reg [7:0]cnt; 3 always @(negedge wrclk_div or negedge reset)//时序电路 4 begin 5 if(!reset) 6 begin 7 wraddress_reg<=0; 8 wrdata<=0; 9 end 10 else if (~frame_end)//帧未传完 11 begin 12 if(~wrc...
阅读全文
摘要:Altera官网提供的时序图:Altera官网提供的模块:仿真程序:lpm_ram_dp_testbench 1 `timescale 1ns/1ns 2 `define clk_cycle 5 3 module testbench; 4 reg [15:0]data; 5 reg [6:0]wraddress; 6 reg wren; 7 reg [6:0]rdaddress; 8 reg rden; 9 reg wrclock;10 reg rdclock;11 12 reg clk_sys;13 wire [15:0]q;14 always #`clk_cycle clk_sys=~c.
阅读全文
摘要:1、电平敏感量触发/边沿触发敏感量问题(阻塞赋值与非阻塞赋值的问题):详细程序参看Verilog数字系统设计教程 夏宇闻 【第二版】第14章 深入理解阻塞和非阻塞赋值的不同 (1)、原则1:时序电路建模时,用非阻塞赋值 原则2:锁存器电路建模时,用非阻塞赋值 (2)、原则3:用always快描述组合逻辑时,应采用阻塞赋值语句 (3)、原则4:在同一个always快中描述时序和组合逻辑混合电路时,用非阻塞赋值 (4)、原则5:不要再同一个always快中同时使用阻塞和非阻塞赋值 (5)、原则6:严禁在多个always块中对同一个变量赋值 (6)、原则7:用$系统任务来显示,...
阅读全文
摘要:在写SPI程序的时候,用Modelsim进行仿真的时序图是正确的,但是下载到板子时确不正确。总结一下几点:1:在仿真程序中可以用initial进行初始化,但是在下载到板子的程序中不能用initial进行初始化,采用reset进行初始化2:在快速的时序当中,程序写法不规范,就会导致延时的问题,从而导致产生预期想不到的波形。为避免意想不到的延时:(1)提高工作频率的本质就是减少寄存器到寄存器的延时,最有效的方法就是避免出现大的组合逻辑,也就是尽量满足四输入的条件,减少LUT级联的数量我们可以通过加约束,流水线,切割状态的方法提高工作频率。(2)一个模块尽量至用一个时钟,尽量不要使用计数器分频后的信
阅读全文
摘要:/************************************************************************************************ SPI MASTER* January 2007************************************************************************************************/`timescale 10ns/1nsmodule SPI_Master ( miso, mosi, sclk, ss, data_bus, CS, addr,
阅读全文
摘要:/*`timescale 1ns/100ps`define clk_cycle 50module testbench1; reg clk,reset,nbusy; reg [7:0]data; wire ce,sck,si; always #`clk_cycle clk=~clk; initial begin reset=1; #100 reset=0; #100 reset=1; #100000 $stop; endendmodule */`timescale 1ns/100ps`define clk_cycle 50module testbench2; reg clk,reset; wi.
阅读全文