搜索
bottom↓
楼主: skyxjh

开源Verilog HDL原创UART模块

  [复制链接]

出0入0汤圆

发表于 2014-1-19 17:44:24 | 显示全部楼层
mark一下。。

出0入0汤圆

发表于 2014-1-19 22:01:36 | 显示全部楼层
LZ FPGA设计最好在同步的,你这个发送和接收模块用的行波时钟,这样时序不好控制。最好用时钟使能信号来达到分频效果,这样也能保证整个设计都是同步的。

出0入0汤圆

 楼主| 发表于 2014-1-19 22:06:45 | 显示全部楼层
yanzhe128 发表于 2014-1-19 22:01
LZ FPGA设计最好在同步的,你这个发送和接收模块用的行波时钟,这样时序不好控制。最好用时钟使能信号来达 ...

怎么用时钟使能信号来达到分频效果?

出0入0汤圆

发表于 2014-1-19 22:40:40 | 显示全部楼层
skyxjh 发表于 2014-1-19 22:06
怎么用时钟使能信号来达到分频效果?

      (
        input  sysclk,
        input baud_clk16x_en
        )
        always@(posedge sysclk)
        begin
                if(baud_clk16x_en == 1'b1)
                begin
                        <= ....
                end
        end

出0入0汤圆

发表于 2014-1-19 22:43:43 | 显示全部楼层
对sysclk 用使能脉冲在次离散

出0入0汤圆

 楼主| 发表于 2014-1-19 22:48:14 | 显示全部楼层
yanzhe128 发表于 2014-1-19 22:40

        input  sysclk,
        input baud_clk16x_en

怎么实现分频?你这个baud_clk16x_en信号从哪里来?

出0入0汤圆

发表于 2014-1-19 23:04:33 | 显示全部楼层
skyxjh 发表于 2014-1-19 22:48
怎么实现分频?你这个baud_clk16x_en信号从哪里来?

我只是举个例子啊,你自己想下嘛。就是一个脉冲,你的这个baudset模块 小改一下就可以了

出0入0汤圆

 楼主| 发表于 2014-1-19 23:24:42 | 显示全部楼层
yanzhe128 发表于 2014-1-19 23:04
我只是举个例子啊,你自己想下嘛。就是一个脉冲,你的这个baudset模块 小改一下就可以了 ...

你改一下放上来吧,大家学习一下

出0入0汤圆

发表于 2014-1-19 23:29:25 | 显示全部楼层
mark,学习

出0入0汤圆

发表于 2014-1-20 08:37:45 | 显示全部楼层
mark一下,很好,谢谢分享

出0入0汤圆

发表于 2014-3-8 22:37:20 | 显示全部楼层
精彩!!学习!!

出0入0汤圆

发表于 2014-3-8 23:12:34 | 显示全部楼层
好厉害的样子

出0入0汤圆

发表于 2014-3-10 14:25:06 | 显示全部楼层
楼主真无私,正需要这个

出0入0汤圆

发表于 2014-5-12 17:46:38 | 显示全部楼层
    l楼主真好 谢谢了

出0入0汤圆

发表于 2014-5-12 18:52:21 | 显示全部楼层
学习了,楼主好牛!

出0入0汤圆

发表于 2014-6-1 08:52:28 | 显示全部楼层
路过支持一下

出0入0汤圆

发表于 2014-6-1 09:11:33 | 显示全部楼层
标记,开源Verilog HDL原创UART模块

出0入0汤圆

发表于 2014-6-2 10:17:07 | 显示全部楼层
有益!受教

出0入0汤圆

发表于 2014-6-6 16:54:55 | 显示全部楼层
请问fifo模块中, {addrbits{1'b0}}  是什么意思呢?

出0入0汤圆

 楼主| 发表于 2014-6-7 01:02:26 | 显示全部楼层
zhdiamond 发表于 2014-6-6 16:54
请问fifo模块中, {addrbits{1'b0}}  是什么意思呢?

{addrbits{1'b0}}  的意思是addrbits位0

出0入0汤圆

发表于 2014-6-7 08:13:34 | 显示全部楼层
高手,支持楼主了,

出0入0汤圆

发表于 2014-6-7 08:44:43 | 显示全部楼层
牛逼,有用到的时候在来拜读

出0入8汤圆

发表于 2014-6-7 09:11:49 | 显示全部楼层
楼主好人,不说些什么都不好意思了~

出0入0汤圆

发表于 2014-8-10 20:36:29 | 显示全部楼层
接收模块中
                                4'hA: begin //数据处理
                                        dbuf[cnt_bit] <= (sample[7] & sample[8]) | (sample[7] & sample[9]) | (sample[8] & sample[9]); //择多滤波(低通滤波)
                                        if(dbuf[0] == hi) rxbusy <= false; //起始位错误,重新检测起始位
这里的获得的dbuf[cnt_bit]不应该直接作为以下起始位、停止位的判断依据,其值在下一个rxclk周期才生效。

出0入8汤圆

发表于 2014-8-11 08:47:02 | 显示全部楼层
这个还真没看懂~

出0入0汤圆

 楼主| 发表于 2014-8-12 12:56:10 | 显示全部楼层
yuchands 发表于 2014-8-10 20:36
接收模块中
                                4'hA: begin //数据处理
                                   ...

你分析得对,但不影响通信,只是判断起始位错误会延迟一位时。

出0入0汤圆

发表于 2014-8-12 13:02:27 | 显示全部楼层
下载了,谢了

出0入0汤圆

发表于 2014-8-13 15:31:51 | 显示全部楼层
mark,赞

出0入0汤圆

发表于 2014-8-27 16:04:30 | 显示全部楼层
请问这个是使用资源最少的一种类型吗?一般设计都要求资源少,功耗低,易于移植,综合性能好才行.

出0入0汤圆

发表于 2014-9-8 21:55:19 | 显示全部楼层
学习了,谢啦

出0入0汤圆

发表于 2014-9-9 10:58:07 | 显示全部楼层
verlog uart实现,学习。

出0入0汤圆

发表于 2014-9-9 11:33:18 | 显示全部楼层
标记,开源Verilog HDL原创UART模块

出0入0汤圆

发表于 2014-9-9 13:09:41 | 显示全部楼层
记号,收藏

出0入0汤圆

发表于 2014-9-10 14:31:54 | 显示全部楼层
下载学习。

出0入0汤圆

发表于 2014-9-12 13:20:20 | 显示全部楼层
顶,支持,谢了!

出0入0汤圆

发表于 2014-9-12 13:21:06 | 显示全部楼层
长期潜水员,躺枪了,努力发帖升级

出0入0汤圆

发表于 2014-9-12 13:21:24 | 显示全部楼层
长期潜水员,躺枪了,努力发帖升级

出0入0汤圆

发表于 2014-9-12 13:47:18 | 显示全部楼层
写的不错  相当给力

出0入0汤圆

发表于 2014-9-19 15:10:20 | 显示全部楼层
mark..................

出0入0汤圆

发表于 2014-9-19 17:14:20 | 显示全部楼层
赞                  

出0入0汤圆

发表于 2014-9-20 01:34:08 | 显示全部楼层
最近在学习Verilog,这个实例真是好资料,谢谢楼主!

出0入0汤圆

发表于 2014-9-23 17:27:55 | 显示全部楼层
如何实例化 主动开机发送  现在好像都是接收再发送

出0入8汤圆

发表于 2014-9-23 17:41:35 | 显示全部楼层
路过帮顶,顺便看代码~

出0入0汤圆

发表于 2014-10-7 23:25:30 | 显示全部楼层
学习一下!

出0入0汤圆

发表于 2014-10-13 10:55:09 | 显示全部楼层
楼主辛苦了

出0入0汤圆

发表于 2014-10-13 14:30:19 | 显示全部楼层
楼主确实水平很高呀,大牛学习了

出0入0汤圆

发表于 2014-10-17 10:06:30 | 显示全部楼层
学习了,我也正在搞串口。

出0入0汤圆

发表于 2014-10-18 22:41:44 | 显示全部楼层
谢谢分享,大有收获啊。有VHDL的UART代码吗?

出0入0汤圆

发表于 2014-10-18 23:43:55 | 显示全部楼层
感谢分享   

出0入0汤圆

发表于 2014-10-19 07:11:41 | 显示全部楼层
skyxjh 发表于 2013-6-6 00:50
所有模块都没有使用状态机,最大限度节省FPGA资源。

请问群主用状态机不好吗?

出0入0汤圆

发表于 2014-10-19 09:07:02 | 显示全部楼层
先收藏,顶一下,最近在做一个16位并口的MCU与FPGA转输接口,还在努力搜索范例中

出0入0汤圆

发表于 2014-10-19 12:18:08 | 显示全部楼层
谢谢,学习了

出0入0汤圆

 楼主| 发表于 2014-10-20 21:49:40 | 显示全部楼层
kerenyang 发表于 2014-10-19 07:11
请问群主用状态机不好吗?

你用状态机写一个,比较一下,看哪个占用资源多!

出0入0汤圆

发表于 2014-11-5 20:47:16 | 显示全部楼层
正在学习。mark!

出0入0汤圆

发表于 2014-11-5 21:02:03 | 显示全部楼层
东西不错,直接可以拿来用

出0入0汤圆

发表于 2014-11-5 21:19:14 | 显示全部楼层
ddddddddddddddddddd

出0入0汤圆

发表于 2014-11-5 21:39:49 | 显示全部楼层
这个要顶的 好贴 收藏

出0入0汤圆

发表于 2014-11-12 07:36:43 来自手机 | 显示全部楼层
正好有个应用,学习一下

出0入0汤圆

发表于 2014-11-12 08:21:34 | 显示全部楼层
这个真是极好的啊;得保留下来;

出0入0汤圆

发表于 2014-11-12 08:22:01 | 显示全部楼层
MARK,可以用的Verilog的UART代码;

出0入0汤圆

发表于 2014-11-12 08:44:32 | 显示全部楼层
mark!!!!!!!

出0入0汤圆

发表于 2014-11-12 08:54:57 | 显示全部楼层
比较喜欢这种讨论帖子  有实践有细节涨知识  赞  mark一下

出0入0汤圆

发表于 2014-11-12 10:29:34 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-11-12 11:32:41 | 显示全部楼层
虽然用不到,还是要顶,uart不好做的,呵呵,现在的m3的uart做的非常非常稳定的也不多吧?听说!

出0入0汤圆

发表于 2014-11-12 14:09:54 | 显示全部楼层
本帖最后由 LiuCA 于 2014-11-12 14:13 编辑

谢谢分享

出0入0汤圆

发表于 2014-11-12 16:31:05 | 显示全部楼层
Mark,很好的资料。

出0入0汤圆

发表于 2015-3-7 00:29:45 | 显示全部楼层
mark, verilog uart开源

出0入0汤圆

发表于 2015-3-16 16:14:05 | 显示全部楼层
下载学习。

出0入37汤圆

发表于 2015-3-24 21:48:55 | 显示全部楼层
mark              

出0入0汤圆

发表于 2015-3-25 16:16:55 | 显示全部楼层
下载学习

出0入0汤圆

发表于 2015-3-25 16:27:30 | 显示全部楼层
用fpga4fun.com的串口例子使用资源是91

出0入0汤圆

发表于 2015-3-25 19:21:32 | 显示全部楼层
之前在学校里学过,资料不错。

出0入0汤圆

发表于 2015-6-24 04:06:37 | 显示全部楼层
好的,下拉试试,学习一下。

出0入0汤圆

发表于 2015-6-25 17:25:23 | 显示全部楼层
值得研究研究

出0入0汤圆

发表于 2015-6-25 18:03:20 | 显示全部楼层

出0入0汤圆

发表于 2015-6-25 19:44:17 | 显示全部楼层
好东西,收藏之

出0入0汤圆

发表于 2015-6-26 09:04:22 | 显示全部楼层
MARK,学习

出0入0汤圆

发表于 2015-6-26 14:22:03 | 显示全部楼层
目前学习FPGA中,只不过先学的是VHDL 还是觉得Verilog 更好用一点

出0入0汤圆

发表于 2015-6-26 15:56:35 | 显示全部楼层
多谢分享

出0入0汤圆

 楼主| 发表于 2015-6-26 21:48:32 | 显示全部楼层
我觉得Verilog 更好用一点,跟C很象

出0入0汤圆

发表于 2015-7-12 18:07:12 | 显示全部楼层
Mark一下 最近刚好在学习这个UART,借助楼主例程学习一下

出0入0汤圆

发表于 2015-7-13 07:59:18 | 显示全部楼层
谢谢楼主,好东西

出0入0汤圆

发表于 2015-9-9 07:27:31 | 显示全部楼层
高手如云呀!!

出0入0汤圆

 楼主| 发表于 2015-9-9 19:33:48 | 显示全部楼层
希望能起到抛砖引玉的作用,大家一起学习

出0入0汤圆

发表于 2015-10-9 19:10:50 | 显示全部楼层
好东西,谢谢分享

出0入0汤圆

发表于 2015-12-8 23:24:47 | 显示全部楼层
高手呀,学习学习呀

出0入0汤圆

发表于 2015-12-8 23:37:46 | 显示全部楼层
这个一定要看看

出0入0汤圆

发表于 2015-12-9 12:29:38 | 显示全部楼层
支持撸主分享更多的资料

出0入0汤圆

发表于 2015-12-9 13:28:21 | 显示全部楼层
不错

出0入0汤圆

发表于 2016-9-9 16:59:35 | 显示全部楼层
受益匪浅。谢谢、

出0入0汤圆

发表于 2016-10-31 13:14:41 | 显示全部楼层
注释详细,顶!

出0入0汤圆

发表于 2016-11-1 14:53:04 | 显示全部楼层
感谢分享,太精彩了.

出0入0汤圆

发表于 2018-6-6 09:34:37 | 显示全部楼层
牛皮。。。。。

出0入0汤圆

发表于 2018-6-6 13:48:11 | 显示全部楼层
本帖最后由 吉安的心该有 于 2018-6-6 13:49 编辑

assign lout = lout1 ? 1'b1 : lout0 ? lout : 1'b0; //择多滤波(低通输出)
这一句在ISE中编译有警告,不知楼主会有这个警告吗?
有无啥解决方法,指点下。 将这一句改成 "assign lout = lout1 ? 1'b1 : lout0 ? 1'bx : 1'b0; " 警告可以消除
WARNING:Xst:737 - Found 1-bit latch for signal <O_lout>. Latches may be generated from incomplete case or if statements. We do not recommend the use of latches in FPGA/CPLD designs, as they may lead to timing problems.
WARNING:Xst:3002 - This design contains one or more registers/latches that are directly
   incompatible with the Spartan6 architecture. The two primary causes of this is
   either a register or latch described with both an asynchronous set and
   asynchronous reset, or a register or latch described with an asynchronous
   set or reset which however has an initialization value of the opposite
   polarity (i.e. asynchronous reset with an initialization value of 1).

出0入0汤圆

 楼主| 发表于 2018-6-9 22:45:54 | 显示全部楼层
你这样一改意义就变了吧?

出0入0汤圆

发表于 2018-6-10 07:50:30 | 显示全部楼层
最近串口不够用,看看这个能不能扩展几个串口用用,

出0入0汤圆

发表于 2018-6-10 10:50:56 | 显示全部楼层
mark 开源Verilog HDL原创UART模块

出0入0汤圆

发表于 2018-6-21 17:14:22 | 显示全部楼层
mARK 下  好  撸主好样的!!

出0入0汤圆

发表于 2018-6-28 15:03:21 | 显示全部楼层
module lowpass(
        input clk,
        input lin,
        output lout
        );
        reg [3:0] lpbuf;
        always @ (posedge clk) begin lpbuf <= {lpbuf[2:0],lin}; end
        wire lin1 = & lpbuf;
        wire lin0 = | lpbuf;
        assign lout = (lin1 == 1'b1) ? 1'b1 : (lin0 == 1'b0) ? 1'b0 : lout;
endmodule


楼主的低通模块中如下两段有点不太明白:
wire lin1 = & lpbuf;
wire lin0 = | lpbuf;

lin1 和 lin0 默认都是 1位宽度的,
如果和 lpbuf 分别进行 “与” “或” 操作的话,
实际是与 lpbuf[0] 进行 “与” “或” 操作,
还是与 lpbuf整体 进行 “与” “或” 操作。

出0入0汤圆

 楼主| 发表于 2018-7-7 08:05:52 | 显示全部楼层
lpbuf为全1时lin1为1, lpbuf为全0时lin0为0
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-27 06:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表