1 / 35
文档名称:

汉明码的编解码在fpga上的实现.docx

格式:docx   大小:360KB   页数:35
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

汉明码的编解码在fpga上的实现.docx

上传人:suijiazhuang1 2022/8/4 文件大小:360 KB

下载得到文件列表

汉明码的编解码在fpga上的实现.docx

相关文档

文档介绍

文档介绍:南京大学金陵学院
本科毕业论文
院 系
专 业 电子信息科学与技术
题 目在FPGA上设计汉明码的编码器和解码器
年 级 学号
学生姓名 房伟
指导教师 姜乃卓 职称讲师
论文提交日期 2010年6月3日
本odelSim的最强专业版,功能最全且性能 最好。
modelsim仿真的基本步骤
Modelsim快速仿真四步骤分别是:创建工程、添加Verilog代码文件、编译、 仿真。
创建工程
选择file -> new ^project,出现如图1-1所示的对话框。输入project name 和希望的路径;输入library name,缺省是work。
图1-1
添加Verilog代码
这一步的目的是将verilog文件添加到创建好的工程中。要添加的文件可以 是先前已经创建好的,也可以现在输入。
编译工程
编译所有功能模块和测试模块,选择Compile中的Compile All,如下图所示
图1-2
仿真。首先是调用设计,选择Simulate>Simulate,出现图1-2的对话 框,选择该工程的testbench文件,单击右键,选择将所有信号(或你希望观察 的信号)添加到wave窗口中。
第二章Verilog的基础知识
verilog的主要功能
作为一种硬件描述语言,Verilog HDL可以直接描述硬件结构,也可以通过 描述系统行为实现建模。Verilog HDL的主要特点和功能有:
(1) 描述基本逻辑门,如and、or和nand等基本逻辑门都内置在语言中,可以 直接调用。
(2) 描述基本开关模型,如nmos、pmos和coms等基本开关都可以直接调用。
(3) 允许用户定义基元(UDP),这种方式灵活有效,用户定义的基元既可以 是组合逻辑也可以是时序逻辑。
(4) Verilog HDL中两种数据类型,线网数据类型和寄存器数据类型。线网类 型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
(5) 能够描述层次设计,可使用模块实例结构描述任何层次。
(6) 设计的规模可以是任意的,语言不对设计的规模(大小)施加任何限制。
(7) Verilog HDL语言的描述能力可以通过使用编程接口(PLI)进一步扩展。
PLI是允许外部函数访问Verilog HDL模块内信息,允许设计者与模拟器交互的例 程集合。
(8) 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级QTL) 到算法级,报括进程和队列级。
(9) 能够使用内置开关级原语在开关级对设计完整建模。
(10) 同一语言可用于生成模拟激励和指定测试的验证约束条件。
(11) Verilog HDL不仅能够在RTL上进行设计描述,而且能够在体系结构级和 算法级行为上进行设计描述。
(12) 能够使用门和模块实例化语句在结构级进行结构描述。
(13) Verilog HDL具有混合方式建模能力,即设计中每个模块均可以在不同设 计层次上建模。、
(14) Verilog HDL具有内置逻辑函数,例如& (按位与)和|(按位或)。
verilog基本语法
wire 型和 reg 型
(1) wire型
wire型数据常用来表示以assign关键字指定的组合逻辑信号。Verilog程序 模块中输入、输出信号类型默认时自定义为wire型。wire型信号可以用做方程式 的输入,也可以用做“ assign ”语句或实例元件的输出。
wire型信号的定义格式如下:wire[n-1:0]数据名1,数据名2,・・・.,数据 名N;
(2) reg 型
reg是寄存器数据类型的关键字。寄存器是数据储存单元的抽象。通过赋值 语句可以改变寄存器的值,其作用相当于改变触发器存储器的值。reg型数据常 用来表示always模块内的指定信号,常代表触发器。
reg型信号的定义格式如下:
reg[n-1:0]数据名1,数据名2,---,数据名N;
reg数据类型的缺省值是未知的。reg型数据可以为正值或负值,但当一个reg 型数据时一个表达式中的操作数,它的值被当做无符号值,即正值。
reg型和wire型的区别在于:reg型保持最后一次的赋值,而wire型则需要持 续地驱动。
initial 模块和 alway s模块
(1) initia l模块
在进行仿真时,一个initia l模块从模拟0时刻开始执行,且在仿真的过程中 指执行一次,在执行完一次后,该initia l就被挂起,不在执行。
Initial模块的格式为:
Initial
Begin/fork
块内变量说明
时序控制1行为语句1;
时序控制n行为语句n;
End/join