FPGA
文章平均质量分 56
zhenzhen90
这个作者很懒,什么都没留下…
展开
-
spartan6—clocking wizard_时钟输出接普通I/O口遇到的问题及解决方案
设计任务:调用spartan6—clocking wizard的IP核,完成时钟从100M到10M的转换开发环境:XP系统下编译环境:ISE12.2/SP3,ISE(XST)综合工具通过综合仿真环境:ISE12.2/SP3,自带的仿真工具仿真顶层代码如下:module clocking_top(clk,rst,clk_out,locked);input clk,rst;原创 2013-04-23 16:51:17 · 8030 阅读 · 1 评论 -
verilog代码风格——PN序列产生代码
在编写Verilog代码时注意以下点:1 、同一个模块中不同变量的赋值放在不同的always块里(这样可以便于程序的调试),一个always块的代码 尽量不要超过十行。2、同一个变量的赋值不能放在多个always块中,只能放在同一always块2、复位信号一定要干净,尽量不要与其他的信号进行逻辑运算3、利用时钟信号(clk)和复位信号(rst)做触发,尽量避免用中间原创 2014-08-04 14:36:15 · 5663 阅读 · 0 评论 -
verilog testbench中 文本读写的操作
对文件操作时注意文件数据格式和是否带符号module nr_decoder_topv2_tb; // Inputs reg clk; reg i_rst_n; reg i_start; reg i_frame_flag; reg signed [7:0] i_nrdata; // Outputs wire signed [7:0] o_nr_decoer;原创 2014-07-01 17:00:56 · 4228 阅读 · 0 评论 -
求解xilinx ISE使用报错的处理——Port <clk> has illegal connections. This port is connected to an input buffer
用ISE综合时报如下错误:Port has illegal connections. This port is connected to an input buffer and other components clk是我用的系统时钟,作为输入,当然要接input buffer,然而我的工程有很多子模块,当然也要将clk连到各个component,报这个错究竟是啥意思呢?改怎么解决?希望原创 2013-04-14 20:52:54 · 10811 阅读 · 5 评论 -
modelsim错误处理
仿真前最起码应该先检查语法通过后再仿真嘛,或者综合通过后更保险啦……ModelSim错误:syntax error, unexpected "IDENTIFIER", expecting ".*" or '.'http://blog.csdn.net/jbb0523/article/details/6972057转载 2013-04-08 17:42:17 · 1895 阅读 · 0 评论 -
Verilog非阻塞赋值的仿真/综合问题
指导方针和结论(概要):#1:当为时序逻辑建模,使用“非阻塞赋值”。#2:当为锁存器(latch)建模,使用“非阻塞赋值”。#3:当用always块为组合逻辑建模,使用“阻塞赋值”#4:当在同一个always块里面既为组合逻辑又为时序逻辑建模,使用“非阻塞赋值”。#5:不要在同一个always块里面混合使用“阻塞赋值”和“非阻塞赋值”。原创 2013-04-08 19:34:17 · 1043 阅读 · 0 评论 -
verilog程序,ISE 10.1环境下,综合出错“ this signal is connected to multiple drivers.”
ISE调试手记,问题总结与解决(2):背景:Xilinx公司的FPGA ,ISE 10.1 开发环境, verilog HDL语言问题描述:检查语法没有错误,用modelsim仿真也可以,但综合时出错,错误如下:ERROR:Xst:528 - Multi-source in Unit on signal ; this signal is connected to multip转载 2013-04-09 11:27:24 · 6043 阅读 · 0 评论 -
verilog 24分频代码
程序如下:module div_24(clk,reset_n,dclk_h);input clk,reset_n;output dclk_h;reg dclk_h=0; 注意:modelsim是一个很傻瓜式的软件,模块的输入输出变量一定要赋初值,否则就会出错。例如这里的输出一定要赋初值,否则输出为高阻态reg [3:0] clk_cnt;always @ (posedg原创 2013-04-10 11:17:37 · 1549 阅读 · 0 评论 -
ISE错误:“Cannot mix blocking and non blocking assignments on signal ”
这里作为笔记记录一些问题其解决的方案:看英文的意思是不能对信号同时进行阻塞和非阻塞赋值。详细请见:http://blog.csdn.net/jbb0523/article/details/6958436转载 2013-04-08 17:37:37 · 1665 阅读 · 0 评论 -
新手报到
今天终于开通本网站的博客了,特来此地报到。借此宝地希望认识更多的技术朋友,希望能和大家一起交流学习。我是一个FPGA刚入门的菜鸟,有很的不懂的问题,以后还得望广大朋友指导。嘿嘿,我最近主要是用FPGA在做LDPC信道编解码,不知道有没有朋友做个这个?求交流原创 2013-04-07 19:46:33 · 473 阅读 · 0 评论 -
FIFO的学习
16*16位FIFO的功能框图 其中,clock为系统时钟信号输入,reset为系统复位信号,read为读数据信号允许信号,write为写入FIFO允许信号,fifo_in[15:0]为数据输入,fifo_out[15:0]为数据输出,fifo_empty为指示FIFO当前是空的,这种情况下,只能对FIFO进行写入数据操作;fifo_full指示当前FIFO是满的,这种情况下,当然只能对F转载 2013-04-10 15:49:58 · 782 阅读 · 0 评论 -
verilog中的timescale的解析
`timescale是Verilog HDL 中的一种时间尺度预编译指令,它用来定义模块的仿真时的时间单位和时间精度。格式如下:`timescale 仿真时间单位/时间精度注意:用于说明仿真时间单位和时间精度的数字只能是1、10、100,不能为其它的数字。而且,时间精度不能比时间单位还要大。最多两则一样大。比如:下面定义都是对的:`timescale 1ns/1ps转载 2013-04-10 17:09:22 · 5227 阅读 · 1 评论 -
四组6比特的并行数据转换成串行数据
今天随手写了一个四组6比特的并行数据转换成串行数据的模块,这里贴出来跟大家分享一下环境:ISE10.1 synplicity 9.6.2综合 modelsim6.5仿真程序如下:module parallel(clk,rst,r1,r2,r3,r4,dout,flag1,flag2,flag3,flag4);//6位并串转换程序input clk,rst;input[5:原创 2013-04-11 10:01:19 · 1687 阅读 · 0 评论 -
基于FPGA生成一个2^5-1 2Mbps的伪随机码
伪随机码的介绍:伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正是点到了事物的特性,即随机性,但是每种树的叶子都有近似的形状,这正是事物的共性,即规律性。从这个角度讲,你大概就会接受这样的事实了:计算机只能产生伪随机数而不能产生绝对随机的随机数。关于伪随机码的详细介绍课件附件的资料《伪随机序列的FPGA设计与应用》详细文档见:ht原创 2013-05-13 15:06:13 · 2974 阅读 · 0 评论 -
ISE综合出错的问题解决
在顶层模块实例化了子模块后出现如下类型的警告,单独在子模块中没有这样的警告:Input is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this原创 2013-04-14 21:20:49 · 4599 阅读 · 2 评论 -
Nexys3学习手记:ClockingWizard探秘
最近在用FPGA做π旋转的LDPC编码,由于要用到几个不同的时钟,一开始想到的就是直接调用DCM的ip核,后来发现Nexys3这款板子没有可调用的DCM,只有ClockingWizard,这个跟DCM差不多。这里说说ClockingWizard的用法:这一节,我们首先会来了解下Nexys3上的主角儿XC6SLX16(Spartan-6家族)的时钟资源,当然不会照搬ug382.pdf(建议大家去转载 2013-04-18 21:50:36 · 3272 阅读 · 0 评论 -
Verilog 找出任意六个数中的最大、次最大和第三最大值以及三个数对应的序号
思路:1、把六个数看成是两组的3个数 2、对每组的三个数进行从大到小的排序 3、找出有序的两组数中最大、次最大和第三最大值 //模块1:对三个数按照从大到小排序//例:若 i_t_1st_max=20 i_t_2nd_max=5 i_t_3th_max=30原创 2014-07-01 18:06:13 · 18830 阅读 · 0 评论