完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
[td] 前段时间玩Python的时候好奇, 既然Python这么强大, 那么能不能用Python来写verilog呢?然后就上Bing搜了一下, 发现了MyHDL这个Python的扩展包, 似乎真的可以用Python来写Verilog, 已经有牛人把这个轮子造出来了。
略作了解后发现, MyHDL不是高层次综合, 它实际上是用Python的一些功能实现了一个Verilog仿真器, 能对用Python写的仿Verilog语言进行仿真, 并把Python代码翻译成Verilog. 省事的地方在于Python的简洁,以及可以很方便的看波形,还有可以和其它Python代码结合来进行仿真输入和查看仿真结果。 比如写图像处理的模块就很容易把图像输入进行仿真然后查看结果。 在Python Myhdl环境下仿真测试好的代码,翻译成Verilog后就可以直接拿去编译使用了,可以不需要再到ISE或Vivado中去仿真。也就是说MyHDL的仿真和翻译结果都是没有问题的。通过做这个项目俺已经能确认这一点。 MyHDL的作者Jan Decaluwe是个设计芯片的工程师,用MyHDL设计过芯片, 所以在正确性上是没有问题的。 使用Python MyHDL有以下几点需要注意,: 实际上只有@always_seq, @always_comb这两个语句块可用, 虽然MyHDL也支持assign, 但在翻译成Verilog时似乎会出问题, 所以就不要写assign了,全部用@always_comb. 在用@always_comb时, 如果你在一个@always_comb块中既赋值了一个信号,又引用了这个信号,MyHDL会报错。 这个问题不大, 可以再写一个@always_comb块,把赋值和引用语句分到不同@always_comb块里就行了。 对a = {b,c,d}这样的信号拼接支持的不好,虽然有个连接信号函数支持这个,但只支持仿真,翻译Verilog会出错。所以这样的信号拼接似乎也只能拆开来一个一个的写在@always_comb块里。 这也是用MyHDL要比Verilog麻烦的地方。 但总的来说Python MyHDL还是要比写Verilog省事一些的, 俺打算以后就用这个了,不再写Verilog了。 俺尝试用MyHDL写了一个FPGA以太网MAC, 可以通过UDP协议向PC机传原始视频, |
|
|
|
只有小组成员才能发言,加入小组>>
2932 浏览 3 评论
27736 浏览 2 评论
3500 浏览 2 评论
4001 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2355 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 04:53 , Processed in 0.376538 second(s), Total 44, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号