搜索
bottom↓
楼主: skyxjh

开源Verilog HDL原创UART模块

  [复制链接]

出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

出0入0汤圆

发表于 2018-7-10 10:30:43 | 显示全部楼层
同步采样,直接中点采样一个就可以。普通应用不用这么繁琐

出0入0汤圆

发表于 2018-8-2 15:05:51 | 显示全部楼层
deepway 发表于 2018-6-28 15:03
module lowpass(
        input clk,
        input lin,

转:verilog hdl中a=^b(b=1001),那么a等于什么??  b总共四位 ^b 是按位异或的意思,1,2位异或在与第三位异或在与第四位异或,相同为零不同唯一,最后结果应该是0

出0入0汤圆

发表于 2018-8-21 17:41:29 | 显示全部楼层
mark,test maek

出0入0汤圆

发表于 2018-8-23 16:15:22 | 显示全部楼层
注释很给力啊,谢谢

出0入0汤圆

发表于 2018-9-3 22:23:58 | 显示全部楼层
受教了,要仔细拜读

出0入0汤圆

发表于 2018-9-19 11:55:29 | 显示全部楼层
https://blog.csdn.net/qq_31811537/article/details/79301639

Verilog重载模块参数,被引用模块名 # (参数1,参数2,…)例化模块名(端口列表);

defparam在某些综合器中无效. 应尽量采用重载模块参数的方法.如: Mem  mem_inst # (32,1024) (clr,rstN,wrN,rdN,din, dout) ;

平时不怎么注意语法,# (32,1024) ,这个是什么东东,没看懂,google学习之;

//-----------------------以下部分为网上摘来的--------------//

有机会看下defparam的语法了:如下:

当一个模块引用另外一个模块时,高层模块可以改变低层模块用parameter定义的参数值,改变低层模块的参数值可采用以下两种方式:

  1)defparam 重定义参数

  语法:defparam path_name = value ;

  低层模块的参数可以通过层次路径名重新定义,如下例:

module top ( .....)
input....;
output....;
defparam U1 . Para1 = 10 ;
M1 U1 (..........);
endmodule
module M1(....);
parameter para1 = 5 ;
input...;
output...;
......
endmodule

  在上例中,模块M1参数 para1 的缺省值为5,而模块top实例了M1后将参数的值改为10。

  2) 实例化时传递参数

  在这种方法中,实例化时把参数传递进去,如下例所示:

module top ( .....)
input....;
output....;
M1 #( 10 ) U1 (..........);
endmodule

  在该例中,用#( 10 )修改了上例中的参数para1,当有多个参数时,用逗号隔开,如#( 10 , 5 ,3 )传递了3个参数值。

  模块参数的方法使得模块的重用性更强,当需要在同一个设计中多次实例化同样的模块,只是参数值不同时,就可以采用模块参数的方式,而不必只因为参数不同产生了多个文件。

出10入12汤圆

发表于 2018-11-4 19:31:40 | 显示全部楼层
如果抗干扰好的话 不错!!!!!!1

出0入0汤圆

发表于 2018-11-5 09:45:17 | 显示全部楼层
正在学习FPGA,感谢楼主分享

出0入0汤圆

发表于 2018-11-6 10:53:55 | 显示全部楼层
csq463276932 发表于 2018-8-2 15:05
转:verilog hdl中a=^b(b=1001),那么a等于什么??  b总共四位 ^b 是按位异或的意思,1,2位异或在与第三 ...

懂了,谢谢。

出10入12汤圆

发表于 2018-11-9 19:52:55 | 显示全部楼层
不错  verilog  串口模块   要是稳定就太好了

出0入0汤圆

发表于 2018-11-9 20:25:59 | 显示全部楼层
顶一下!

出0入0汤圆

发表于 2019-1-10 22:16:51 | 显示全部楼层
正好有个工程需要用到,感谢楼主

出0入0汤圆

发表于 2019-1-21 14:50:26 | 显示全部楼层
感谢分享,收下学习了!

出0入0汤圆

发表于 2019-3-6 21:29:01 | 显示全部楼层
谢谢,学习了

出0入0汤圆

发表于 2019-9-11 15:20:50 | 显示全部楼层
skyxjh 发表于 2013-6-15 19:22
直接实例化时修改两个参数就可以了,16是用16倍速采样,见接收模块。

请教楼主,我刚试了你的例子,115200,57600都没有问题,,但是9600和4800不行,几乎全是乱码,我设置的不对?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-9-15 00:06:25 | 显示全部楼层

mark and mark

出0入0汤圆

发表于 2019-9-24 15:15:22 | 显示全部楼层
xtaens 发表于 2019-9-11 15:20
请教楼主,我刚试了你的例子,115200,57600都没有问题,,但是9600和4800不行,几乎全是乱码,我设置的不 ...

问题已经找到,乱码多是我的max3232造成的,换了sp3232就好了。。
但是9600bps时不稳定,有丢失数据现象,115200和4800没有问题

下面接收中,有个地方我发现不对,对吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-23 17:43

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

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