摘要: 前些日子,因实验室的项目需要(不知如何将软件的逻辑转化成硬件逻辑),特请来院里一FPGA专家进行辅导,去旁听记下笔记若干并整理成文档,以免日后忘却。又,虽现在不做FPGA,但介绍的开发经验、思想方法等很难得,暂时记下,以备后用。1.wire与reg之外的数据类型不要在verilog代码中出现。2.assign(组合逻辑)与always之外的语句不要在verilog代码中出现。3.一个module最好一个always,再加若干assign,这样便于控制。4.verilog中无函数调用及函数传递,都转化成input、output接口。5.不建议使用for循环,因为看不到其电路是什么样子。For可以 阅读全文
posted @ 2011-01-22 20:16 HelloSUN 阅读(1920) 评论(0) 推荐(3) 编辑
摘要: Description本文主要是收集一些重要的Verilog coding style。一个好的coding style可以减少错误的发生,增加电路的效能,以及较好的可读性。TextThe order of module signals一个module signal顺序如下 (由左至右):Inputclock signals(clk_*)set/reset signals(set_*, rst_*)enable/disble signals(en_*, dis_*)read/write enable signals(we_*, re_*, rw_*)control signals(i_*)ad 阅读全文
posted @ 2011-01-22 19:25 HelloSUN 阅读(3912) 评论(1) 推荐(0) 编辑
摘要: 1、语法声明:parameter xx = yy;`define XX YY使用:xx`XX2、作用域parameter作用于声明的那个文件;`define从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:`ifndef xx`define xx yy // or parameter xx = yy;`endif`define也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了 阅读全文
posted @ 2011-01-22 17:02 HelloSUN 阅读(13753) 评论(1) 推荐(2) 编辑