Verilog HDL停止函数设计,Vivado仿真工程
2021-03-18 09:16:27 95KB FPGA VerilogHDL 停止函数 Vivado
Verilog HDL打印函数设计,Vivado仿真工程
2021-03-18 09:16:26 95KB FPGA VerilogHDL 打印函数 vivado
Verilog HDL设计数码管动态扫面显示的FPGA设计Quartus工程文件,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module top_seg_led( //global clock input sys_clk , // 全局时钟信号 input sys_rst_n, // 复位信号(低有效) //seg_led interface output [5:0] seg_sel , // 数码管位选信号 output [7:0] seg_led // 数码管段选信号 ); //wire define wire [19:0] data; // 数码管显示的数值 wire [ 5:0] point; // 数码管小数点的位置 wire en; // 数码管显示使能信号 wire sign; // 数码管显示数据的符号位 //***************************************************** //** main code //***************************************************** //计数器模块,产生数码管需要显示的数据 count u_count( .clk (sys_clk ), // 时钟信号 .rst_n (sys_rst_n), // 复位信号 .data (data ), // 6位数码管要显示的数值 .point (point ), // 小数点具体显示的位置,高电平有效 .en (en ), // 数码管使能信号 .sign (sign ) // 符号位 ); //数码管动态显示模块 seg_led u_seg_led( .clk (sys_clk ), // 时钟信号 .rst_n (sys_rst_n), // 复位信号 .data (data ), // 显示的数值 .point (point ), // 小数点具体显示的位置,高电平有效 .en (en ), // 数码管使能信号 .sign (sign ), // 符号位,高电平显示负号(-) .seg_sel (seg_sel ), // 位选 .seg_led (seg_led ) // 段选 ); endmodule
Verilog-HDL数字设计与综合-夏宇闻译(第二版)课后题答案
2021-03-16 09:36:38 16KB Verilo
1
Verilog HDL设计信号频率测量模块FPGA设计Quartus工程文件 ,等精度频率计模块,测量被测信号频率,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module top_cymometer( //system clock input sys_clk , // 时钟信号 input sys_rst_n, // 复位信号 //cymometer interface input clk_fx , // 被测时钟 output clk_out , // 输出时钟 //user interface output [5:0] sel , // 数码管位选 output [7:0] seg_led // 数码管段选 ); //parameter define parameter CLK_FS = 26'd50000000; // 基准时钟频率值 //wire define wire [19:0] data_fx; // 被测信号测量值 //***************************************************** //** main code //***************************************************** //例化PLL,生成待测试时钟500Khz test_pll test_pll_inst ( .inclk0 (sys_clk ), .c0 (clk_out ) ); //例化等精度频率计模块 cymometer #(.CLK_FS(CLK_FS) // 基准时钟频率值 ) u_cymometer( //system clock .clk_fs (sys_clk ), // 基准时钟信号 .rst_n (sys_rst_n), // 复位信号 //cymometer interface .clk_fx (clk_fx ), // 被测时钟信号 .data_fx (data_fx ) // 被测时钟频率输出 ); //例化数码管显示模块 seg_led u_seg_led( //module clock .clk (sys_clk ), // 数码管驱动模块的驱动时钟 .rst_n (sys_rst_n), // 复位信号 //seg_led interface .seg_sel (sel ), // 数码管位选 .seg_led (seg_led ), // 数码管段选 //user interface .data (data_fx ), // 被测频率值 .point (6'd0 ), // 数码管显示的点控制 .en (1'b1 ), // 数码管驱动使能信号 .sign (1'b0 ) // 控制符号位显示 ); endmodule
Verilog HDL入门教程电子书,华为内部材料
2021-03-15 16:25:49 281KB Verilog HDL
1
E2PROM读写测试Verilog HDL设计Quartus工程文件,E2POM型号AT24C16,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module e2prom_top( input sys_clk , //系统时钟 input sys_rst_n , //系统复位 //eeprom interface output iic_scl , //eeprom的时钟线scl inout iic_sda , //eeprom的数据线sda //user interface output led //led显示 ); //parameter define parameter SLAVE_ADDR = 7'b1010000 ; //器件地址(SLAVE_ADDR) parameter BIT_CTRL = 1'b1 ; //字地址位控制参数(16b/8b) parameter CLK_FREQ = 26'd50_000_000; //i2c_dri模块的驱动时钟频率(CLK_FREQ) parameter I2C_FREQ = 18'd250_000 ; //I2C的SCL时钟频率 parameter L_TIME = 17'd125_000 ; //led闪烁时间参数 //wire define wire dri_clk ; //I2C操作时钟 wire i2c_exec ; //I2C触发控制 wire [15:0] i2c_addr ; //I2C操作地址 wire [ 7:0] i2c_data_w; //I2C写入的数据 wire i2c_done ; //I2C操作结束标志 wire i2c_ack ; //I2C应答标志 0:应答 1:未应答 wire i2c_rh_wl ; //I2C读写控制 wire [ 7:0] i2c_data_r; //I2C读出的数据 wire rw_done ; //E2PROM读写测试完成 wire rw_result ; //E2PROM读写测试结果 0:失败 1:成功 //***************************************************** //** main code //***************************************************** //e2prom读写测试模块 e2prom_rw u_e2prom_rw( .clk (dri_clk ), //时钟信号 .rst_n (sys_rst_n ), //复位信号 //i2c interface .i2c_exec (i2c_exec ), //I2C触发执行信号 .i2c_rh_wl (i2c_rh_wl ), //I2C读写控制信号 .i2c_addr (i2c_addr ), //I2C器件内地址 .i2c_data_w (i2c_data_w), //I2C要写的数据 .i2c_data_r (i2c_data_r), //I2C读出的数据 .i2c_done (i2c_done ), //I2C一次操作完成 .i2c_ack (i2c_ack ), //I2C应答标志 //user interface .rw_done (rw_done ), //E2PROM读写测试完成 .rw_result (rw_result ) //E2PROM读写测试结果 0:失败 1:成功 ); //i2c驱动模块 i2c_dri #( .SLAVE_ADDR (SLAVE_ADDR), //EEPROM从机地址 .CLK_FREQ (CLK_FREQ ), //模块输入的时钟频率
Verilog HDL设计UART串口读写测试FPGA逻辑Quartus工程文件,通过串口接收PC发送的字符然后将收到的字符发送给PC,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module uart_top( input sys_clk, //外部50M时钟 input sys_rst_n, //外部复位信号,低有效 //uart接口 input uart_rxd, //UART接收端口 output uart_txd //UART发送端口 ); //parameter define parameter CLK_FREQ = 50000000; //定义系统时钟频率 parameter UART_BPS = 115200; //定义串口波特率 //wire define wire uart_en_w; //UART发送使能 wire [7:0] uart_data_w; //UART发送数据 wire clk_1m_w; //1MHz时钟,用于Signaltap调试 //***************************************************** //** main code //***************************************************** clk_div u_pll( //时钟分频模块,用于调试 .inclk0 (sys_clk), .c0 (clk_1m_w) ); uart_recv #( //串口接收模块 .CLK_FREQ (CLK_FREQ), //设置系统时钟频率 .UART_BPS (UART_BPS)) //设置串口接收波特率 u_uart_recv( .sys_clk (sys_clk), .sys_rst_n (sys_rst_n), .uart_rxd (uart_rxd), .uart_done (uart_en_w), .uart_data (uart_data_w) ); uart_send #( //串口发送模块 .CLK_FREQ (CLK_FREQ), //设置系统时钟频率 .UART_BPS (UART_BPS)) //设置串口发送波特率 u_uart_send( .sys_clk (sys_clk), .sys_rst_n (sys_rst_n), .uart_en (uart_en_w), .uart_din (uart_data_w), .uart_txd (uart_txd) ); endmodule
《 Verilog HDL 程序设计教程》135例; 。【例 3.1】4 位全加器 【例 3.2】4 位计数器 【例 3.3】4 位全加器的仿真程序 【例 3.4】4 位计数器的仿真程序 【例 3.5】“与-或-非”门电路 【例 5.1】用 case语句描述的 4 选 1 数据选择器 【例 5.2】同步置数、同步清零的计数器 【例 5.4】用 initial过程语句对测试变量 A、B、C 赋值 【例 5.5】用 begin-end 串行块产生信号波形 【例 5.6】用 fork-join 并行块产生信号波形 【例 5.7】持续赋值方式定义的 2 选 1 多路选择器 【例 5.8】阻塞赋值方式定义的 2 选 1 多路选择器 【例 5.9】非阻塞赋值【例 5.10】阻塞赋值 【例 5.11】模为 60 的 BCD码加法计数器 【例 5.12】BCD码—七段数码管显示译码器【例 5.13】用 casez 描述的数据选择器 【例 5.15】用 for 语句描述的七人投票表决器 【例 5.16】用 for 语句实现 2 个 8 位数相乘 【例 5.17】用 repeat 实现 8 位二进制数的乘法 【例 5.18】同一循环的不同实现方式 【例 5.19】使用了`include 语句的 16 位加法器 【例 5.20】条件编译举例【例 6.1】加法计数器中的进程 【例 6.2】任务举例【例 6.3】测试程序 【例 6.4】函数 【例 6.5】用函数和 case语句描述的编码器(不含优先顺序) 【例 6.6】阶乘运算函数 【例 6.7】测试程序 【例 6.8】顺序执行模块 1 【例 6.9】顺序执行模块 2 【例 6.10】并行执行模块 1 【例 6.11】并行执行模块 2 【例 7.1】调用门元件实现的 4 选 1 MUX 【例 7.2】用 case语句描述的 4 选 1 MUX 【例 7.3】行为描述方式实现的 4 位计数器 【例 7.4】数据流方式描述的 4 选 1 MUX 【例 7.5】用条件运算符描述的 4 选 1 MUX 【例 7.6】门级结构描述的 2 选 1MUX 【例 7.7】行为描述的 2 选 1MUX 【例 7.8】数据流描述的 2 选 1MUX 【例 7.9】调用门元件实现的 1 位半加器 【例 7.10】数据流方式描述的 1 位半加器 【例 7.11】采用行为描述的 1 位半加器 【例 7.12】采用行为描述的 1 位半加器 【例 7.13】调用门元件实现的 1 位全加器 【例 7.14】数据流描述的 1 位全加器 【例 7.15】1 位全加器【例 7.16】行为描述的 1 位全加器 【例 7.17】混合描述的 1 位全加器 【例 7.18】结构描述的 4 位级连全加器 【例 7.19】数据流描述的 4 位全加器 【例 7.20】行为描述的 4 位全加器 【例 8.1】$time 与$realtime 的区别 【例 8.2】$random 函数的使用 【例 8.3】1 位全加器进位输出 UDP 元件 【例 8.4】包含 x 态输入的 1 位全加器进位输出 UDP 元件 【例 8.5】用简缩符“?”表述的 1 位全加器进位输出 UDP 元件 【例 8.6】3 选 1 多路选择器 UDP 元件 【例 8.7】电平敏感的 1 位数据锁存器 UDP 元件 【例 8.8】上升沿触发的 D 触发器 UDP 元件 【例 8.9】带异步置 1 和异步清零的上升沿触发的 D 触发器 UDP 元件【例 8.12】延迟定义块举例 【例 8.13】激励波形的描述 【例 8.15】用 always 过程块产生两个时钟信号 【例 8.17】存储器在仿真程序中的应用 【例 8.18】8 位乘法器的仿真程序 【例 8.19】8 位加法器的仿真程序 【例 8.20】2 选 1 多路选择器的仿真 【例 8.21】8 位计数器的仿真 【例 9.1】基本门电路的几种描述方法【例 9.2】用 bufif1 关键字描述的三态门 【例 9.3】用 assign 语句描述的三态门 【例 9.4】三态双向驱动器 【例 9.5】三态双向驱动器 【例 9.6】3-8 译码器 【例 9.7】8-3 优先编码器 【例 9.8】用函数定义的 8-3 优先编码器 【例 9.9】七段数码管译码器 【例 9.10】奇偶校验位产生器 【例 9.11】用 if-else语句描述的 4 选 1 MUX 【例 9.12】用 case语句描述的 4 选 1 MUX 【例 9.13】用组合电路实现的 ROM 【例 9.14】基本 D 触发器 【例 9.15】带异步清 0、异步置 1 的 D 触发器 【例 9.16】带同步清 0、同步置
2021-03-11 15:53:48 127KB Verilog 教程 源码 FPGA
1
Verilog HDL比较器与移位器设计,Vivado仿真工程
2021-03-09 13:06:57 105KB FPGA VerilogHDL 比较器 移位器